[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11420] branches/soc-2007-maike/release/ glsl: Fixed an error that occured when scene had more than a light due to variable redefinition
Miguel Torres Lima
torreslima at gmail.com
Sun Jul 29 20:54:30 CEST 2007
Revision: 11420
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11420
Author: maike
Date: 2007-07-29 20:54:30 +0200 (Sun, 29 Jul 2007)
Log Message:
-----------
Fixed an error that occured when scene had more than a light due to variable redefinition
Modified Paths:
--------------
branches/soc-2007-maike/release/glsl/light_calc.gsl
branches/soc-2007-maike/release/glsl/material.gsl
branches/soc-2007-maike/release/glsl/material_return.gsl
Modified: branches/soc-2007-maike/release/glsl/light_calc.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/light_calc.gsl 2007-07-29 18:46:47 UTC (rev 11419)
+++ branches/soc-2007-maike/release/glsl/light_calc.gsl 2007-07-29 18:54:30 UTC (rev 11420)
@@ -6,20 +6,20 @@
#ifdef LIGHT_ID
#ifdef DIFF_CB_TYPE
#ifdef HEMI
-float rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], normal);
+rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], normal);
#else
-float rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], normal, diff2, diff3);
+rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], normal, diff2, diff3);
#endif
#if DIFF_CB_TYPE == 0
-float diff_fac = rslt1;
+diff_fac = rslt1;
#else
#if DIFF_CB_TYPE == 1
-float diff_fac = (0.3 * lights[LIGHT_ID].color.r + 0.58 * lights[LIGHT_ID].color.g + 0.12 * lights[LIGHT_ID].color.b);
+diff_fac = (0.3 * lights[LIGHT_ID].color.r + 0.58 * lights[LIGHT_ID].color.g + 0.12 * lights[LIGHT_ID].color.b) * vis * rslt1;
#else
-float diff_fac = dot((eye - pos), normal);
+diff_fac = dot((eye - pos), normal);
#endif
#endif
-vec4 diff_cb = texture1D(DIFF_CB_TEX, diff_fac);
+diff_cb = texture1D(DIFF_CB_TEX, diff_fac);
diff_rslt += (DIFF_CB_BLEND_FUNC(diff_cb.rgb, diff_color, DIFF_CB_FAC * diff_cb.a) * rslt1 * diff1 * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis);
#else
#ifdef HEMI
@@ -36,21 +36,20 @@
#ifdef LIGHT_ID
#ifdef SPEC_CB_TYPE
#ifdef HEMI
-float rslt2 = SPEC_SHADER_ID(lights[LIGHT_ID], normal);
+rslt2 = SPEC_SHADER_ID(lights[LIGHT_ID], normal);
#else
-float rslt2 = SPEC_SHADER_ID(lights[LIGHT_ID], normal, spec2, spec3);
+rslt2 = SPEC_SHADER_ID(lights[LIGHT_ID], normal, spec2, spec3);
#endif
#if SPEC_CB_TYPE == 0
-float spec_fac = rslt2;
+spec_fac = rslt2;
#else
#if SPEC_CB_TYPE == 1
-float spec_fac = 0.3 * lights[LIGHT_ID].color.r + 0.58 * lights[LIGHT_ID].color.g + 0.12 * lights[LIGHT_ID].color.b;
+ spec_fac = 0.3 * lights[LIGHT_ID].color.r + 0.58 * lights[LIGHT_ID].color.g + 0.12 * lights[LIGHT_ID].color.b;
#else
-float spec_fac = dot((eye - pos), normal);
+spec_fac = dot((eye - pos), normal);
#endif
#endif
-vec3 spec_col = rslt2 * spec1 * spec_color * vec3(lights[LIGHT_ID].color + vert_color);
-vec4 spec_cb = texture1D(SPEC_CB_TEX, spec_fac);
+spec_cb = texture1D(SPEC_CB_TEX, spec_fac);
spec_rslt += SPEC_CB_BLEND_FUNC(spec_col, spec_cb.rgb, SPEC_CB_FAC) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis;
#else
#ifdef HEMI
Modified: branches/soc-2007-maike/release/glsl/material.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/material.gsl 2007-07-29 18:46:47 UTC (rev 11419)
+++ branches/soc-2007-maike/release/glsl/material.gsl 2007-07-29 18:54:30 UTC (rev 11420)
@@ -2,4 +2,5 @@
vec3 diff_rslt = vec3(0.0, 0.0, 0.0);
vec3 spec_rslt = vec3(0.0, 0.0, 0.0);
vec3 amb_rslt = amb_color * amb_fac;
- float vis = 0.0;
+ float vis = 0.0, rslt1, rslt2, diff_fac, spec_fac;
+ vec4 diff_cb, spec_cb;
Modified: branches/soc-2007-maike/release/glsl/material_return.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/material_return.gsl 2007-07-29 18:46:47 UTC (rev 11419)
+++ branches/soc-2007-maike/release/glsl/material_return.gsl 2007-07-29 18:54:30 UTC (rev 11420)
@@ -6,7 +6,7 @@
#endif
#ifdef SPEC_CB_RESULT
-float spec_cb_rslt_fac = ;
+float spec_cb_rslt_fac = 0.0;
vec4 spec_cb_rslt_tex = texture1D(SPEC_CB_TEX, spec_cb_rslt_fac);
spec_rslt = (SPEC_CB_BLEND_FUNC(spec_cb_rslt_tex.rgb, spec_rslt.rgb, SPEC_CB_FAC * spec_cb_rslt_tex.a));
#endif
More information about the Bf-blender-cvs
mailing list