Freigeben über


Renderziel alpha (Direct3D 9)

Der Framepuffer-Blender kann jetzt Alphakanäle unabhängig von der Farbkanalvermischung bei Renderzielen mischen. Dieses Steuerelement ist mit einem neuen Renderzustand D3DRS_SEPARATEALPHABLENDENABLE aktiviert.

Wenn D3DRS_SEPARATEALPHABLENDENABLE auf FALSE- festgelegt ist (dies ist die Standardbedingung), sind die auf Alpha angewendeten Renderzielmischungsfaktoren und -operationen identisch mit denen, die für die Vermischung von Farbkanälen definiert sind. Ein Treiber muss die D3DPMISCCAPS_SEPARATEALPHABLEND Cap festlegen, um anzugeben, dass er die Renderziel-Alphamischung unterstützen kann. Achten Sie darauf, D3DRS_ALPHABLEND zu aktivieren, um der Pipeline mitzuteilen, dass die 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 Einstellungen für Quell- und Zielmischungen können auf verschiedene Arten kombiniert werden, abhängig von den Einstellungen in den Membern "SrcBlendCaps" und "DestBlendCaps" von D3DCAPS9.

Die Alphamischung erfolgt wie folgt:

renderTargetAlpha = (Alpha-in * srcBlendOp) BlendOp (Alphart * destBlendOp)

Wo:

  • Alpha-in ist der Eingabe-Alphawert.
  • srcBlendOp ist einer der Mischungsfaktoren in D3DBLEND.
  • BlendOp ist einer der Mischungsfaktoren in D3DBLENDOP.
  • alphart ist der Alphawert des Renderziels.
  • destBlendOp ist einer der Mischungsfaktoren in D3DBLEND.
  • renderTargetAlpha ist der endgültige gemischte Alphawert.

Alpha-Blending-