aboutsummaryrefslogtreecommitdiff
path: root/assets/shaders/Flag.vert.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'assets/shaders/Flag.vert.glsl')
-rw-r--r--assets/shaders/Flag.vert.glsl32
1 files changed, 24 insertions, 8 deletions
diff --git a/assets/shaders/Flag.vert.glsl b/assets/shaders/Flag.vert.glsl
index 7dc932a7..1c842cb0 100644
--- a/assets/shaders/Flag.vert.glsl
+++ b/assets/shaders/Flag.vert.glsl
@@ -16,20 +16,36 @@ attribute vec2 texcoord;
16 16
17// scalar uniforms 17// scalar uniforms
18uniform float u_time; 18uniform float u_time;
19uniform float u_speed;
20uniform float u_waveWidth;
21uniform float u_waveHeight;
19 22
20// matrix uniforms 23// matrix uniforms
21uniform mat4 u_mvMatrix; 24uniform mat4 u_mvMatrix;
22uniform mat4 u_projMatrix; 25uniform mat4 u_projMatrix;
23uniform mat4 u_worldMatrix; 26uniform mat4 u_worldMatrix;
24 27
25void main() 28// varying variables
26{ 29varying vec2 v_uv;
27 float angle = (u_time%360)*2;
28 30
29 a_pos.z = sin( a_pos.x + angle);
30 a_pos.z += sin( a_pos.y/2 + angle);
31 a_pos.z *= a_pos.x * 0.09;
32 gl_Position = u_projMatrix * u_mvMatrix * vec4(a_pos,1.0) ;
33 31
34 gl_FragColor = v_color; 32void main()
33{
34 float time = u_time * u_speed;
35 const float pi = 3.14159;
36 float angle = time;
37
38 v_uv = texcoord;
39
40 float x = 2.0*pi*texcoord.x/u_waveWidth;
41 float y = 2.0*pi*texcoord.y;
42
43 vec3 v = a_pos;
44 v.z = sin( x + angle );
45 v.z += sin( 0.2*y + angle);
46 v.z *= u_waveHeight;
47 v.z -= 2.0*u_waveHeight;
48 v.z *= x * 0.09;
49
50 gl_Position = u_projMatrix * u_mvMatrix * vec4(v,1.0) ;
35} 51}