Freigeben über


Farblichtkarten (Direct3D 9)

Ihre Anwendung rendert 3D-Szenen in der Regel realistischer, wenn farbige Lichtkarten verwendet werden. Eine farbige Lichtkarte verwendet die RGB-Daten in der Lichtkarte für ihre Beleuchtungsinformationen.

Im folgenden C++-Codebeispiel wird die Lichtzuordnung mit RGB-Farbdaten veranschaulicht.

// 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 );

In diesem Beispiel wird die Lightmap als erste Textur festgelegt. Anschließend wird der Zustand der ersten Mischphase festgelegt, um die eingehenden Texturdaten zu modulieren. Es verwendet die erste Textur und die aktuelle Farbe des Grundtyps als Argumente für den modulierten Vorgang.

Lichtmapping mit Texturen