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