Почему в OpenGL вращение объекта не ускоряется со временем?
Не мог бы кто-нибудь помочь разобраться с вращением объекта с помощью:
glm::mat4 transform(1.0f);
transform = glm::rotate(transform, (float)glfwGetTime(), glm::vec3(0.0f, 0.0f, 1.0f));
https://ravesli.com/wp-content/uploads/2020/04/39.gif
Почему получается такое плавное вращение ,то есть вращение не ускоряется,хотя таймер увеличивается(т.е значения угла тоже должно увеличиваться) и видно ,что "скорость" одинаковая.Если,допустим, прошло 70 с,то угол уже должен быть 70,но вращение тоже самое(скорость не увеличивается/уменьшается).
Ответы (1 шт):
Ну так время же монотонно растет, вот и угол поворота монотонно изменяется. Чтобы ускорялось, надо что-то типа угол = время_от_старта ^ 2 например. Или матрицу поворота не пересоздавать, а каждый раз "доповорачивать".
Каждый кадр у вас заново берется картинка повернутая на 0 градусов и вы ее поворачиваете на столько градусов, сколько сейчас времени (прям как секундную стрелку). Вы же нигде не храните состояние прошлого кадра.