Fbx SDK Up-Axis转换

时间:2014-01-19 18:46:30

标签: visual-c++ opengl fbx

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

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

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

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

有没有有效的方法在openGL中正确加载.fbx模型? 如何在openGL中加载模型时更改模型的up_Axis?

1 个答案:

答案 0 :(得分:2)

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

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

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

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