Microsoft DirectX 8.0 (C++)

ステップ 1 : ワールド トランスフォーム行列の定義

ワールド トランスフォーム行列は、3D モデル空間でジオメトリを平行移動、スケーリング、および回転する方法を定義する。

次のサンプル コードでは、三角形を y 軸上で回転させた後、Microsoft® Direct3D® デバイスに現在のワールド トランスフォームを設定している。

D3DXMATRIX matWorld;
D3DXMatrixRotationY( &matWorld, timeGetTime()/150.0f );
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );

最初のステップは、D3DXMatrixRotationY メソッドを呼び出して、Y 軸を中心に三角形を回転させることである。最初のパラメータは、処理の結果となる D3DXMATRIX へのポインタである。2 番目のパラメータは、ラジアン単位の回転の角度である。

次のステップでは、IDirect3DDevice8::SetTransform を呼び出して、Direct3D デバイスにワールド トランスフォームを設定する。SetTransform が受け取る最初のパラメータは、設定するトランスフォームを Direct3D に指示する。このサンプルでは、D3DTS_WORLD マクロを使用して、ワールド トランスフォームを指定する。2 番目のパラメータは、現在のトランスフォームとして設定する行列へのポインタである。

ワールド トランスフォームの詳細については、「ワールド トランスフォーム」を参照すること。

シーンのワールド トランスフォームを定義した後、ビュー トランスフォーム行列を準備できる。ここでも、トランスフォームを定義する順序は重要ではないことに注意すること。ただし、Direct3D では、(1) ワールド、(2) ビュー、(3) 射影の順序で、シーンに行列が適用される。

ビュー トランスフォーム行列の定義については、「ステップ 2 : ビュー トランスフォーム行列の定義」で説明する。