Compartir a través de


Mapas de luz de color (Direct3D 9)

La aplicación normalmente representará escenas 3D de forma más realista si usa mapas de luz coloreados. Un mapa de luz coloreado usa los datos RGB en el mapa de luz para su información de iluminación.

En el ejemplo de código de C++ siguiente se muestra la asignación de luz con datos de color RGB.

// This example assumes that d3dDevice is a valid pointer to an
// IDirect3DDevice9 interface and that lptexLightMap is a valid
// pointer to a texture that contains RGB light map data.

// Set the light map texture as the first texture.
d3dDevice->SetTexture(0, lptexLightMap);

d3dDevice->SetTextureStageState( 0,D3DTSS_COLOROP, D3DTOP_MODULATE );
d3dDevice->SetTextureStageState( 0,D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0,D3DTSS_COLORARG2, D3DTA_DIFFUSE );

En este ejemplo se establece el mapa de luz como la primera textura. A continuación, establece el estado de la primera fase de mezcla para modular los datos de textura entrantes. Usa la primera textura y el color actual del primitivo como argumentos para la operación modulada.

Asignación de luz con texturas