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

この例では、ライト マップを最初のテクスチャとして設定している。その次に、最初のブレンディング ステージのステートを設定して、入力テクスチャ データを乗算している。また、最初のテクスチャとプリミティブのカレント カラーを乗算処理用の引数として使用している。