git-svn-id: svn://db.shs.com.ru/libs@683 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user