Frameworkモジュールを介して物理シミュレーションを行うには以下の関数を使います.
FWSdkIf |
|
void Step() |
FWSdkのStepはアクティブシーンのStepを呼びます. したがってGetScene()->Step()と等価です. 一方FWSceneのStepは,保持しているPHSceneのStepを呼びます. したがってGetPHScene()->Step()と等価です. 両方とも薄いラッパー関数ですが,ユーザのタイプ回数節約のために用意されています.
Frameworkを用いた描画には2通りの方法があります. 1つはGraphicsのシーングラフを用いる方法,もう1つはPhysicsシーンを直接描画する方法です. 後者はデバッグ描画とも呼ばれています.
FWSdkIf |
|
void Draw() |
|
void SetDebugMode(bool) |
|
bool GetDebugMode() |
Draw関数は描画モードに応じた描画処理を行います. Drawは通常アプリケーションの描画ハンドラから呼び出します. [Set]DebugModeは通常描画モード(false)とデバッグ描画モード(true)を切り替えます.
通常描画モードにおいてDraw関数を呼ぶと, はじめにアクティブシーンについてSync(true)が呼ばれ,剛体の状態がシーングラフに反映されます. 次にアクティブシーンが参照するGRSceneのRender関数が呼ばれ,シーングラフが描画されます. この方法ではシーングラフが持つライトやテクスチャなどの情報を最大限利用してフォトリアリスティックな描画が可能です. その反面,物理シミュレーションが主目的である場合にはシーングラフの構築という付加的なコストを支払わなければならないというデメリットもあります.
デバッグ描画については次節で説明します.