Răsfoiți Sursa

- fixed/changed/worked on issue 3580054 - XFile materials don't have ambient colours, but emissive

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1322 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
ulfjorensen 13 ani în urmă
părinte
comite
2a580c5518
2 a modificat fișierele cu 8 adăugiri și 6 ștergeri
  1. 4 3
      code/ColladaParser.cpp
  2. 4 3
      code/XFileImporter.cpp

+ 4 - 3
code/ColladaParser.cpp

@@ -1369,10 +1369,11 @@ void ColladaParser::ReadEffectColor( aiColor4D& pColor, Sampler& pSampler)
 				int attrTex = GetAttribute( "texture");
 				pSampler.mName = mReader->getAttributeValue( attrTex);
 
-				// get name of UV source channel
+				// get name of UV source channel. Specification demands it to be there, but some exporters
+				// don't write it. It will be the default UV channel in case it's missing.
 				attrTex = TestAttribute( "texcoord");
-        if( attrTex >= 0 )
-  				pSampler.mUVChannel = mReader->getAttributeValue( attrTex);
+				if( attrTex >= 0 )
+	  				pSampler.mUVChannel = mReader->getAttributeValue( attrTex);
 				//SkipElement();
 			}
 			else if( IsElement( "technique"))

+ 4 - 3
code/XFileImporter.cpp

@@ -52,7 +52,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 using namespace Assimp;
 
 static const aiImporterDesc desc = {
-	"Collada Importer",
+	"Direct3D XFile Importer",
 	"",
 	"",
 	"",
@@ -594,8 +594,9 @@ void XFileImporter::ConvertMaterials( aiScene* pScene, const std::vector<XFile::
 
 		mat->AddProperty<int>( &shadeMode, 1, AI_MATKEY_SHADING_MODEL);
 		// material colours
-		// FIX: Setup this as ambient not as emissive color
-		mat->AddProperty( &oldMat.mEmissive, 1, AI_MATKEY_COLOR_AMBIENT);
+    // Unclear: there's no ambient colour, but emissive. What to put for ambient?
+    // Probably nothing at all, let the user select a suitable default.
+		mat->AddProperty( &oldMat.mEmissive, 1, AI_MATKEY_COLOR_EMISSIVE);
 		mat->AddProperty( &oldMat.mDiffuse, 1, AI_MATKEY_COLOR_DIFFUSE);
 		mat->AddProperty( &oldMat.mSpecular, 1, AI_MATKEY_COLOR_SPECULAR);
 		mat->AddProperty( &oldMat.mSpecularExponent, 1, AI_MATKEY_SHININESS);