[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