Render Target Alpha (Direct3D 9)
Le mélangeur de mémoire tampon d’images 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 et opérations de fusion de la cible de rendu appliqués à alpha sont identiques à celles définies pour les canaux de couleur de fusion. Un pilote doit définir la limite de D3DPMISCCAPS_SEPARATEALPHABLEND pour indiquer qu’il peut prendre en charge le mélange alpha de la cible de rendu. Veillez à activer D3DRS_ALPHABLEND pour indiquer au pipeline que le mélange alpha est nécessaire.
Pour contrôler les facteurs du canal alpha des blenders 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, ceux-ci 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 est effectué 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.
Rubriques connexes