Assimp 4加载缺少的材料不会引发错误

时间:2019-02-06 11:47:10

标签: c++ material assimp

我正在使用Assimp 4.1.0加载OBJ文件。某些文件可能引用了丢失的材料文件,如果Assimp无法正确找到它们,我想给材料提供我自己的默认值。

提供文档:

aiMaterial* mat = .....
// The generic way
if(AI_SUCCESS != mat->Get(<material-key>,<where-to-store>)) {
   // handle epic failure here
}

它应该扔东西,但不是。即使没有材料文件,它也会返回aiReturn_SUCCESS。有人对此有任何解决方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

当示例中的材料不存在时,它将为nullptr类型,并且您的应用程序将崩溃。当没有导入基于obj的材料(带有mtl-extension的文件)时,会创建基础材料,我想这个材料文件将用于获取您要查找的键。

首先请确保您使用的材质实例正确。然后,API将按照API文档中的描述进行工作。

请问是否还有一些未解决的问题。如果您直接使用项目端:-),则会得到更快的答案。