Platform SDK: DirectX

ステップ 4.1 : シーンを更新する

[C++]

ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「Direct3D 直接モードの C/C++ チュートリアル」を参照すること。

[Visual Basic]

シーンはレンダリングする前に更新しなければならない。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 が行っているように、レンダリング ターゲット サーフェスにジオメトリをレンダリングすることができる。