Mélange de textures alpha (Direct3D 9)

Le moteur d’éclairage combine la couleur du matériau, la couleur du vertex et les informations d’éclairage pour générer une couleur par sommet. Une fois interpolée, cela génère une couleur par pixel qui est écrite dans la mémoire tampon du cadre. Si une application active le mélange de textures, la couleur des pixels devient une combinaison du pixel actuel dans la mémoire tampon du cadre et d’une couleur de texture.

Cette formule détermine la couleur finale des pixels mélangés :

Color = TexelColor x SourceBlend + CurrentPixelColor x DestBlend

Où :

  • La couleur est la couleur des pixels de sortie.
  • TexelColor est la couleur d’entrée après le filtrage de texture.
  • SourceBlend est le pourcentage de la couleur de pixel finale qui est constituée de la couleur du texel source.
  • CurrentPixelColor est la couleur du pixel actuel.
  • DestBlend est le pourcentage de la couleur de pixel finale qui est composée de la couleur de pixel actuelle.

L’équation de fusion finale est définie en appelant IDirect3DDevice9::SetRenderState et en spécifiant l’état de rendu de fusion (D3DRS_BLENDXXX) avec un facteur de fusion correspondant (D3DBLEND). Les valeurs de SourceBlend et DestBlend sont comprises entre 0,0 (transparent) et 1,0 (opaque) inclusivement. En outre, une application peut contrôler la transparence d’un pixel en définissant la valeur alpha dans une texture. Dans ce cas, utilisez les éléments suivants :

SourceBlend = D3DBLEND_ZERO 
DestBlend = D3DBLEND_ONE

L’équation de fusion entraîne la transparence du pixel rendu. Les valeurs par défaut sont :

SourceBlend = D3DBLEND_SRCALPHA 
DestBlend = D3DBLEND_INVSRCALPHA

Fusion de textures

Filtrage de texture (Direct3D 9)

D3DRENDERSTATETYPE