将左手Y-up(例如Unity)坐标和旋转转换为右手Z-up(3DS Max)

时间:2019-03-04 17:35:43

标签: unity3d quaternions coordinate-systems coordinate-transformation 3dsmax

我们开发了一个应用程序,该应用程序使用从max统一导出为fbx的模型(似乎可以正常工作),对其进行更改,然后将更改传达回3DSMax以获得清晰的渲染。

我们以最大旋转方式旋转模型枢轴,以使其在导出后正确显示在Unity中。 到目前为止,我们得到了什么:

Position:
    x(max) = x(unity)
    y(max) = z(unity)
    z(max) = y(unity)
Rotation:
    x(max) = x(unity)
    y(max) = -y(unity)
    z(max) = z(unity)

简单的轮换似乎有效,而复杂的轮换无效。我怀疑从左手转为右手或将不同的旋转乘法顺序考虑在内时,我们没有正确考虑镜像。映射如何正确完成?

有一个相关的问题,没有答案: Unity rotation convertion

1 个答案:

答案 0 :(得分:1)

问题是Unity(XYZ)和Max(ZYX)的旋转顺序不同。这就解释了单次旋转有效,但不复杂。如果您在上面的问题中进行了转换,然后在Unity中以相同的顺序连续进行每次旋转,那么它将起作用。