[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