Partilhar via


Mapas de luz colorida (Direct3D 9)

Seu aplicativo geralmente renderizará cenas 3D de forma mais realista se usar mapas de luz coloridos. Um mapa de luz colorido usa os dados RGB no mapa de luz para suas informações de iluminação.

O exemplo de código C++ a seguir demonstra mapeamento de luz com dados de cores 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 );

Este exemplo define o mapa de luz como a primeira textura. Em seguida, define o estado do primeiro estágio de mistura para modular os dados de textura recebidos. Ele usa a primeira textura e a cor atual do primitivo como argumentos para a operação modulada.

Mapeamento de luz com texturas