Microsoft DirectX 8.0 (C++) |
ライトの方向プロパティは、オブジェクトの放射する光がワールド空間内を進む方向を決める。方向は、ディレクショナル ライトとスポットライトでのみ使用し、ベクトルで定義する。
C++ アプリケーションでは、ライトの D3DLIGHT8 構造体の Direction メンバにライトの方向を設定する。Direction メンバは、D3DVECTOR 型である。方向ベクトルは、シーン内のライトの位置座標とは無関係に、論理原点からの距離として記述する。したがって、シーンにまっすぐに入射する (z 軸の正方向に沿って) スポットライトの方向ベクトルは、その位置座標がどこに定義されていても <0,0,1> である。同様に、シーンを真上から照らす太陽光をシミュレートするには、方向が <0,-1,0> のディレクショナル ライトを使用すればよい。必ずしも座標軸に沿って照らすライトを作成する必要がないことは明らかである。値を組み合わせたり、揃えたりして、面白い角度からライトを照らすことができる。
注 ライトの方向ベクトルを正規化する必要はないが、必ずベクトルのマグニチュードを指定すること。つまり、<0,0,0> の方向ベクトルは使用しない。