[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29281] trunk/blender/source/blender/ collada/DocumentExporter.cpp: Merge -c 29280 from COLLADA branch into trunk .

Arystanbek Dyussenov arystan.d at gmail.com
Sun Jun 6 21:32:12 CEST 2010


Revision: 29281
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29281
Author:   kazanbas
Date:     2010-06-06 21:32:12 +0200 (Sun, 06 Jun 2010)

Log Message:
-----------
Merge -c 29280 from COLLADA branch into trunk.

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

Modified: trunk/blender/source/blender/collada/DocumentExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/DocumentExporter.cpp	2010-06-06 19:15:33 UTC (rev 29280)
+++ trunk/blender/source/blender/collada/DocumentExporter.cpp	2010-06-06 19:32:12 UTC (rev 29281)
@@ -1578,18 +1578,27 @@
 		else {
 			ep.setIndexOfRefraction(1.0f);
 		}
+	
+		COLLADASW::ColorOrTexture cot;
+
 		// transparency
-		ep.setTransparency(ma->alpha);
+		// Tod: because we are in A_ONE mode transparency is calculated like this:
+		ep.setTransparency(1.0f);
+		cot = getcol(0.0f, 0.0f, 0.0f, ma->alpha);
+		ep.setTransparent(cot);
+
 		// emission
-		COLLADASW::ColorOrTexture cot = getcol(0.0f, 0.0f, 0.0f, 1.0f);
+		cot=getcol(ma->emit, ma->emit, ma->emit, 1.0f);
 		ep.setEmission(cot);
-		ep.setTransparent(cot);
+
 		// diffuse 
 		cot = getcol(ma->r, ma->g, ma->b, 1.0f);
 		ep.setDiffuse(cot);
+
 		// ambient
 		cot = getcol(ma->ambr, ma->ambg, ma->ambb, 1.0f);
 		ep.setAmbient(cot);
+
 		// reflective, reflectivity
 		if (ma->mode & MA_RAYMIRROR) {
 			cot = getcol(ma->mirr, ma->mirg, ma->mirb, 1.0f);
@@ -1597,15 +1606,16 @@
 			ep.setReflectivity(ma->ray_mirror);
 		}
 		else {
-			cot = getcol(0.0f, 0.0f, 0.0f, 1.0f);
+			cot = getcol(ma->specr, ma->specg, ma->specb, 1.0f);
 			ep.setReflective(cot);
-			ep.setReflectivity(0.0f);
+			ep.setReflectivity(ma->spec);
 		}
+
 		// specular
 		if (ep.getShaderType() != COLLADASW::EffectProfile::LAMBERT) {
 			cot = getcol(ma->specr, ma->specg, ma->specb, 1.0f);
 			ep.setSpecular(cot);
-		}
+		}	
 
 		// XXX make this more readable if possible
 
@@ -1714,7 +1724,19 @@
 		}
 		// performs the actual writing
 		ep.addProfileElements();
+		bool twoSided = false;
+		if (ob->type == OB_MESH && ob->data) {
+			Mesh *me = (Mesh*)ob->data;
+			if (me->flag & ME_TWOSIDED)
+				twoSided = true;
+		}
+		if (twoSided)
+			ep.addExtraTechniqueParameter("GOOGLEEARTH", "double_sided", 1);
+		ep.addExtraTechniques(mSW);
+
 		ep.closeProfile();
+		if (twoSided)
+			mSW->appendTextBlock("<extra><technique profile=\"MAX3D\"><double_sided>1</double_sided></technique></extra>");
 		closeEffect();	
 	}
 	





More information about the Bf-blender-cvs mailing list