Я использую этот очень простой код, чтобы вращать объекты вокруг своего собственного происхожденияGLM OpenGL вращение правильно только вокруг оси X
void Entity::rotate(unsigned short axis, float speed, float delta)
{
m_Orientation[axis] += delta * speed;
glm::quat quaternion = glm::quat(glm::vec3(m_Orientation[0], m_Orientation[1], m_Orientation[2]));
m_RotationMatrix = glm::mat4_cast(quaternion);
}
Проблема я столкнулся в том, что вращение только родственница объект направления на X ось. Имея в виду, что независимо от того, с каким объектом объект сталкивается (какова его ориентация), если я поверну его вокруг X, он всегда будет вращаться вокруг своего собственного X ось. Это то, что я хотел бы сделать, но и на другой оси 2.
Но Y и Z всегда вращаются вокруг осей X и Y вокруг мира, не обращая внимания на то, как обращается мой объект.
Мой код такой маленький и простой Я действительно не вижу проблемы? Является ли поворот X всегда правильным в случае аварии, или это значит, что другие два ошибочны?
Вот видео о проблеме: youtube.com/watch? V = DCZJsm8tZA8 – oglglslnoob