Карты цветового света (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 );
В этом примере карта света задается в качестве первой текстуры. Затем он задает состояние первого этапа смешивания для модуляции входящих данных текстуры. Он использует первую текстуру и текущий цвет примитива в качестве аргументов для операции модуляции.
Связанные темы