У меня есть приложение openGL / GLUT, которое использует обнаружение столкновения мяча. Все работает великолепно, и все работает хорошо. НО
Когда функция обновления (которая продвигает все шары, проверяет столкновения с другими шарами или стенами и т. Д.) Помещается в glutTimerFunc для обновления, я получаю хороший 13,5 FPS, и все работает медленно. Таймер обновления самой функции достаточно высок, чтобы не генерировать какие-либо служебные данные или что-либо еще.
Так что теперь я помещаю функцию продвижения для моего обнаружения столкновений в мою основную функцию рисования (вызываемую glutDisplayFunc & glutIdleFunc) и удивляюсь тем, что у меня стабильный 60,5 FPS, без лага и плавной анимации.
Так как это возможно? Связано ли это с тем фактом, что glutTimerFunc вызывается много раз и замедляет все, или есть какая-то причина для ГЛЮТА? Как я уже говорил, ничего не меняется, только одна функция помещается в другой вызов функции.