【问题标题】:How to make Nvidia FleX rotate the objects the same way as Blender, Unity or other 3D software?如何让 Nvidia FleX 像 Blender、Unity 或其他 3D 软件一样旋转对象?
【发布时间】:2018-11-01 19:10:35
【问题描述】:

我在 FleX 中旋转一些对象,将它们导出并在 Blender 中渲染。我意识到我在 FleX 中应用于对象的旋转不会像 Blender 那样旋转对象。如果我做对了,我了解到 FleX 使用变换矩阵来旋转对象,但 Blender 并没有 [必然] 这样做。我还与在 Unity 中使用 FleX 插件的人进行了交谈,他说他面临着类似的问题。欧拉角或四元数都是这种情况。下面是我用来在 FleX 中旋转对象的一段代码。我对 FleX 还很陌生,我不知道应该使用哪些函数,这样我才能获得与 Blender 中相同的旋转,而无需进行不必要的转换。有人可以帮我解决这个问题吗?

对于欧拉角的旋转:

obj->Transform(RotationMatrix(rx, Vec3(1.0f, 0.0f, 0.0f)));
obj->Transform(RotationMatrix(ry, Vec3(0.0f, 1.0f, 0.0f)));
obj->Transform(RotationMatrix(rz, Vec3(0.0f, 0.0f, 1.0f)));

对于四元数的旋转:

obj->Transform(RotationMatrix(Quat(qx, qy, qz, qw)));

【问题讨论】:

    标签: unity3d graphics game-physics nvidia blender


    【解决方案1】:

    这是由于 Blender 和 Flex 中对轴的不同解释造成的。 Blender 中的 [x, y, z] 在 Nvidia FleX 中被解释为 [-y, z, x]。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2016-05-10
      相关资源
      最近更新 更多