GLM 从旋转中获取方向?

GLM Get direction from rotation?

我正在制作我的相机 class,它快完成了,但是现在,我发现了一个问题。我需要将 xyz 旋转转换为 xyz 方向。

目前我正在尝试这样做但是不起作用:

m_direction = glm::rotateX(glm::vec3(0,0,0), m_rotation.x);
m_direction = glm::rotateY(m_direction, m_rotation.y);
m_direction = glm::rotateZ(m_direction, m_rotation.z);

应用于 (0,0,0) 矢量的任何旋转都会再次 return 该矢量。想一想当没有应用旋转时,您希望相机朝哪个方向看。在很多应用中,这将是负 z 轴,因此初始向量应为 (0,0,-1)。

编辑:假设原来的方向是沿着其中一个主轴,整个计算可以简化,因为这对应于读取矩阵的相应列。 (感谢@datenwolf)