В настоящее время я начинаю изучать OpenGL в школе, и на днях я начал делать простую игру (самостоятельно, а не для школы). Я использую freeglut и собираю его на C, поэтому для своего игрового цикла я действительно использовал переданную мне функцию, glutIdleFuncчтобы обновить все чертежи и физику за один проход. Это было хорошо для простых анимаций, которые меня не особо волновали по частоте кадров, но поскольку игра в основном основана на физике, я действительно хочу (нужно) связать, насколько быстро она обновляется.
Поэтому моя первая попытка состояла в том, чтобы мою функцию я передал glutIdleFunc( myIdle()), чтобы отслеживать, сколько времени прошло с момента его предыдущего вызова, и обновлять физику (и текущую графику) каждые миллисекунды. Я timeGetTime()делал это (используя <windows.h>). И это заставило меня задуматься, действительно ли использование функции простоя является хорошим способом прохождения игрового цикла?
Мой вопрос: как лучше реализовать игровой цикл в OpenGL? Следует ли мне избегать использования функции ожидания?