[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35710] trunk/blender/source/blender/ collada/EffectExporter.cpp: Small tweak to material export: only export as <lambert> when spec intensity is 0.0 and diffuse shader is set to Lambert.

Nathan Letwory nathan at letworyinteractive.com
Tue Mar 22 23:00:26 CET 2011


Revision: 35710
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35710
Author:   jesterking
Date:     2011-03-22 22:00:26 +0000 (Tue, 22 Mar 2011)
Log Message:
-----------
Small tweak to material export: only export as <lambert> when spec intensity is 0.0 and diffuse shader is set to Lambert. Other cases will be handled in due time, until then phong.

Modified Paths:
--------------
    trunk/blender/source/blender/collada/EffectExporter.cpp

Modified: trunk/blender/source/blender/collada/EffectExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/EffectExporter.cpp	2011-03-22 21:32:20 UTC (rev 35709)
+++ trunk/blender/source/blender/collada/EffectExporter.cpp	2011-03-22 22:00:26 UTC (rev 35710)
@@ -129,19 +129,25 @@
 	ep.setProfileType(COLLADASW::EffectProfile::COMMON);
 	ep.openProfile();
 	// set shader type - one of three blinn, phong or lambert
-	if (ma->spec_shader == MA_SPEC_BLINN) {
-		writeBlinn(ep, ma);
-	}
-	else if (ma->spec_shader == MA_SPEC_PHONG) {
-		writePhong(ep, ma);
-	}
-	else if(ma->diff_shader == MA_DIFF_LAMBERT) {
-		writeLambert(ep, ma);
-	}
-	else {
+	if(ma->spec>0.0f) {
+		if (ma->spec_shader == MA_SPEC_BLINN) {
+			writeBlinn(ep, ma);
+		}
+		else {
+			// \todo figure out handling of all spec+diff shader combos blender has, for now write phong
+			// for now set phong in case spec shader is not blinn
+			writePhong(ep, ma);
+		}
+	} else {
+		if(ma->diff_shader == MA_DIFF_LAMBERT) {
+			writeLambert(ep, ma);
+		}
+		else {
 		// \todo figure out handling of all spec+diff shader combos blender has, for now write phong
 		writePhong(ep, ma);
+		}
 	}
+	
 	// index of refraction
 	if (ma->mode & MA_RAYTRANSP) {
 		ep.setIndexOfRefraction(ma->ang);




More information about the Bf-blender-cvs mailing list