Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/collada/EffectExporter.cpp')
-rw-r--r--source/blender/collada/EffectExporter.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp
index 355e384d000..6863e26a3ce 100644
--- a/source/blender/collada/EffectExporter.cpp
+++ b/source/blender/collada/EffectExporter.cpp
@@ -37,6 +37,7 @@
#include "DNA_mesh_types.h"
#include "DNA_texture_types.h"
+#include "DNA_world_types.h"
#include "BKE_customdata.h"
@@ -55,7 +56,7 @@ static std::string getActiveUVLayerName(Object *ob)
return "";
}
-EffectsExporter::EffectsExporter(COLLADASW::StreamWriter *sw) : COLLADASW::LibraryEffects(sw){}
+EffectsExporter::EffectsExporter(COLLADASW::StreamWriter *sw, const ExportSettings *export_settings) : COLLADASW::LibraryEffects(sw), export_settings(export_settings) {}
bool EffectsExporter::hasEffects(Scene *sce)
{
@@ -78,12 +79,13 @@ bool EffectsExporter::hasEffects(Scene *sce)
return false;
}
-void EffectsExporter::exportEffects(Scene *sce, bool export_selected)
+void EffectsExporter::exportEffects(Scene *sce)
{
if(hasEffects(sce)) {
+ this->scene = sce;
openLibrary();
MaterialFunctor mf;
- mf.forEachMaterialInScene<EffectsExporter>(sce, *this, export_selected);
+ mf.forEachMaterialInScene<EffectsExporter>(sce, *this, this->export_settings->selected);
closeLibrary();
}
@@ -175,7 +177,12 @@ void EffectsExporter::operator()(Material *ma, Object *ob)
ep.setDiffuse(cot, false , "diffuse");
// ambient
- cot = getcol(ma->ambr, ma->ambg, ma->ambb, 1.0f);
+ /* ma->ambX is calculated only on render, so lets do it here manually and not rely on ma->ambX. */
+ if(this->scene->world)
+ cot = getcol(this->scene->world->ambr*ma->amb, this->scene->world->ambg*ma->amb, this->scene->world->ambb*ma->amb, 1.0f);
+ else
+ cot = getcol(ma->amb, ma->amb, ma->amb, 1.0f);
+
ep.setAmbient(cot, false , "ambient");
// reflective, reflectivity