c++ - FbxManager 错误 Efailure 和意外的文件类型错误

标签 c++ import fbx

我遇到了一个问题,我的 FbxImporter 无法初始化。当我调用 GetStatus.GetErrorString() 时它返回的 ErrorString 是“意外的文件类型”。状态的错误代码是 EFailure(在查找后所有 autodesk 都说这意味着它失败了)。我尝试了许多不同的 fbx 文件,但似乎都不起作用。此外,我已将它们包含在 visual studio 项目中,甚至包含可执行文件(我知道这不是原因,因为其他文件加载得很好)。环顾四周,确实没有论坛帖子或任何可以帮助我解决问题的东西。

这是我的进口商代码的片段。

//set up the fbxmanager
    FbxManager* fbxManager = FbxManager::Create();

    //set the settings for the manager
    FbxIOSettings* ioSettings = FbxIOSettings::Create(fbxManager, IOSROOT);
    fbxManager->SetIOSettings(ioSettings);


    //set the settings for the fbx io settings
    //create and init the importer
    FbxImporter *importer = FbxImporter::Create(fbxManager,"");

    //create and init the scene
    FbxScene* fbxScene = FbxScene::Create(fbxManager, "");

    //init the importer
    result = importer->Initialize(filename,-1, fbxManager->GetIOSettings());
    if (!result)
    {
        string error = importer->GetStatus().GetErrorString();
        FbxStatus status = importer->GetStatus().GetCode();
        return false;
    }

如果我需要澄清问题或者您需要更多信息来回答我的问题,请说明,谢谢。

最佳答案

我想办法解决了!

有两种类型的 FBX 文件。

  1. 二进制 FBX
  2. ASCII FBX

每当你尝试做的时候

importer->Initialize(filename,-1, fbxManager->GetIOSettings());

对于二进制 FBX,它会导致“意外的文件类型”。
但是,如果您通过 FBX Converter 将二进制 FBX 转换为 ASCII FBX ,您的程序将能够读取该文件。

P.S:示例程序可以读取二进制FBX。我认为 FBX 有不同的版本,它会导致兼容性问题。

关于c++ - FbxManager 错误 Efailure 和意外的文件类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31867142/

相关文章:

python - librosa 库出错

c# - XNA 4.0。 *.fbx 模型的动态变化尺寸

c++ - 将派生类的地址分配给基类指针

c++ - 试图制作派生类,编译器期望抽象基的默认构造函数

python - 用Python链接c++/c项目

python : Import Libraries in Module or in Function

c - 如何使用 Eclipse 将额外的源代码添加到导入的现有 makefile 项目中?

python - FBX SDK - 从角色的 ENodeId 获取 FbxNode

c++ - 使用 fbx sdk C++ 从 fbx 读取纹理文件名

c++ - 带有 Crypto++ 库的 QT 控制台应用程序