Поделиться через


Карты цветового света (Direct3D 9)

Приложение обычно реалистично отрисовывает трехмерные сцены, если использует цветные карты света. Карта цветного света использует данные RGB на карте света для получения информации об освещении.

В следующем примере кода C++ показано сопоставление света с данными цвета 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 );

В этом примере карта света задается в качестве первой текстуры. Затем он задает состояние первого этапа смешивания для модуляции входящих данных текстуры. Он использует первую текстуру и текущий цвет примитива в качестве аргументов для операции модуляции.

Сопоставление света с текстурами