Udostępnij przez


Mapy światła kolorów (Direct3D 9)

Aplikacja będzie zwykle renderować sceny 3D bardziej realistycznie, jeśli używa kolorowych map światła. Kolorowa mapa światła używa danych RGB na mapie światła na potrzeby informacji o oświetleniu.

W poniższym przykładzie kodu C++ pokazano mapowanie światła przy użyciu danych kolorów 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 );

W tym przykładzie mapa światła jest ustawiana jako pierwsza tekstura. Następnie ustawia stan pierwszego etapu mieszania w celu modulowania przychodzących danych tekstury. Używa pierwszej tekstury i bieżącego koloru pierwotnego jako argumentów operacji modulacji.

mapowanie światła z teksturami