Повороты в 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 - искажение перспективы

Неплохой туториал

→ Ссылка