Browse Source

Add support for emissive and gloss-maps

Conflicts:
	code/ObjFileMtlImporter.cpp
	Someone added support for loading more bump maps, I added support for emmissive-maps. Easy merge.
Nick Overdijk 12 years ago
parent
commit
f433746bfa
3 changed files with 9 additions and 0 deletions
  1. 2 0
      code/ObjFileData.h
  2. 3 0
      code/ObjFileImporter.cpp
  3. 4 0
      code/ObjFileMtlImporter.cpp

+ 2 - 0
code/ObjFileData.h

@@ -156,6 +156,7 @@ struct Material
 	aiString texture;
 	aiString textureSpecular;
 	aiString textureAmbient;
+	aiString textureEmissive;
 	aiString textureBump;
 	aiString textureNormal;
 	aiString textureSpecularity;
@@ -166,6 +167,7 @@ struct Material
 		TextureDiffuseType = 0,
 		TextureSpecularType,
 		TextureAmbientType,
+		TextureEmissiveType,
 		TextureBumpType,
 		TextureNormalType,
 		TextureSpecularityType,

+ 3 - 0
code/ObjFileImporter.cpp

@@ -575,6 +575,9 @@ void ObjFileImporter::createMaterials(const ObjFile::Model* pModel, aiScene* pSc
 			}
 		}
 
+		if ( 0 != pCurrentMaterial->textureEmissive.length )
+			mat->AddProperty( &pCurrentMaterial->textureEmissive, AI_MATKEY_TEXTURE_EMISSIVE(0));
+
 		if ( 0 != pCurrentMaterial->textureSpecular.length )
 		{
 			mat->AddProperty( &pCurrentMaterial->textureSpecular, AI_MATKEY_TEXTURE_SPECULAR(0));

+ 4 - 0
code/ObjFileMtlImporter.cpp

@@ -302,6 +302,10 @@ void ObjFileMtlImporter::getTexture() {
 		// Ambient texture
 		out = & m_pModel->m_pCurrentMaterial->textureAmbient;
 		clampIndex = ObjFile::Material::TextureAmbientType;
+	} else if (!ASSIMP_strincmp(&(*m_DataIt),"map_emissive",6)) {
+		// Emissive texture
+		out = & m_pModel->m_pCurrentMaterial->textureEmissive;
+		clampIndex = ObjFile::Material::TextureEmissiveType;
 	} else if ( !ASSIMP_strincmp( pPtr, BumpTexture1.c_str(), BumpTexture1.size() ) ||
 		        !ASSIMP_strincmp( pPtr, BumpTexture2.c_str(), BumpTexture2.size() ) || 
 		        !ASSIMP_strincmp( pPtr, BumpTexture3.c_str(), BumpTexture3.size() ) ) {