É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.
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.
Pour donner aux objets un aspect plus réaliste, appliquez un éclairage diffus ou spéculaire en plus de l’éclairage ambiant.
Rubriques connexes