Microsoft DirectX 8.0 (Visual Basic) |
ビュー トランスフォーム行列は、ビューの位置および回転を定義する。ビュー行列はシーンのカメラである。
次のコードでは、ビュー トランスフォーム行列を作成した後、Microsoft® Direct3D® デバイスに現在のビュー トランスフォームを設定している。
Dim matView As D3DMATRIX D3DXMatrixLookAtLH matView, vec3(0#, 3#, -5#), _ vec3(0#, 0#, 0#), _ vec3(0#, 1#, 0#) g_D3DDevice.SetTransform D3DTS_VIEW, matView
最初のステップは、D3DXMatrixLookAtLH を呼び出してビュー行列を定義することである。最初のパラメータは、返される行列を格納する D3DMATRIX 型である。第 2、第 3、第 4 のパラメータは、視点、注視点、および "上" 方向を定義する。ここでは、視点は z 軸方向に -5 単位、上方向に 3 単位の位置に、注視点は原点に、"上" 方向は y 軸方向に定義されている。
次のステップでは、Direct3DDevice8.SetTransform を呼び出して、現在のビュー トランスフォームを Direct3D デバイスに設定する。SetTransform で使用する最初のパラメータは、設定するトランスフォームを指定する。このサンプルでは、D3DTS_VIEW フラグを使用して、ビュー トランスフォームを指定する。2 番目のパラメータは、現在のトランスフォームとして設定する行列へのポインタである。
ビュー トランスフォームの詳細については、「ビュー トランスフォーム」を参照すること。
シーンのワールド トランスフォームを定義した後、射影トランスフォーム行列を準備できる。ここでも、トランスフォームを定義する順序は重要ではないことに注意すること。ただし、Direct3D では、(1) ワールド、(2) ビュー、(3) 射影の順序で、シーンに行列が適用される。
射影トランスフォーム行列の定義については、「ステップ 3 : 射影トランスフォーム行列の定義」で説明する。