Я использую glm::rotate
для поворота матрицы преобразования для куба в сцене.
"cube->t = glm::rotate(cube->t, stepTime * 50.f, glm::vec3(0.f, 1.f, 0.f));"
вызывается один раз за кадр, где cube->t
— рассматриваемая матрица.
Странно то, что в течение 20 минут (или двух минут, если я поверну на stepTime * 5000.f
вместо stepTime * 50.f
) куб заметно масштабируется по осям X и Z, причем масштабирование по этим двум осям всегда одинаково ( высота куба никогда не меняется, но ширина и глубина изменяются точно на ту же величину). В случае 5000.f
становится меньше, а при обычном 50.f
или 100.f
становится больше.
Я думал, что это может быть вопрос ошибки округления, но кроме этого я понятия не имею, что может быть причиной этого. Это ошибка округления? Могу ли я решить эту проблему, нормализуя матрицу на регулярной основе? Есть ли в glm функция нормализации матриц, или я должен сам ее написать?