我遇到了我的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文件有两种类型。
每当你尝试去做
importer->Initialize(filename,-1, fbxManager->GetIOSettings());
使用Binary FBX,它将导致“意外的文件类型”。
但是,如果通过FBX Converter将二进制FBX转换为ASCII FBX,则程序将能够读取该文件。
P.S:示例程序可以读取二进制FBX。我认为FBX具有不同的版本,并且会引起兼容性问题。
关于c++ - FbxManager错误失败和意外的文件类型错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31867142/