[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11661] branches/soc-2007-maike/release/ glsl/material_return.gsl: World exposure bugfix

Miguel Torres Lima torreslima at gmail.com
Sat Aug 18 19:05:24 CEST 2007


Revision: 11661
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11661
Author:   maike
Date:     2007-08-18 19:05:24 +0200 (Sat, 18 Aug 2007)

Log Message:
-----------
World exposure bugfix

Modified Paths:
--------------
    branches/soc-2007-maike/release/glsl/material_return.gsl

Modified: branches/soc-2007-maike/release/glsl/material_return.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/material_return.gsl	2007-08-18 16:24:10 UTC (rev 11660)
+++ branches/soc-2007-maike/release/glsl/material_return.gsl	2007-08-18 17:05:24 UTC (rev 11661)
@@ -4,7 +4,7 @@
 return(vec3(0.0, 0.0, 0.0));
 #else
 if(diff_cb_res > 0.0){
-  diff_rslt = amb_exp * (1.0 - exp((diff_rslt + (diff_color * vec3(emit + vert_color.r, emit + vert_color.g, emit + vert_color.b)))* amb_range)) + amb_rslt;
+  diff_rslt = amb_exp * (1.0 - exp((diff_rslt + (diff_color * vec3(emit + vert_color.r, emit + vert_color.g, emit + vert_color.b))) * amb_range)) + amb_rslt;
   if(diff_rslt.r >= 0.005 || diff_rslt.g >= 0.005 || diff_rslt.b >= 0.005){
     float diff_cb_rslt_fac = (0.3 * diff_rslt.r + 0.58 * diff_rslt.g + 0.12 * diff_rslt.b);
     vec4 diff_cb_rslt_tex = texture1D(DIFF_CB_TEX, clamp(diff_cb_rslt_fac, 0.0, 0.999));
@@ -12,10 +12,13 @@
   }
 #ifdef SPEC_CB_RESULT
   if(spec_cb_res > 0.0){
+    spec_rslt = amb_exp * (1.0 - exp(spec_rslt * amb_range));
     float spec_cb_rslt_fac = (0.3 * spec_rslt.r + 0.58 * spec_rslt.g + 0.12 * spec_rslt.b);
     vec4 spec_cb_rslt_tex = texture1D(SPEC_CB_TEX, clamp(spec_cb_rslt_fac, 0.0, 0.999));
     spec_rslt = (SPEC_CB_BLEND_FUNC(spec_cb_rslt_tex.rgb, spec_rslt.rgb, SPEC_CB_FAC * spec_cb_rslt_tex.a));
     }
+#else
+  spec_rslt = amb_exp * (1.0 - exp(spec_rslt * amb_range));
 #endif
   return(diff_rslt + spec_rslt);
  }
@@ -26,15 +29,20 @@
 
 #ifdef SPEC_CB_RESULT
 if(spec_cb_res > 0.0){
+  spec_rslt = amb_exp * (1.0 - exp(spec_rslt * amb_range));
   float spec_cb_rslt_fac = (0.3 * spec_rslt.r + 0.58 * spec_rslt.g + 0.12 * spec_rslt.b);
   vec4 spec_cb_rslt_tex = texture1D(SPEC_CB_TEX, clamp(spec_cb_rslt_fac, 0.0, 0.999));
   spec_rslt = (SPEC_CB_BLEND_FUNC(spec_cb_rslt_tex.rgb, spec_rslt.rgb, SPEC_CB_FAC * spec_cb_rslt_tex.a));
+  diff_rslt = amb_exp * (1.0 - exp((diff_rslt + (diff_color * vec3(emit + vert_color.r, emit + vert_color.g, emit + vert_color.b))) * amb_range));
+  return(diff_rslt + spec_rslt + amb_rslt);
  }
 #endif
 #endif
 
 #if LIGHT_CALCULATIONS == 1
-  return(amb_exp * (1.0 - exp((diff_rslt + (diff_color * vec3(emit + vert_color.r, emit + vert_color.g, emit + vert_color.b))) * amb_range)) + spec_rslt + amb_rslt); 
+diff_rslt = amb_exp * (1.0 - exp((diff_rslt + (diff_color * vec3(emit + vert_color.r, emit + vert_color.g, emit + vert_color.b))) * amb_range));
+spec_rslt = amb_exp * (1.0 - exp(spec_rslt * amb_range));
+return(diff_rslt + spec_rslt + amb_rslt); 
 #else
   return(vec3(0.0, 0.0, 0.0));
 #endif





More information about the Bf-blender-cvs mailing list