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

Posted

技术标签:

【中文标题】FbxManager 错误 Efailure 和意外的文件类型错误【英文标题】:FbxManager error Efailure and unexpected file type error 【发布时间】:2015-10-30 06:33:52 【问题描述】:

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

这是我的进口商代码的 sn-p。

//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;
    

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

【问题讨论】:

您使用的是 WinRT API 吗?我在通用应用项目中使用它时遇到了同样的问题。 不,我没有使用通用应用程序项目或 winRT api。只是 win api 和 dx 11_0 【参考方案1】:

我知道如何解决它!

有两种类型的 FBX 文件。

    二进制 FBX ASCII FBX

当你尝试做的时候

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

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

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

【讨论】:

以上是关于FbxManager 错误 Efailure 和意外的文件类型错误的主要内容,如果未能解决你的问题,请参考以下文章

HomeWork2

在 FBX SDK 中创建点或顶点

Rsyslog lognormalizer 日期字段解析失败

前端性能优化:桌面浏览器前端优化策略

关于发展开源芯片技术体系的思考

关于发展开源芯片技术体系的思考