Microsoft DirectX 8.0 (C++) |
一般に、カラー ライティング マップを使用すれば、3D シーンをよりリアルにレンダリングできる。カラー ライティング マップは、ライティング情報としてライト マップのRGB データを使用する。
次の C++ コードは、RGB カラー データを使用したライト マッピングを示している。
// この例では、d3dDevice は IDirect3DDevice8 インターフェイスへの有効なポインタであり、 // lptexLightMap は RGB ライト マップ データを含むテクスチャへの // 有効なポインタであると仮定している。 // ライト マップ テクスチャを最初のテクスチャとして設定する。 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 );
この例では、ライト マップを最初のテクスチャとして設定している。その次に、最初のブレンディング ステージのステートを設定して、入力テクスチャ データを乗算している。また、最初のテクスチャとプリミティブのカレント カラーを乗算処理用の引数として使用している。