Frameworkを用いたシミュレーションと描画

Frameworkモジュールを介して物理シミュレーションを行うには以下の関数を使います.

FWSdkIf

void Step()

 

FWSdkStepはアクティブシーンのStepを呼びます. したがってGetScene()->Step()と等価です. 一方FWSceneStepは,保持しているPHSceneStepを呼びます. したがって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)が呼ばれ,剛体の状態がシーングラフに反映されます. 次にアクティブシーンが参照するGRSceneRender関数が呼ばれ,シーングラフが描画されます. この方法ではシーングラフが持つライトやテクスチャなどの情報を最大限利用してフォトリアリスティックな描画が可能です. その反面,物理シミュレーションが主目的である場合にはシーングラフの構築という付加的なコストを支払わなければならないというデメリットもあります.

デバッグ描画については次節で説明します.