Microsoft DirectX 8.0 (C++)

ライトの有効/無効

シーン内の光源のライト プロパティ セットをいったん割り当てると、デバイスに対して IDirect3DDevice8::LightEnable メソッドを呼び出すことで、その光源をアクティブにすることができる。新しく割り当てた光源は、デフォルトでは無効になっている。LightEnable メソッドは、2 つのパラメータを受け取る。第 1 パラメータには、メソッドで処理する光源のインデックス (0 から始まる) を設定する。第 2 パラメータには、ライトを有効にする場合は TRUE、無効にする場合は FALSE を設定する。

次のコードは、LightEnable メソッドを使用して、デバイスの光源プロパティのリスト内の最初の光源を有効にする方法を示している。

/*
* このコードでは、変数 d3dDevice は、IDirect3DDevice8 インターフェイスへの
* 有効なポインタであると仮定している。
 */
HRESULT hr;

hr = pd3dDevice->LightEnable(0, TRUE);
if (FAILED(hr))
{
    // エラー処理コード。
}

IDirect3Ddevice8::SetLight で設定するプロパティがないライトを有効または無効にする場合、LightEnable メソッドは以下の表のプロパティを持つ光源を作成し、その光源を有効または無効にする。

メンバ デフォルト
Type D3DLIGHT_DIRECTIONAL
Diffuse (R:1, G:1, B:1, A:0)
Specular (R:0, G:0, B:0, A:0)
Ambient (R:0, G:0, B:0, A:0)
Position (0, 0, 0)
Direction (0, 0, 1)
Range 0
Falloff 0
Attenuation0 0
Attenuation1 0
Attenuation2 0
Theta 0
Phi 0