【发布时间】:2017-03-13 01:24:42
【问题描述】:
我正在使用这个非常简单的代码来围绕它们自己的原点旋转对象
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
标签: rotation quaternions glm-math