[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11537] branches/soc-2007-maike/release/ glsl: GLSL texture blend functions
Miguel Torres Lima
torreslima at gmail.com
Fri Aug 10 18:35:37 CEST 2007
Revision: 11537
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11537
Author: maike
Date: 2007-08-10 18:35:37 +0200 (Fri, 10 Aug 2007)
Log Message:
-----------
GLSL texture blend functions
Added Paths:
-----------
branches/soc-2007-maike/release/glsl/texture_blend_add.gsl
branches/soc-2007-maike/release/glsl/texture_blend_dark.gsl
branches/soc-2007-maike/release/glsl/texture_blend_diff.gsl
branches/soc-2007-maike/release/glsl/texture_blend_div.gsl
branches/soc-2007-maike/release/glsl/texture_blend_light.gsl
branches/soc-2007-maike/release/glsl/texture_blend_mix.gsl
branches/soc-2007-maike/release/glsl/texture_blend_mul.gsl
branches/soc-2007-maike/release/glsl/texture_blend_screen.gsl
branches/soc-2007-maike/release/glsl/texture_blend_sub.gsl
Added: branches/soc-2007-maike/release/glsl/texture_blend_add.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_add.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_add.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,11 @@
+vec3 tex_blend_add(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ float fact = fac1 * fac2;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ color.r = fact * tex.r + col.r;
+ color.g = fact * tex.g + col.g;
+ color.b = fact * tex.b + col.b;
+
+ return(color);
+}
Added: branches/soc-2007-maike/release/glsl/texture_blend_dark.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_dark.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_dark.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,11 @@
+vec3 tex_blend_dark(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ float fact = fac1 * fac2;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ color.r = min(fact * tex.r, col.r);
+ color.g = min(fact * tex.g, col.g);
+ color.b = min(fact * tex.b, col.b);
+
+ return(color);
+}
Added: branches/soc-2007-maike/release/glsl/texture_blend_diff.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_diff.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_diff.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,12 @@
+vec3 tex_blend_diff(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ foat fact = fac1 * fac2;
+ float facm = 1.0 - fact;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ color.r = facm * col.r + fact * fabs(tex.r - col.r);
+ color.g = facm * col.g + fact * fabs(tex.g - col.g);
+ color.b = facm * col.b + fact * fabs(tex.b - col.r);
+
+ return(color);
+}
Added: branches/soc-2007-maike/release/glsl/texture_blend_div.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_div.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_div.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,15 @@
+vec3 tex_blend_div(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ float fact = fac1 * fac2;
+ float facm = 1.0 - fact;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ if(tex.r != 0.0)
+ color.r = facm * col.r + fact * col.r / tex.r;
+ if(tex.g != 0.0)
+ color.g = facm * col.g + fact * col.g / tex.g;
+ if(tex.b != 0.0)
+ color.b = facm * col.b + fact * col.b / tex.b;
+
+ return(color);
+}
Added: branches/soc-2007-maike/release/glsl/texture_blend_light.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_light.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_light.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,11 @@
+vec3 tex_blend_light(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ float fact = fac1 * fac2;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ color.r = max(fact * tex.r, col.r);
+ color.g = max(fact * tex.g, col.g);
+ color.b = max(fact * tex.b, col.b);
+
+ return(color);
+}
Added: branches/soc-2007-maike/release/glsl/texture_blend_mix.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_mix.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_mix.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,12 @@
+vec3 tex_blend_mix(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ float fact = fac1 * fac2;
+ float facm = 1.0 - fact;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ color.r = fact * tex.r + facm * col.r;
+ color.g = fact * tex.g + facm * col.g;
+ color.b = fact * tex.b + facm * col.b;
+
+ return(color);
+}
Added: branches/soc-2007-maike/release/glsl/texture_blend_mul.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_mul.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_mul.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,12 @@
+vec3 tex_blend_mul(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ float fact = fac1 * fac2;
+ float facm = 1.0 - fac2;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ color.r = (facm + fact * tex.r) * col.r;
+ color.g = (facm + fact * tex.g) * col.g;
+ color.b = (facm + fact * tex.b) * col.b;
+
+ return(color);
+}
Added: branches/soc-2007-maike/release/glsl/texture_blend_screen.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_screen.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_screen.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,12 @@
+vec3 tex_blend_screen(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ float fact = fac1 * fac2;
+ float facm = 1.0 - fac2;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ color.r = 1.0 - (facm + fact * (1.0 - tex.r)) * (1.0 - col.r);
+ color.g = 1.0 - (facm + fact * (1.0 - tex.g)) * (1.0 - col.g);
+ color.b = 1.0 - (facm + fact * (1.0 - tex.b)) * (1.0 - col.b);
+
+ return(color);
+}
Added: branches/soc-2007-maike/release/glsl/texture_blend_sub.gsl
===================================================================
--- branches/soc-2007-maike/release/glsl/texture_blend_sub.gsl (rev 0)
+++ branches/soc-2007-maike/release/glsl/texture_blend_sub.gsl 2007-08-10 16:35:37 UTC (rev 11537)
@@ -0,0 +1,11 @@
+vec3 tex_blend_sub(vec3 tex, vec3 col, float fac1, float fac2)
+{
+ float fact = -fac1 * fac2;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+
+ color.r = fact * tex.r + col.r;
+ color.g = fact * tex.g + col.g;
+ color.b = fact * tex.b + col.b;
+
+ return(color);
+}
More information about the Bf-blender-cvs
mailing list