Rendu de la cible Alpha (Direct3D 9)

Le mélangeur de mémoires tampons de frames peut désormais fusionner les canaux alpha indépendamment de la fusion des canaux de couleur sur les cibles de rendu. Ce contrôle est activé avec un nouvel état de rendu, D3DRS _ SEPARATEALPHABLENDENABLE.

Lorsque D3DRS _ SEPARATEALPHABLENDENABLE est défini sur false (qui est la condition par défaut), les facteurs et les opérations de fusion de cible de rendu appliqués à alpha sont les mêmes que ceux définis pour la fusion des canaux de couleurs. Un pilote doit définir le _ Cap SEPARATEALPHABLEND D3DPMISCCAPS pour indiquer qu’il peut prendre en charge la fusion alpha de rendu-cible. Veillez à activer D3DRS _ ALPHABLEND pour indiquer au pipeline que la fusion alpha est nécessaire.

Pour contrôler les facteurs dans le canal alpha des mélangeurs de rendu-cible, deux nouveaux États de rendu sont définis comme suit :

D3DRS_SRCBLENDALPHA 
D3DRS_DESTBLENDALPHA 

À l’instar des D3DRS _ SRCBLEND et D3DRS _ DESTBLEND, ceux-ci peuvent être définis sur l’une des valeurs de l’énumération D3DBLEND . Les paramètres de fusion de source et de destination peuvent être combinés de plusieurs façons, selon les paramètres des membres SrcBlendCaps et DestBlendCaps de D3DCAPS9.

La fusion alpha s’effectue comme suit :

renderTargetAlpha = (alphadans * srcBlendOp) BlendOp (alphaRT * destBlendOp)

Où :

  • Alphadans est la valeur alpha d’entrée.
  • srcBlendOp est l’un des facteurs de mélange dans D3DBLEND.
  • BlendOp est l’un des facteurs de mélange dans D3DBLENDOP.
  • AlphaRT est la valeur alpha Render-cible.
  • destBlendOp est l’un des facteurs de mélange dans D3DBLEND.
  • renderTargetAlpha est la valeur alpha fusionnée finale.

Fusion alpha