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:
authorNathan Letwory <nathan@letworyinteractive.com>2011-03-23 01:00:26 +0300
committerNathan Letwory <nathan@letworyinteractive.com>2011-03-23 01:00:26 +0300
commit60b94886c8e24c5da9bf5a70469a2abcf198a014 (patch)
treea61fd43fab07f61b888c465a52d84c56220365a4 /source/blender/collada
parenta4e2ece786398b1b7d97a54980d89273be0f8ce9 (diff)
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.
Diffstat (limited to 'source/blender/collada')
-rw-r--r--source/blender/collada/EffectExporter.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp
index 085ee7356ab..d41323004cc 100644
--- a/source/blender/collada/EffectExporter.cpp
+++ b/source/blender/collada/EffectExporter.cpp
@@ -129,19 +129,25 @@ void EffectsExporter::operator()(Material *ma, Object *ob)
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);