[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