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


Карты цветового света (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 );

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

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