diff options
author | Nathan Letwory <nathan@letworyinteractive.com> | 2011-03-23 01:00:26 +0300 |
---|---|---|
committer | Nathan Letwory <nathan@letworyinteractive.com> | 2011-03-23 01:00:26 +0300 |
commit | 60b94886c8e24c5da9bf5a70469a2abcf198a014 (patch) | |
tree | a61fd43fab07f61b888c465a52d84c56220365a4 /source/blender/collada/EffectExporter.cpp | |
parent | a4e2ece786398b1b7d97a54980d89273be0f8ce9 (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/EffectExporter.cpp')
-rw-r--r-- | source/blender/collada/EffectExporter.cpp | 26 |
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); |