git-svn-id: svn://db.shs.com.ru/libs@683 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-12-11 22:54:45 +00:00
parent 9b5227b3bb
commit 23bec184a8

View File

@@ -94,11 +94,12 @@ float aiMatFloat(const aiMaterial * m, const char * key, uint s0, uint s1, float
if (r != aiReturn_SUCCESS) return def;
return ret;
}
QString aiMatMap(const aiMaterial * m, aiTextureType texture) {
QString aiMatString(const aiMaterial * m, const char * key, uint s0, uint s1) {
aiString p;
aiReturn r = const_cast<aiMaterial*>(m)->GetTexture(texture, 0, &p);
if (r != aiReturn_SUCCESS) return QString(p.C_Str());
return QString();
aiReturn r = const_cast<aiMaterial*>(m)->Get(key, s0, s1, p);
//qDebug() << "GetTexture" << key << s0 << r << p.C_Str();
if (r != aiReturn_SUCCESS) return QString();
return QString(p.C_Str());
}
Material * assimpMaterial(const aiMaterial * m) {
if (!m) return 0;
@@ -110,11 +111,11 @@ Material * assimpMaterial(const aiMaterial * m) {
ret->color_diffuse = aiMatColor(m, AI_MATKEY_COLOR_DIFFUSE);
ret->color_specular = aiMatColor(m, AI_MATKEY_COLOR_SPECULAR);
ret->color_emission = aiMatColor(m, AI_MATKEY_COLOR_EMISSIVE);
ret->map_diffuse .bitmap_path = aiMatMap(m, aiTextureType_DIFFUSE);
ret->map_normal .bitmap_path = aiMatMap(m, aiTextureType_NORMALS);
ret->map_specular .bitmap_path = aiMatMap(m, aiTextureType_SPECULAR);
ret->map_roughness.bitmap_path = aiMatMap(m, aiTextureType_DIFFUSE_ROUGHNESS);
ret->map_emission .bitmap_path = aiMatMap(m, aiTextureType_EMISSIVE);
ret->map_diffuse .bitmap_path = aiMatString(m, AI_MATKEY_TEXTURE_DIFFUSE(0));
ret->map_normal .bitmap_path = aiMatString(m, AI_MATKEY_TEXTURE_NORMALS(0));
ret->map_specular .bitmap_path = aiMatString(m, AI_MATKEY_TEXTURE_SPECULAR(0));
ret->map_roughness.bitmap_path = aiMatString(m, AI_MATKEY_TEXTURE_SHININESS(0));
ret->map_emission .bitmap_path = aiMatString(m, AI_MATKEY_TEXTURE_EMISSIVE(0));
ret->transparency = 1.f - aiMatFloat(m, AI_MATKEY_OPACITY, 1.f);
ret->setTypes();
return ret;