Fbx SDK 上轴转换

Posted

技术标签:

【中文标题】Fbx SDK 上轴转换【英文标题】:Fbx SDK Up-Axis conversion 【发布时间】:2014-02-08 20:34:16 【问题描述】:

我的问题是关于在我使用 openGL 3.3、FreeImage 和 FBX SDK 2014.2 的应用程序中加载 .fbx 模型

我正在使用面向 z 向上的 3ds max 2014。然而openGL是Y向上的。所以,当我尝试加载模型时,它会旋转!

我尝试了几种方法。 3ds max fbx 插件具有 fbx 导出器。我在 Axis Conversion-> Up Axis 下选择了 Y 和 Z 作为上轴,但没有效果。模型仍在旋转。

然后我尝试了 ConvertScene() 函数,但仍然没有效果。然后我发现 CobvertScene() 并没有转换节点的轴系。

是否有任何有效的方法可以在 openGL 中正确加载 .fbx 模型? openGL中加载模型时如何改变模型的up_Axis?

【问题讨论】:

【参考方案1】:

轴转换由 FbxAxisSystem 处理,如下所示:

FbxAxisSystem directXAxisSys(FbxAxisSystem::EUpVector::eYAxis,
    FbxAxisSystem::EFrontVector::eParityEven,
    FbxAxisSystem::eRightHanded);
directXAxisSys.ConvertScene(scene);

默认情况下,它会覆盖您提供给它的场景,但如果您不想要该功能,则会有一个重载的 ConvertScene() 函数。

如果您要转换到另一个系统,请检查 FbxAxisSystem 中的默认值,它们被声明为静态常量。

【讨论】:

以上是关于Fbx SDK 上轴转换的主要内容,如果未能解决你的问题,请参考以下文章

在OpenGL中转换FBX模型的坐标系

fbx sdk 支持ios android吗

FBX SDK:如何逐点变换矩阵?

FBX节点变换计算

如何使用纹理将 fbx 转换为 usdz

如何获得 fbx 网格的正确位置?