Partager via


Render Target Alpha (Direct3D 9)

Le mélangeur de mémoire tampon de trame peut désormais fusionner des canaux alpha indépendamment du mélange de 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 de fusion de cible de rendu et les opérations appliqués à l’alpha sont les mêmes que ceux définis pour les canaux de couleur de fusion. Un pilote doit définir la limite D3DPMISCCAPS_SEPARATEALPHABLEND pour indiquer qu’il peut prendre en charge le mélange alpha cible de rendu. Veillez à activer D3DRS_ALPHABLEND pour indiquer au pipeline que le mélange alpha est nécessaire.

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

D3DRS_SRCBLENDALPHA 
D3DRS_DESTBLENDALPHA 

Comme les D3DRS_SRCBLEND et les D3DRS_DESTBLEND, ils peuvent être définis sur l’une des valeurs de l’énumération D3DBLEND . Les paramètres de fusion source et de destination peuvent être combinés de plusieurs façons, en fonction des paramètres des membres SrcBlendCaps et DestBlendCaps de D3DCAPS9.

Le mélange 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 fusion dans D3DBLEND.
  • BlendOp est l’un des facteurs de fusion dans D3DBLENDOP.
  • alphart est la valeur alpha de la cible de rendu.
  • destBlendOp est l’un des facteurs de fusion dans D3DBLEND.
  • renderTargetAlpha est la valeur alpha fusionnée finale.

Alpha Blending