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

Assimp 4 Loading Missing materials doesn't throw errors

本文关键字:错误 材料 加载 Assimp      更新时间:2023-10-16

我正在使用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。有人对此有任何解决方法吗?

谢谢!

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

首先,请确保您使用的是正确的材质实例。然后,API 将按照 API 文档中的说明工作。

只要问问是否还有一些悬而未决的问题。如果您直接使用项目端,您将获得更快的答案:-(。