Luz ambienteAmbient lighting

La iluminación ambiente proporciona iluminación constante para una escena.Ambient lighting provides constant lighting for a scene. Ilumina todos los vértices de objeto de la misma forma porque no depende de ningún otro factor de iluminación, como las normales de vértice, la dirección clara, la posición de la luz, el intervalo o la atenuación.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. La iluminación ambiente es constante en todas las direcciones y colorea todos los píxeles de un objeto.Ambient lighting is constant in all directions and it colors all pixels of an object the same. Es rápido calcular pero deja objetos que parezcan planos e impropios.It is fast to calculate but leaves objects looking flat and unrealistic.

La iluminación ambiente es el tipo de iluminación más rápido, pero genera los resultados menos realistas.Ambient lighting is the fastest type of lighting but it produces the least realistic results. Direct3D contiene una única propiedad de luz ambiente global que puede usar sin crear ninguna luz.Direct3D contains a single global ambient light property that you can use without creating any light. Como alternativa, puede establecer cualquier objeto de luz para proporcionar iluminación ambiente.Alternatively, you can set any light object to provide ambient lighting.

La iluminación ambiente para una escena se describe en la siguiente ecuación.The ambient lighting for a scene is described by the following equation.

Iluminación ambiente = C ₐ * [ g ₐ + SUM (ATTENii i i e * i * IA)]Ambient Lighting = Cₐ*[Gₐ + sum(Atteni*Spoti*Lai)]

Donde:Where:

ParámetroParameter Valor predeterminadoDefault value TipoType DescripciónDescription
C ₐCₐ (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Color ambiental de materialMaterial ambient color
G ₐGₐ (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Color ambiente globalGlobal ambient color
ATTENiAtteni (0, 0, 0, 0)(0,0,0,0) D3DCOLORVALUED3DCOLORVALUE Atenuación de la luz i.Light attenuation of the ith light. Vea atenuación y factor destacado.See Attenuation and spotlight factor.
PuntualiSpoti (0, 0, 0, 0)(0,0,0,0) D3DVECTORD3DVECTOR Factor destacado de la luz i.Spotlight factor of the ith light. Vea atenuación y factor destacado.See Attenuation and spotlight factor.
Sumsum N/DN/A N/DN/A Suma de la luz ambienteSum of the ambient light
LAILai (0, 0, 0, 0)(0,0,0,0) D3DVECTORD3DVECTOR Color ambiente claro de la luz iésimoLight ambient color of the ith light

 

El valor de C ₐ es:The value for Cₐ is either:

  • Vertex color1, si AMBIENTMATERIALSOURCE = D3DMCS _ color1, y el primer color de vértice se proporciona en la declaración de vértices.vertex color1, if AMBIENTMATERIALSOURCE = D3DMCS_COLOR1, and the first vertex color is supplied in the vertex declaration.
  • Vertex color2, si AMBIENTMATERIALSOURCE = D3DMCS _ color2, y el segundo color de vértice se proporciona en la declaración de vértices.vertex color2, if AMBIENTMATERIALSOURCE = D3DMCS_COLOR2, and the second vertex color is supplied in vertex declaration.
  • color ambiente de material.material ambient color.

Nota:    Si se usa la opción AMBIENTMATERIALSOURCE y no se proporciona el color del vértice, se usa el color ambiente del material.Note   If either AMBIENTMATERIALSOURCE option is used, and the vertex color is not provided, then the material ambient color is used.

 

Para usar el color ambiente de material, use SetMaterial como se muestra en el código de ejemplo siguiente.To use the material ambient color, use SetMaterial as shown in the example code below.

G ₐ es el color ambiente global.Gₐ is the global ambient color. Se establece mediante SetRenderState (D3DRS _ ambiente).It is set using SetRenderState(D3DRS_AMBIENT). Hay un color ambiente global en una escena de Direct3D.There is one global ambient color in a Direct3D scene. Este parámetro no está asociado a un objeto de Direct3D Light.This parameter is not associated with a Direct3D light object.

LAI es el color ambiente de la luz iésimo de la escena.Lai is the ambient color of the ith light in the scene. Cada luz de Direct3D tiene un conjunto de propiedades, uno de los cuales es el color ambiente.Each Direct3D light has a set of properties, one of which is the ambient color. El término SUM (LAI) es una suma de todos los colores de ambiente de la escena.The term, sum(Lai) is a sum of all the ambient colors in the scene.

EjemploExample

En este ejemplo, el objeto se colorea utilizando la luz ambiente de la escena y un color ambiente de material.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;

Según la ecuación, el color resultante para los vértices del objeto es una combinación del color del material y el color claro.According to the equation, the resulting color for the object vertices is a combination of the material color and the light color.

En las dos ilustraciones siguientes se muestra el color del material, que está atenuado y el color claro, que es rojo brillante.The following two illustrations show the material color, which is gray, and the light color, which is bright red.

Ilustración de una esfera grisIlustración de una esfera roja

La escena resultante se muestra en la siguiente ilustración.The resulting scene is shown in the following illustration. El único objeto de la escena es una esfera.The only object in the scene is a sphere. Luz ambiente ilumina todos los vértices de objetos con el mismo color.Ambient light lights all object vertices with the same color. No depende de la dirección de la luz o del vértice normal.It is not dependent on the vertex normal or the light direction. Como resultado, la esfera tiene el aspecto de un círculo 2D porque no hay ninguna diferencia en el sombreado en torno a la superficie del objeto.As a result, the sphere looks like a 2D circle because there is no difference in shading around the surface of the object.

Ilustración de una esfera con iluminación ambiente

Para dar una apariencia más realista a los objetos, aplique la iluminación difusa o especular además de la iluminación ambiente.To give objects a more realistic look, apply diffuse or specular lighting in addition to ambient lighting.

Temas relacionadosRelated topics

Cálculos de iluminaciónMathematics of lighting