我想将旋转矩阵存储为四元数,然后在需要进行变换时再将其转换回来。我正在使用glm库,该库提供了mat4_cast和quat_cast函数来完成这个功能。但是,当我执行以下代码时:
glm::mat4 origTest = glm::lookAt(position, lookAtPt, up);
glm::quat quatTest = glm::quat_cast(origTest);
glm::mat4 mat4Test = glm::mat4_cast(quatTest);
我对origTest和mat4Test得到了不同的值,我有什么遗漏吗? position、lookAtPt和up是glm::vec3类型。