たとえば、ゲームロジックは60fps、VSyncは50fpsです。ゲームループを別のスレッドに移して、スレッドを描画するための描画要求を送る必要がありますか?これはまだ1つのスレッドで修正できますか?VSyncとは異なるフレームレートで動作するゲームループを修正するにはどうすればよいですか?
1
A
答えて
2
あなたのゲームロジックが計算に1/60かかりますか、これはちょうどあなたが使っているシミュレーションの間隔ですか?インターバルの場合は、フレームを表示するのにかかる時間、つまりフレーム間の時間を測定してシミュレーション間隔を調整することをお勧めします。
0
ハードコードされたタイミングよりむしろタイマーを使用する必要があります。 (前の更新と現在の更新の差を1/60秒よりもむしろ使用してください)。これにより、60fpsで追いつかない計算が行われないような状況が回避されます。その後、VSyncも問題にはなりません。私が間違っている場合
は、私を修正していますが、マルチコアCPUで(ジッタの多分少し除いて)何の問題もなく、他のfpsで任意のFPSと画面描画で
をレンダリングすることができ、私はお勧めします実際にはスレッドを使用してください。たとえば、あるスレッド内の物理、および別のスレッドでレンダリング(副作用を防ぐためにスナップショットデータをレンダリング)などです。
1
、 "自分の時間ステップを修正し、" グレン・フィードラーすることで、この記事を見てみましょう: