Platform SDK: DirectX

カラー ライティング マップ

一般に、カラー ライティング マップを使用すれば、3D シーンをよりリアルにレンダリングできる。カラー ライティング マップは、ライティング情報としてライト マップのRGB データを使用する。

[C++]

次の C++ コードは、RGB 色データを使用したライト マッピングを示す。

// この例では、lpD3DDev は IDirect3DDevice7 インターフェイスへの有効なポインタで、
// lptexLightMap は RGB ライト マップ データを含むテクスチャへの
// 有効なポインタであるとする。
 
// ライト マップ テクスチャを最初のテクスチャとして設定する。
lpD3DDev->SetTexture(0, lptexLightMap);
 
lpD3DDev->SetTextureStageState(0,D3DTSS_COLOROP,  
       D3DTOP_MODULATE);
 
lpD3DDev->SetTextureStageState(0,D3DTSS_COLORARG1,  
       D3DTA_TEXTURE);
 
lpD3DDev->SetTextureStageState(0,D3DTSS_COLORARG2,
       D3DTA_DIFFUSE);

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

[Visual Basic]

次の Visual Basic コードは、RGB 色データを使用したライト マッピングを示す。

' この例では、D3DDev は Direct3DDevice7 オブジェクトへの有効な参照で、
' texLightMap は RGB ライト マップ データを含む DirectDrawSurface7 テクスチャ サーフェスへの
'有効なポインタであるとする。
 
' ライト マップ テクスチャを最初のテクスチャとして設定する。
Call d3dDev.SetTexture(0, texLightMap)
 
Call d3dDev.SetTextureStageState(0, D3DTSS_COLOROP, _
D3DTOP_MODULATE );
 
Call d3dDev.SetTextureStageState(0, D3DTSS_COLORARG1, _
D3DTA_TEXTURE);
 
Call d3dDev.SetTextureStageState(0, D3DTSS_COLORARG2, _
D3DTA_DIFFUSE);

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