Partager via


Éclairage ambiant

L’éclairage ambiant fournit un éclairage constant pour une scène. Il allume tous les sommets d’objet identiques, car il ne dépend pas d’autres facteurs d’éclairage tels que les normales de vertex, la direction de la lumière, la position de lumière, la plage ou l’atténuation. L’éclairage ambiant est constant dans toutes les directions et il colore tous les pixels d’un objet identique. Il est rapide de calculer, mais laisse des objets à l’aspect plat et irréaliste.

L’éclairage ambiant est le type d’éclairage le plus rapide, mais il produit les résultats les moins réalistes. Direct3D contient une propriété de lumière ambiante globale unique que vous pouvez utiliser sans créer de lumière. Vous pouvez également définir n’importe quel objet lumineux pour fournir un éclairage ambiant.

L’éclairage ambiant d’une scène est décrit par l’équation suivante.

Éclairage ambiant = Cₐ*[Gₐ + sum(Atteni*Spoti*Lai)]

Où :

Paramètre Valeur par défaut Type Description
Cₐ (0,0,0,0) D3DCOLORVALUE Couleur ambiante du matériau
Gₐ (0,0,0,0) D3DCOLORVALUE Couleur ambiante globale
Atteni (0,0,0,0) D3DCOLORVALUE Atténuation légère de la lumière ith. Voir attenuation et facteur à la une.
Spoti (0,0,0,0) D3DVECTOR Facteur de projecteur de la lumière ith. Voir attenuation et facteur à la une.
sum N/A N/A Somme de la lumière ambiante
Lai (0,0,0,0) D3DVECTOR Couleur ambiante claire de la lumière ith

 

La valeur de Cₐ est la suivante :

  • vertex color1, si AMBIENTMATERIALSOURCE = D3DMCS_COLOR1, et la première couleur de vertex est fournie dans la déclaration de vertex.
  • vertex color2, si AMBIENTMATERIALSOURCE = D3DMCS_COLOR2, et la deuxième couleur de vertex est fournie dans la déclaration de vertex.
  • couleur ambiante du matériau.

Remarque Si l’option AMBIENTMATERIALSOURCE est utilisée et que la couleur de vertex n’est pas fournie, la couleur ambiante du matériau est utilisée.

 

Pour utiliser la couleur ambiante du matériau, utilisez SetMaterial comme indiqué dans l’exemple de code ci-dessous.

Gₐ est la couleur ambiante globale. Elle est définie à l’aide de SetRenderState(D3DRS_AMBIENT). Il existe une couleur ambiante globale dans une scène Direct3D. Ce paramètre n’est pas associé à un objet clair Direct3D.

Lai est la couleur ambiante de la lumière ith dans la scène. Chaque lumière Direct3D a un ensemble de propriétés, dont l’une est la couleur ambiante. Le terme, sum(Lai) est une somme de toutes les couleurs ambiantes de la scène.

Exemple

Dans cet exemple, l’objet est coloré à l’aide de la lumière ambiante de la scène et d’une couleur ambiante de matériau.

#define GRAY_COLOR  0x00bfbfbf

Ambient.r = 0.75f;
Ambient.g = 0.0f;
Ambient.b = 0.0f;
Ambient.a = 0.0f;

Selon l’équation, la couleur résultante pour les sommets d’objet est une combinaison de la couleur du matériau et de la couleur claire.

Les deux illustrations suivantes montrent la couleur du matériau, qui est gris, et la couleur claire, qui est rouge vif.

illustration d’une sphère griseillustration d’une sphère rouge

La scène résultante est illustrée dans l’illustration suivante. Le seul objet de la scène est une sphère. La lumière ambiante allume tous les sommets d’objet avec la même couleur. Elle ne dépend pas du sommet normal ou de la direction de la lumière. Par conséquent, la sphère ressemble à un cercle 2D, car il n’y a aucune différence dans l’ombrage autour de la surface de l’objet.

illustration d’une sphère avec éclairage ambiant

Pour donner aux objets un aspect plus réaliste, appliquez un éclairage diffus ou spéculaire en plus de l’éclairage ambiant.

Mathématiques de l’éclairage