Éclairage ambiantAmbient lighting

L’éclairage ambiant offre une lumière constante pour une scène.Ambient lighting provides constant lighting for a scene. Il prend en compte tous les sommets d’objets, car il ne dépend pas d’autres facteurs d’éclairage tels que les normales aux sommets, la direction de la lumière, la position de la lumière, la plage ou l’atténuation.It lights all object vertices the same because it is not dependent on any other lighting factors such as vertex normals, light direction, light position, range, or attenuation. L’éclairage ambiant est constant dans toutes les directions et il colore tous les pixels d’un objet de la même façon.Ambient lighting is constant in all directions and it colors all pixels of an object the same. Il est rapide de calculer, mais laisse les objets à l’aspect plat et irréaliste.It is fast to calculate but leaves objects looking flat and unrealistic.

L’éclairage ambiant est le type d’éclairage le plus rapide, mais produit des résultats moins réalistes.Ambient lighting is the fastest type of lighting but it produces the least realistic results. Direct3D contient une seule propriété de lumière ambiante globale que vous pouvez utiliser sans créer de lumière.Direct3D contains a single global ambient light property that you can use without creating any light. Vous pouvez également définir n’importe quel objet Light pour fournir un éclairage ambiant.Alternatively, you can set any light object to provide ambient lighting.

L’éclairage ambiant d’une scène est décrit par l’équation suivante.The ambient lighting for a scene is described by the following equation.

Éclairage ambiant = C ₐ * [ g ₐ + Sum (atteni * pointi * Lai)]Ambient Lighting = Cₐ*[Gₐ + sum(Atteni*Spoti*Lai)]

Où :Where:

ParamètreParameter Valeur par défautDefault value TypeType DescriptionDescription
C ₐCₐ (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Couleur ambiante du matériauMaterial ambient color
ₐ gGₐ (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Couleur ambiante globaleGlobal ambient color
AtteniAtteni (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Atténuation de la lumière de la énièmeté.Light attenuation of the ith light. Consultez facteurs d’atténuation et de focalisation.See Attenuation and spotlight factor.
PointiSpoti (0, 0, 0, 0)(0,0,0,0) D3DVECTORD3DVECTOR Facteur Gong de la énième lumière.Spotlight factor of the ith light. Consultez facteurs d’atténuation et de focalisation.See Attenuation and spotlight factor.
Sumsum N/AN/A N/AN/A Somme de la lumière ambianteSum of the ambient light
LaiLai (0, 0, 0, 0)(0,0,0,0) D3DVECTORD3DVECTOR Couleur ambiante claire de la énième lumièreLight ambient color of the ith light

 

La valeur de C ₐ est :The value for Cₐ is either:

  • Sommet color1, si AMBIENTMATERIALSOURCE = D3DMCS _ color1, et la première couleur de vertex est fournie dans la déclaration de vertex.vertex color1, if AMBIENTMATERIALSOURCE = D3DMCS_COLOR1, and the first vertex color is supplied in the vertex declaration.
  • le sommet color2, si AMBIENTMATERIALSOURCE = D3DMCS _ color2, et la deuxième couleur du vertex sont fournies dans une déclaration de vertex.vertex color2, if AMBIENTMATERIALSOURCE = D3DMCS_COLOR2, and the second vertex color is supplied in vertex declaration.
  • couleur ambiante du matériau.material ambient color.

Remarque    Si l’une des options AMBIENTMATERIALSOURCE est utilisée et que la couleur du vertex n’est pas fournie, la couleur ambiante du matériau est utilisée.Note   If either AMBIENTMATERIALSOURCE option is used, and the vertex color is not provided, then the material ambient color is used.

 

Pour utiliser la couleur ambiante du matériau, utilisez SetMaterial comme indiqué dans l’exemple de code ci-dessous.To use the material ambient color, use SetMaterial as shown in the example code below.

G ₐ est la couleur ambiante globale.Gₐ is the global ambient color. Il est défini à l’aide de SetRenderState (D3DRS _ ambiant).It is set using SetRenderState(D3DRS_AMBIENT). Une scène Direct3D contient une couleur ambiante globale.There is one global ambient color in a Direct3D scene. Ce paramètre n’est pas associé à un objet Light Direct3D.This parameter is not associated with a Direct3D light object.

Lai est la couleur ambiante de l’énième lumière dans la scène.Lai is the ambient color of the ith light in the scene. Chaque lumière Direct3D a un ensemble de propriétés, dont l’une est la couleur ambiante.Each Direct3D light has a set of properties, one of which is the ambient color. Le terme somme (Lai) est la somme de toutes les couleurs ambiantes de la scène.The term, sum(Lai) is a sum of all the ambient colors in the scene.

TelsExample

Dans cet exemple, l’objet est coloré à l’aide de la lumière ambiante de scène et d’une couleur ambiante de matériau.In this example, the object is colored using the scene ambient light and a material ambient color.

#define GRAY_COLOR  0x00bfbfbf

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

D’après l’équation, la couleur résultante pour les vertex d’objet est une combinaison de la couleur de l’élément et de la couleur claire.According to the equation, the resulting color for the object vertices is a combination of the material color and the light color.

Les deux illustrations suivantes affichent la couleur de matériau, grise, et la couleur claire, qui est brillante rouge.The following two illustrations show the material color, which is gray, and the light color, which is bright red.

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

La scène qui en résulte est présentée dans l’illustration suivante.The resulting scene is shown in the following illustration. Le seul objet de la scène est une sphère.The only object in the scene is a sphere. La lumière ambiante illumine tous les vertex d’objets avec la même couleur.Ambient light lights all object vertices with the same color. Elle n’est pas dépendante de la normale du vertex ou de la direction de la lumière.It is not dependent on the vertex normal or the light direction. 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.As a result, the sphere looks like a 2D circle because there is no difference in shading around the surface of the object.

illustration d’une sphère avec éclairage ambiant

Pour donner une apparence plus réaliste aux objets, appliquez une lumière diffuse ou spéculaire en plus de l’éclairage ambiant.To give objects a more realistic look, apply diffuse or specular lighting in addition to ambient lighting.

Rubriques connexesRelated topics

Formules mathématiques d’éclairageMathematics of lighting