Renderziel alpha (Direct3D 9)
Der Framepuffer-Blender kann jetzt Alphakanäle unabhängig von der Farbkanalüberblendung auf Renderzielen mischen. Dieses Steuerelement wird mit einem neuen Renderzustand aktiviert, D3DRS_SEPARATEALPHABLENDENABLE.
Wenn D3DRS_SEPARATEALPHABLENDENABLE auf FALSE festgelegt ist (was die Standardbedingung ist), sind die Renderzielmischungsfaktoren und -vorgänge, die auf Alpha angewendet werden, identisch mit denen, die für das Mischen von Farbkanälen definiert sind. Ein Treiber muss die D3DPMISCCAPS_SEPARATEALPHABLEND-Obergrenze festlegen, um anzugeben, dass er die Renderziel-Alphamischung unterstützen kann. Stellen Sie sicher, dass Sie D3DRS_ALPHABLEND aktivieren, um der Pipeline mitzuteilen, dass eine Alphamischung erforderlich ist.
Um die Faktoren im Alphakanal der Renderziel-Blender zu steuern, werden zwei neue Renderzustände wie folgt definiert:
D3DRS_SRCBLENDALPHA
D3DRS_DESTBLENDALPHA
Wie die D3DRS_SRCBLEND und D3DRS_DESTBLEND können diese auf einen der Werte in der D3DBLEND-Enumeration festgelegt werden. Die Quell- und Zielmischungseinstellungen können je nach den Einstellungen in den Membern SrcBlendCaps und DestBlendCaps von D3DCAPS9 auf verschiedene Arten kombiniert werden.
Die Alphamischung erfolgt wie folgt:
renderTargetAlpha = (Alphain * srcBlendOp) BlendOp (alphart * destBlendOp)
Hierbei gilt:
- alphain ist der Alpha-Eingabewert.
- srcBlendOp ist einer der Blendfaktoren in D3DBLEND.
- BlendOp ist einer der Blendfaktoren in D3DBLENDOP.
- alphart ist der Renderziel-Alphawert.
- destBlendOp ist einer der Blendfaktoren in D3DBLEND.
- renderTargetAlpha ist der endgültige gemischte Alphawert.
Zugehörige Themen