DaO*_*ner 7 assimp shading gltf
我尝试加载 gltf 格式的场景。它具有金属和粗糙纹理(未嵌入)。现在我想使用 Assimp 加载具有指定纹理的模型。我使用 GetTexture() 检索纹理,但 aiTextureType 没有粗糙度/金属的成员。
所以问题是:我如何导入它们?由于 Assimp 支持 gltf,因此它也必须以某种方式支持基于物理的材质贴图。
谢谢
自 Assimp 5.1.0 起,通用 PBR 材质属性甚至适用于非 glTF 文件:
// for some formats (like glTF) metallic and roughness may be the same file
aiString fileBaseColor, fileMetallic, fileRoughness;
material->GetTexture(AI_MATKEY_BASE_COLOR_TEXTURE, &fileBaseColor);
material->GetTexture(AI_MATKEY_METALLIC_TEXTURE, &fileMetallic);
material->GetTexture(AI_MATKEY_ROUGHNESS_TEXTURE, &fileRoughness);
Run Code Online (Sandbox Code Playgroud)
完整列表位于: https: //github.com/assimp/assimp/blob/v5.1.4/include/assimp/material.h#L972
旧答案:(自 Assimp 5.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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5682 次 |
| 最近记录: |