From 23bec184a807e1c20f5097c9439e98bc99432dc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Wed, 11 Dec 2019 22:54:45 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@683 a8b55f48-bf90-11e4-a774-851b48703e85 --- qglengine/formats/loader_assimp.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/qglengine/formats/loader_assimp.cpp b/qglengine/formats/loader_assimp.cpp index 4fd4e92..1544280 100644 --- a/qglengine/formats/loader_assimp.cpp +++ b/qglengine/formats/loader_assimp.cpp @@ -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(m)->GetTexture(texture, 0, &p); - if (r != aiReturn_SUCCESS) return QString(p.C_Str()); - return QString(); + aiReturn r = const_cast(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;