Freigeben über


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.

Alphamischung