mtl文件
# 材质定义
newmtl example_material
#透明度
d 1.0000
# Albedo Map(Diffuse Color)
map_Kd default_Albedo.png
# Normal Map
map_Ns default_Normal.png
# Metallic Map
map_Ke default_Metalness.png
# Roughness Map
map_Ks default_Roughness.png
# AO Map
map_Ka default_AO.png
assimp 解析对照
// 1. albedo maps
std::vector<std::shared_ptr<::PBR::Texture>> albedoMaps = loadMaterialTextures(ai_material, aiTextureType_DIFFUSE,scene, material_name);
std::cout<<"normal maps:"<<std::endl;
// 2. normal maps
std::vector<std::shared_ptr<::PBR::Texture>> normalMaps = loadMaterialTextures(ai_material, aiTextureType_SHININESS, scene, material_name);
std::cout<<"metallic maps:"<<std::endl;
// 3. metallic maps
std::vector<std::shared_ptr<::PBR::Texture>> metallicMaps = loadMaterialTextures(ai_material, aiTextureType_EMISSIVE, scene, material_name);
std::cout<<"roughness maps:"<<std::endl;
// 4. roughness maps
std::vector<std::shared_ptr<::PBR::Texture>> roughnessMaps = loadMaterialTextures(ai_material, aiTextureType_SPECULAR, scene, material_name);
std::cout<<"AO maps:"<<std::endl;
// 5. AO maps
std::vector<std::shared_ptr<::PBR::Texture>> AOMaps = loadMaterialTextures(ai_material, aiTextureType_AMBIENT, scene, material_name);
float opacity = 1.0f;
int ret = ai_material->Get(AI_MATKEY_OPACITY, opacity);
if (ret != AI_SUCCESS)
{
std::cout << "Cannot load opacity property" <<std::endl;
opacity=1.0;
}