Platform SDK: DirectX |
ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「Direct3D 直接モードの C/C++ チュートリアル」を参照すること。
シーンはレンダリングする前に更新しなければならない。RenderScene は、呼び出されるとすぐに、FrameMove (別のアプリケーション定義サブルーチン) を呼び出す。FrameMove は、Direct3D がモデルのジオメトリに適用するワールド行列を更新するだけである。アプリケーションは、stepValue パラメータにより FrameMove に渡された内部カウント値に基づいて、y 軸を中心とする回転を反映させる。回転は、1 フレームにつき 1 度だけ適用されるため、結果として、モデルが所定の位置で回転しているように見える。
Private Sub FrameMove(stepVal As Single) Dim matSpinY As D3DMATRIX Call g_dx.RotateYMatrix(matSpinY, stepVal) Call g_d3dDevice.SetTransform(D3DTRANSFORMSTATE_WORLD, matSpinY) End Sub
もちろん、現実には、アプリケーションは単一のモデルに単一の回転を適用するだけでなく、さまざまなことを行う (回転行列の詳細については、「3D トランスフォーム」の「回転」を参照すること)。
シーン内のモデルのジオメトリを更新すると、「ステップ 4.2 : シーンをレンダリングする」でサンプル Triangle が行っているように、レンダリング ターゲット サーフェスにジオメトリをレンダリングすることができる。