Matemáticas de iluminación (Direct3D 9)

El modelo de luz Direct3D cubre la iluminación ambiental, difusa, especular y emisiva. Esto es suficiente flexibilidad para resolver una amplia gama de situaciones de iluminación. Se hace referencia a la cantidad total de luz en una escena como la iluminación global y calcularla mediante la ecuación siguiente.

Global Illumination = Ambient Light + Diffuse Light + Specular Light + Emissive Light 

La iluminación ambiental (Direct3D 9) es una iluminación constante. Es constante en todas las direcciones y colorea todos los píxeles de un objeto igual. Es rápido calcular, pero deja objetos que se buscan planos y poco realistas. Para ver cómo direct3D calcula la iluminación ambiental, consulta Iluminación ambiental (Direct3D 9).

La iluminación difusa (Direct3D 9) depende de la dirección de la luz y de la superficie del objeto normal. Varía en toda la superficie de un objeto como resultado del cambio de dirección de la luz y del vector numérico de superficie cambiante. Se tarda más tiempo en calcular la iluminación difusa porque cambia para cada vértice de objeto, pero la ventaja de usarlo es que sombrea objetos y les proporciona profundidad tridimensional (3D). Para ver cómo se calcula la iluminación difusa en Direct3D, consulta Iluminación difusa (Direct3D 9).

Iluminación especular (Direct3D 9) identifica los resaltados especulares brillantes que se producen cuando la luz alcanza una superficie de objeto y se refleja hacia la cámara. Es más intenso que la luz difusa y cae más rápidamente a través de la superficie del objeto. Se tarda más tiempo en calcular la iluminación especular que la iluminación difusa, pero la ventaja de usarla es que agrega detalles significativos a una superficie. Para ver cómo se calcula la iluminación especular en Direct3D, consulta Iluminación especular (Direct3D 9).

La iluminación emisiva (Direct3D 9) es la luz emitida por un objeto; por ejemplo, un resplandor. Para ver cómo se calcula la iluminación emisiva en Direct3D, consulta Iluminación emissiva (Direct3D 9).

La iluminación realista se puede lograr aplicando cada uno de estos tipos de iluminación a una escena 3D. Los valores calculados para los componentes ambiente, emisivo y difuso son los resultados como el color difuso del vértice; El valor del componente de iluminación especular se genera como el color del vértice especular. Los valores de luz ambiental, difusa y especular pueden verse afectados por la atenuación y el factor de foco de luz determinado. Para obtener más información sobre cómo funciona la atenuación, consulta Atenuación y Factor de contenido destacado (Direct3D 9).

Para lograr un efecto de iluminación más realista, agregas más luces; sin embargo, la escena tarda más tiempo en representarse. Para lograr todos los efectos que un diseñador quiere, algunos juegos usan más potencia de CPU de la que normalmente está disponible. En este caso, es habitual reducir el número de cálculos de iluminación a un mínimo mediante mapas de iluminación y mapas de entorno para agregar iluminación a una escena mientras se usan mapas de texturas.

La iluminación se calcula en el espacio de la cámara. Para ver cómo se calculan las transformaciones de iluminación, consulta Transformaciones de espacio de cámara (Direct3D 9). La iluminación optimizada se puede calcular en el espacio del modelo, cuando existen condiciones especiales: los vectores normales ya están normalizados (D3DRS_NORMALIZENORMALS es True), la mezcla de vértices no es necesaria, las matrices de transformación son ortogonales, etc.

Luces y materiales