彩色光贴图 (Direct3D 9)

如果应用程序使用彩色光贴图,则通常会更逼真地呈现 3D 场景。 彩色光映射使用光映射中的 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 );

本示例将光贴图设置为第一个纹理。 然后,它会设置第一个混合阶段的状态,以调节传入的纹理数据。 它使用基元的第一个纹理和当前颜色作为调节操作的参数。

使用纹理的光映射