[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