Microsoft DirectX 8.0 (Visual Basic) |
Microsoft® Visual Basic® で記述されたアプリケーションでは、射影行列を作成できる。これについては、「射影トランスフォームとは」で説明する。ただし、Direct3DX ユーティリティ ライブラリには、射影行列を設定するための次の関数が用意されている。
次の Visual Basic コードは、D3DXMatrixPerspectiveLH の一般的な使用方法を示している。
' この例では、g_D3DDevice は Direct3DDevice8 オブジェクトへの ' 有効な参照であると仮定している。 ' 射影行列では、パースペクティブ トランスフォームを設定する。 ' これは、ジオメトリを 3D ビュー空間から 2D ビューポート空間にトランスフォームし、 ' パースペクティブ分割を行うことで、 ' 遠方のオブジェクトを小さくする。パースペクティブ トランスフォームを作成するには、 ' 視野 (通常は 1/4 π)、アスペクト比、 ' および近くと遠方のクリップ面 ' (ジオメトリがレンダリングされなくなる距離を定義する) が必要である。 Dim matProj As D3DMATRIX D3DXMatrixPerspectiveFovLH matProj, g_pi / 4, 1, 1, 1000 g_D3DDevice.SetTransform D3DTS_PROJECTION, matProj
行列を作成した後は、Direct3DDevice8.SetTransform メソッドを呼び出してその行列を設定し、第 1 パラメータに D3DTRANSFORMSTATE_PROJECTION を指定する必要がある。詳細については、「トランスフォームの設定」を参照すること。