[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11308] branches/soc-2007-maike/release/ glsl: Modified glsl code to include colorbands

Miguel Torres Lima torreslima at gmail.com
Wed Jul 18 18:44:17 CEST 2007


Revision: 11308
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11308
Author:   maike
Date:     2007-07-18 18:44:17 +0200 (Wed, 18 Jul 2007)

Log Message:
-----------
Modified glsl code to include colorbands

Modified Paths:
--------------
    branches/soc-2007-maike/release/glsl/colorband_blend_dif.gsl
    branches/soc-2007-maike/release/glsl/colorband_blend_mult.gsl
    branches/soc-2007-maike/release/glsl/colorband_blend_sub.gsl
    branches/soc-2007-maike/release/glsl/light_calc.gsl

Modified: branches/soc-2007-maike/release/glsl/colorband_blend_dif.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/colorband_blend_dif.gsl	2007-07-18 16:43:40 UTC (rev 11307)
+++ branches/soc-2007-maike/release/glsl/colorband_blend_dif.gsl	2007-07-18 16:44:17 UTC (rev 11308)
@@ -3,9 +3,9 @@
   float facm = 1.0 - fac;
   vec3 color;
 
-  color.r = facm * colband.r + fac * fabs(colband.r - shader.r);
-  color.g = facm * colband.g + fac * fabs(colband.g - shader.g);
-  color.b = facm * colband.b + fac * fabs(colband.b - shader.b);
+  color.r = facm * colband.r + fac * abs(colband.r - shader.r);
+  color.g = facm * colband.g + fac * abs(colband.g - shader.g);
+  color.b = facm * colband.b + fac * abs(colband.b - shader.b);
 
   return color;
 }

Modified: branches/soc-2007-maike/release/glsl/colorband_blend_mult.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/colorband_blend_mult.gsl	2007-07-18 16:43:40 UTC (rev 11307)
+++ branches/soc-2007-maike/release/glsl/colorband_blend_mult.gsl	2007-07-18 16:44:17 UTC (rev 11308)
@@ -1,6 +1,6 @@
 vec3 colorband_blend_mult(vec3 shader, vec3 colband, float fac)
 {
-  float facm = 1.0 - 'fac;
+  float facm = 1.0 - fac;
   vec3 color = vec3(colband.r * (facm + fac * shader.r), colband.g * (facm + fac * shader.g), colband.b * (facm + fac * shader.b));
   
   return color;

Modified: branches/soc-2007-maike/release/glsl/colorband_blend_sub.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/colorband_blend_sub.gsl	2007-07-18 16:43:40 UTC (rev 11307)
+++ branches/soc-2007-maike/release/glsl/colorband_blend_sub.gsl	2007-07-18 16:44:17 UTC (rev 11308)
@@ -1,6 +1,6 @@
 vec3 colorband_blend_sub(vec3 shader, vec3 colband, float fac)
 {
-  vec3 color = colband - fac * shader;
+  vec3 color = colband - (fac * shader);
   
   return color;
 }

Modified: branches/soc-2007-maike/release/glsl/light_calc.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/light_calc.gsl	2007-07-18 16:43:40 UTC (rev 11307)
+++ branches/soc-2007-maike/release/glsl/light_calc.gsl	2007-07-18 16:44:17 UTC (rev 11308)
@@ -4,23 +4,64 @@
 
 #ifdef CALC_DIFFUSE 
 #ifdef LIGHT_ID
+#ifdef DIFF_CB_TYPE
 #ifdef HEMI
-diff_rslt+= DIFF_SHADER_ID(lights[LIGHT_ID], normal) * diff1 * diff_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis * amb_range;
+float rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], normal);
 #else
+float rslt1 = DIFF_SHADER_ID(lights[LIGHT_ID], normal, diff2, diff3);
+#endif
+#if DIFF_CB_TYPE == 0
+float 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;
+#else
+float diff_fac = dot((eye - pos), normal);
+#endif
+#endif
+vec3 diff_col = rslt1 * diff1 * diff_color * vec3(lights[LIGHT_ID].color + vert_color);
+vec4 diff_cb = texture1D(DIFF_CB_TEX, diff_fac);
+diff_rslt += DIFF_CB_BLEND_FUNC(diff_col, diff_cb.rgb, DIFF_CB_FAC) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis;
+#else
+#ifdef HEMI
+diff_rslt+= DIFF_SHADER_ID(lights[LIGHT_ID], normal) * diff1 * diff_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis;
+#else
 diff_rslt+= DIFF_SHADER_ID(lights[LIGHT_ID], normal, diff2, diff3) * diff1 * diff_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis;	
 #endif
 #endif
 #endif
+#endif
+
     
 #ifdef CALC_SPECULAR
 #ifdef LIGHT_ID
+#ifdef SPEC_CB_TYPE
 #ifdef HEMI
+float rslt2 = SPEC_SHADER_ID(lights[LIGHT_ID], normal);
+#else
+float rslt2 = SPEC_SHADER_ID(lights[LIGHT_ID], normal, spec2, spec3);
+#endif
+#if SPEC_CB_TYPE == 0
+float 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;
+#else
+float 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_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
 spec_rslt+= SPEC_SHADER_ID(lights[LIGHT_ID], normal, hard) * spec1 * spec_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis;
 #else
 spec_rslt+= SPEC_SHADER_ID(lights[LIGHT_ID], normal, spec2, spec3) * spec1 * spec_color * vec3(lights[LIGHT_ID].color + vert_color) * lights[LIGHT_ID].layer * lights[LIGHT_ID].energy * vis;
 #endif
 #endif
 #endif
+#endif
 
 #undef VISIBILITY
 #undef LIGHT_ID
@@ -29,3 +70,14 @@
 #undef DIFF_SHADER_ID
 #undef SPEC_SHADER_ID
 #undef HEMI
+
+
+#undef DIFF_CB_TYPE
+#undef SPEC_CB_TYPE
+#undef DIFF_CB_BLEND_FUNC
+#undef SPEC_CB_BLEND_FUNC
+#undef DIFF_CB_TEX
+#undef SPEC_CB_TEX
+#undef DIFF_CB_FAC
+#undef SPEC_CB_FAC
+





More information about the Bf-blender-cvs mailing list