Selaa lähdekoodia

saves value in the 'Ke'-Attribute in ObjMtl Files in COLOR_EMISSIVE

Judith Hartmann 11 vuotta sitten
vanhempi
commit
7d1a704ed7
4 muutettua tiedostoa jossa 11 lisäystä ja 0 poistoa
  1. 3 0
      code/ObjExporter.cpp
  2. 2 0
      code/ObjFileData.h
  3. 1 0
      code/ObjFileImporter.cpp
  4. 5 0
      code/ObjFileMtlImporter.cpp

+ 3 - 0
code/ObjExporter.cpp

@@ -152,6 +152,9 @@ void ObjExporter :: WriteMaterialFile()
 		if(AI_SUCCESS == mat->Get(AI_MATKEY_COLOR_SPECULAR,c)) {
 			mOutputMat << "ks " << c.r << " " << c.g << " " << c.b << endl;
 		}
+		if(AI_SUCCESS == mat->Get(AI_MATKEY_COLOR_EMISSIVE,c)) {
+			mOutputMat << "ke " << c.r << " " << c.g << " " << c.b << endl;
+		}
 
 		float o;
 		if(AI_SUCCESS == mat->Get(AI_MATKEY_OPACITY,o)) {

+ 2 - 0
code/ObjFileData.h

@@ -183,6 +183,8 @@ struct Material
 	aiColor3D diffuse;
 	//!	Specular color
 	aiColor3D specular;
+	//!	Emissive color
+	aiColor3D emissive;
 	//!	Alpha value
 	float alpha;
 	//!	Shineness factor

+ 1 - 0
code/ObjFileImporter.cpp

@@ -550,6 +550,7 @@ void ObjFileImporter::createMaterials(const ObjFile::Model* pModel, aiScene* pSc
 		mat->AddProperty( &pCurrentMaterial->ambient, 1, AI_MATKEY_COLOR_AMBIENT );
 		mat->AddProperty( &pCurrentMaterial->diffuse, 1, AI_MATKEY_COLOR_DIFFUSE );
 		mat->AddProperty( &pCurrentMaterial->specular, 1, AI_MATKEY_COLOR_SPECULAR );
+		mat->AddProperty( &pCurrentMaterial->emissive, 1, AI_MATKEY_COLOR_EMISSIVE );
 		mat->AddProperty( &pCurrentMaterial->shineness, 1, AI_MATKEY_SHININESS );
 		mat->AddProperty( &pCurrentMaterial->alpha, 1, AI_MATKEY_OPACITY );
 

+ 5 - 0
code/ObjFileMtlImporter.cpp

@@ -146,6 +146,11 @@ void ObjFileMtlImporter::load()
 					++m_DataIt;
 					getColorRGBA( &m_pModel->m_pCurrentMaterial->specular );
 				}
+				else if (*m_DataIt == 'e')
+				{
+					++m_DataIt;
+					getColorRGBA( &m_pModel->m_pCurrentMaterial->emissive );
+				}
 				m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
 			}
 			break;