Compartir a través de


Luz ambiente

La iluminación ambiental proporciona iluminación constante para una escena. Ilumina todos los vértices de objeto igual porque no depende de ningún otro factor de iluminación, como los normales de vértice, la dirección de la luz, la posición de la luz, el rango o la atenuación. La iluminación ambiental es constante en todas las direcciones y colorea todos los píxeles de un objeto igual. Es rápido calcular pero deja objetos mirando planos y poco realistas.

La iluminación ambiental es el tipo de iluminación más rápido, pero produce los resultados menos realistas. Direct3D contiene una única propiedad de luz ambiental global que puede usar sin crear ninguna luz. Como alternativa, puede establecer cualquier objeto de luz para proporcionar iluminación ambiental.

La iluminación ambiental de una escena se describe mediante la siguiente ecuación.

Ambient Lighting = Cₐ*[Gₐ + sum(Atteni*Spoti*Lai)]

Donde:

Parámetro Valor predeterminado Tipo Descripción
Cₐ (0,0,0,0) D3DCOLORVALUE Color ambiente del material
Gₐ (0,0,0,0) D3DCOLORVALUE Color ambiente global
Atteni (0,0,0,0) D3DCOLORVALUE Atenuación de la luz de la ith. Consulte Atenuación y factor de foco.
Spoti (0,0,0,0) D3DVECTOR Factor destacado de la luz ith. Consulte Atenuación y factor de foco.
Sum N/D N/D Suma de la luz ambiente
Lai (0,0,0,0) D3DVECTOR Color ambiente claro de la luz ith

 

El valor de Cₐ es:

  • color de vértice1, si AMBIENTMATERIALSOURCE = D3DMCS_COLOR1, y el primer color de vértice se proporciona en la declaración de vértice.
  • color de vértice2, si AMBIENTMATERIALSOURCE = D3DMCS_COLOR2 y el segundo color de vértice se proporciona en la declaración de vértice.
  • color ambiente del material.

Nota Si se usa alguna opción AMBIENTMATERIALSOURCE y no se proporciona el color del vértice, se usa el color ambiente del material.

 

Para usar el color ambiente del material, use SetMaterial como se muestra en el código de ejemplo siguiente.

Gₐ es el color ambiente global. Se establece mediante SetRenderState(D3DRS_AMBIENT). Hay un color ambiente global en una escena de Direct3D. Este parámetro no está asociado a un objeto claro direct3D.

Lai es el color ambiente de la luz ith en la escena. Cada luz Direct3D tiene un conjunto de propiedades, uno de los cuales es el color ambiente. El término sum(Lai) es una suma de todos los colores ambientales de la escena.

Ejemplo

En este ejemplo, el objeto se colorea utilizando la luz ambiental de la escena y un color ambiente de material.

#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.

Las dos ilustraciones siguientes muestran el color del material, que es gris, y el color claro, que es rojo brillante.

ilustración de una esfera grisilustración de una esfera roja

La escena resultante se muestra en la siguiente ilustración. El único objeto de la escena es una esfera. La luz ambiente ilumina todos los vértices de objeto con el mismo color. No depende del vértice normal o de la dirección de la luz. Como resultado, la esfera es similar a un círculo 2D porque no hay ninguna diferencia en sombreado alrededor de la superficie del objeto.

ilustración de una esfera con iluminación ambiental

Para proporcionar a los objetos un aspecto más realista, aplique iluminación difusa o especular además de iluminación ambiental.

Matemáticas de iluminación