我尝试加载gltf格式的场景。它具有金属质感和粗糙感(未嵌入)。现在,我想使用Assimp使用指定的纹理加载模型。我使用GetTexture()检索纹理,但是aiTextureType没有粗糙度/金属性的成员。
所以问题是: 如何导入它们?由于Assimp支持gltf,因此它还必须以某种方式支持基于物理的材质贴图。
谢谢
答案 0 :(得分:0)
因此,如果有人遇到相同的问题: GetTexture(aiTextureType_UNKNOWN)返回pbr纹理的路径。
答案 1 :(得分:0)
对于GLTF PBR材料,您可以使用pbrmaterial.h
#include <assimp/pbrmaterial.h>
aiString fileBaseColor, fileMetallicRoughness;
material->GetTexture(AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_BASE_COLOR_TEXTURE, &fileBaseColor);
material->GetTexture(AI_MATKEY_GLTF_PBRMETALLICROUGHNESS_METALLICROUGHNESS_TEXTURE, &fileMetallicRoughness);
答案 2 :(得分:0)
组合的粗糙度/金属纹理是 aiTextureType_UNKNOWN。
您可以在这里看到:https://github.com/assimp/assimp/blob/master/include/assimp/pbrmaterial.h#L57
反照率纹理(或基色)为 aiTextureType_DIFFUSE
法线是 aiTextureType_NORMALS
等等...
(非 pbr 特定的东西似乎是相同的命名)