基本的に画面を (一人称で) 走り回ることができる学習目的で (C++ で gl/glut を使用して) プログラムを作成しました。シーンの周りにいくつかの立体があります。別のコンピューターで実行しようとしましたが、速度がまったく異なるため、件名で検索したところ、現在次のようなことを行っています。
アイドル機能:
start = glutGet (GLUT_ELAPSED_TIME);
double dt = (start-end)*30/1000;
<all the movement*dt>
glutPostRedisplay ();
end = glutGet (GLUT_ELAPSED_TIME);
表示機能:
<rendering for all objects>
glutSwapBuffers ();
私の質問は次のとおりです。これは適切な方法ですか?アイドル機能後のシーンが表示されていますよね?
end = glutGet (GLUT_ELAPSED_TIME) を glutSwapBuffers () の前に配置しようとしましたが、何の変化にも気づきませんでしたが、glutSwapBuffers () の後に配置すると、かなり遅くなり、時々停止することさえあります。
編集:私が考えている方法では、end-start は、すべての描画が完了してから動きの更新の前に経過した時間になるはずであることに気付きました。ここで考慮されていない唯一の時間は、コンピューターがすべての動きを実行するのにかかる時間です。(ほとんど何もないはずですか?)
これが紛らわしすぎる場合は申し訳ありません..
前もって感謝します。