Повороты в openGL
Я хочу повернуть модель вокруг её оси, а не вокруг мировых осей. Можно ли это сделать не перенося модель? Я нашёл статью про quaternion, но у моя модель всё равно поворачивается вокруг мировых осей. Возможно я неправильно понял статью. Вот мой код:
void Model::rotateAroundModelAxis(vec3 EulerAngles)
{
quat quaternion = quat(EulerAngles);
rotationMatrix = mat4_cast(quaternion);
}
mat4 Model::ModelMatrix()
{
return translationMatrix * rotationMatrix * scaleMatrix;
}
Ответы (1 шт):
Автор решения: vp_arth
→ Ссылка
Матрица поворота работает относительно начала координат. Поэтому модель изначально нужно строить вокруг её центра вращения и только в самом конце translationMatrix переносит модель в нужное место в мире)
MVP:
Model Matrix — это translationMatrix * rotationMatrix * scaleMatrix (в обратном порядке)
View Matrix - это направление и ориентация камеры(LookAt)
Projection Matrix - искажение перспективы
