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

时间:2015-08-06 22:59:13

标签: 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;
    }

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

1 个答案:

答案 0 :(得分:1)

我弄清楚如何解决它!

FBX文件有两种类型。

  1. Binary FBX
  2. ASCII FBX
  3. 每当你尝试

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

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

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