Contents

レンダリングエンジン設計(3)

前回の続きになります。

レンダリングエンジンの設計(3)

世界の状態頻度を上回るレンダリング

下図は、前回までに説明した状態の更新とレンダリングの関係図です。

説明図

上記の図では、状態更新が完了した結果を使ってレンダリングをしているため、レンダリングFPSが状態更新頻度を上回ることはできません。
ところが実際には、状態更新は1/60秒の頻度で更新し、レンダリングはモニタの上限FPSを出す(例えば144FPなど)ことも多いです。

これまでの説明では、世界の状態は1/60秒の頻度でした変わらないため、下図のようにその状態で何度レンダリングしても画面上の結果は同じになってしまうはずです。

説明図

それでは高頻度でレンダリングする意味がなくなってしまうため、レンダリング時点の位置を、前回の位置と今回の位置から計算により補完して描画します。

説明図

上記の絵は、単純に加速度と速度を持つものとしてモデル化していますが、実際は衝突・摩擦・拘束・バネ・流体等複雑な要素を取り扱うため、このような単純化できるものだけではありません。
では、どのように補完する方法があるのか、という点について考察していきます。

と思ったのですが、こんな実装はまだ先なので、その時にまた触れることにします。
記載がめんどくさくなったとか、こんな事やってたらまったく進まないとか、思ってはいません…