Microsoft DirectX 8.0 (Visual Basic)

ステップ 2 : ビュー トランスフォーム行列の定義

ビュー トランスフォーム行列は、ビューの位置および回転を定義する。ビュー行列はシーンのカメラである。

次のコードでは、ビュー トランスフォーム行列を作成した後、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 : 射影トランスフォーム行列の定義」で説明する。