我试图将3d对象的方向从Unity传输到我的引擎。它们有不同的坐标系。
在Unity中: 左手X为右,Y为向上,Z为向前,旋转为ZWY顺序为CCW
在我的引擎中: 右手X是右边,Y是向下,Z是向前,旋转是XYZ顺序CW,但可以是任意(ZYX,XZY等)。
为此,我将向前和向上的向量保存到Unity,然后在我的引擎中读回。然后我从这个向量计算glm :: lookAtLH矩阵,以XYZ顺序从这个矩阵中提取欧拉角,然后以任意顺序从这个角度计算旋转矩阵(默认为xyz顺序)。
我的问题是在此之后对象方向发生了变化,但我不想要这个。什么是旋转角度转换的正确方法,以便我的对象保持相同的方向,而不管坐标系和旋转顺序的所有变化是什么?