From 4b199cf04af83f59895d4d1e9a2d8443c1ec8e06 Mon Sep 17 00:00:00 2001 From: hwc487 Date: Tue, 3 Apr 2012 09:36:14 -0700 Subject: started the flag material --- assets/shaders/Flag.vert.glsl | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'assets/shaders/Flag.vert.glsl') diff --git a/assets/shaders/Flag.vert.glsl b/assets/shaders/Flag.vert.glsl index 7dc932a7..9da0ee1c 100644 --- a/assets/shaders/Flag.vert.glsl +++ b/assets/shaders/Flag.vert.glsl @@ -16,20 +16,33 @@ attribute vec2 texcoord; // scalar uniforms uniform float u_time; +uniform float u_waveWidth; +uniform float u_waveHeight; // matrix uniforms uniform mat4 u_mvMatrix; uniform mat4 u_projMatrix; uniform mat4 u_worldMatrix; +// varying variables +varying vec2 v_uv; + void main() { - float angle = (u_time%360)*2; - - a_pos.z = sin( a_pos.x + angle); - a_pos.z += sin( a_pos.y/2 + angle); - a_pos.z *= a_pos.x * 0.09; - gl_Position = u_projMatrix * u_mvMatrix * vec4(a_pos,1.0) ; - - gl_FragColor = v_color; + float pi = 3.14159; + float angle = mod(u_time, pi)*2.0; + + vec3 v = a_pos; + v_uv = texcoord; + + vec2 pos = texcoord; + float tmp = pos.x; pos.x = pos.y; pos.y = tmp; + pos.x = pos.x * 1.0*pi * u_waveWidth; + pos.y = pos.y * 1.0*pi * u_waveWidth; + + v.z = sin( pos.x + angle); + v.z += sin( pos.y/2.0 + angle); + v.z *= v.y * 0.09 * u_waveHeight; + + gl_Position = u_projMatrix * u_mvMatrix * vec4(v,1.0) ; } -- cgit v1.2.3 From 0f31002ca696c1ef303d2926a504afd27305e94f Mon Sep 17 00:00:00 2001 From: hwc487 Date: Wed, 4 Apr 2012 05:52:54 -0700 Subject: Added Flag material --- assets/shaders/Flag.vert.glsl | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'assets/shaders/Flag.vert.glsl') diff --git a/assets/shaders/Flag.vert.glsl b/assets/shaders/Flag.vert.glsl index 9da0ee1c..a5e8b2f7 100644 --- a/assets/shaders/Flag.vert.glsl +++ b/assets/shaders/Flag.vert.glsl @@ -27,22 +27,21 @@ uniform mat4 u_worldMatrix; // varying variables varying vec2 v_uv; + void main() { - float pi = 3.14159; - float angle = mod(u_time, pi)*2.0; + float pi = 3.14159; + float angle = u_time; - vec3 v = a_pos; v_uv = texcoord; - vec2 pos = texcoord; - float tmp = pos.x; pos.x = pos.y; pos.y = tmp; - pos.x = pos.x * 1.0*pi * u_waveWidth; - pos.y = pos.y * 1.0*pi * u_waveWidth; + float x = 2.0*pi*texcoord.x/u_waveWidth; + float y = 2.0*pi*texcoord.y; - v.z = sin( pos.x + angle); - v.z += sin( pos.y/2.0 + angle); - v.z *= v.y * 0.09 * u_waveHeight; + vec3 v = a_pos; + v.z = sin( x + angle ) - 2.0*u_waveHeight; + v.z += sin( 0.2*y + angle); + v.z *= x * 0.09 * u_waveHeight; gl_Position = u_projMatrix * u_mvMatrix * vec4(v,1.0) ; } -- cgit v1.2.3 From 50ede4afa801f53caff7939dad0408f9a0a8b744 Mon Sep 17 00:00:00 2001 From: hwc487 Date: Tue, 22 May 2012 15:44:51 -0700 Subject: Editable parameters for flag, pulse, uber, and radial gradient materials. --- assets/shaders/Flag.vert.glsl | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'assets/shaders/Flag.vert.glsl') diff --git a/assets/shaders/Flag.vert.glsl b/assets/shaders/Flag.vert.glsl index a5e8b2f7..1c842cb0 100644 --- a/assets/shaders/Flag.vert.glsl +++ b/assets/shaders/Flag.vert.glsl @@ -16,6 +16,7 @@ attribute vec2 texcoord; // scalar uniforms uniform float u_time; +uniform float u_speed; uniform float u_waveWidth; uniform float u_waveHeight; @@ -30,8 +31,9 @@ varying vec2 v_uv; void main() { - float pi = 3.14159; - float angle = u_time; + float time = u_time * u_speed; + const float pi = 3.14159; + float angle = time; v_uv = texcoord; @@ -39,9 +41,11 @@ void main() float y = 2.0*pi*texcoord.y; vec3 v = a_pos; - v.z = sin( x + angle ) - 2.0*u_waveHeight; + v.z = sin( x + angle ); v.z += sin( 0.2*y + angle); - v.z *= x * 0.09 * u_waveHeight; + v.z *= u_waveHeight; + v.z -= 2.0*u_waveHeight; + v.z *= x * 0.09; gl_Position = u_projMatrix * u_mvMatrix * vec4(v,1.0) ; } -- cgit v1.2.3