1attribute vec2 a_Vertex;
2attribute vec2 a_TexCoord;
3uniform mat3 u_TextureMatrix;
4varying vec2 v_TexCoord;
5varying vec2 v_TexCoord2;
6uniform mat3 u_TransformMatrix;
7uniform mat3 u_ProjectionMatrix;
8varying vec2 v_TexCoord3;
9varying vec2 v_TexCoord4;
10uniform vec2 u_Offset;
11uniform vec2 u_Center;
12uniform float u_Time;
13vec2 direction = vec2(0.5,1.0);
14float speed = 100.0;
15
16vec2 effectTextureSize = vec2(256.0, 256.0);
17void main()
18{
19 vec2 vertex = a_Vertex;
20 if(vertex.x < u_Center.x) {
21 vertex.x = effectTextureSize.x / 10.0;
22 }
23 if(vertex.x > u_Center.x) {
24 vertex.x = effectTextureSize.x - effectTextureSize.x / 10.0;
25 }
26 if(vertex.y < u_Center.y) {
27 vertex.y = effectTextureSize.y / 10.0;
28 }
29 if(vertex.y > u_Center.y) {
30 vertex.y = effectTextureSize.y - effectTextureSize.y / 10.0;
31 }
32 v_TexCoord3.x = ((vertex.x + direction.x * u_Time * speed) / effectTextureSize.x);
33 v_TexCoord3.y = ((vertex.y + direction.y * u_Time * (speed*6.0055)) / effectTextureSize.y);
34
35 effectTextureSize = vec2(256.0, 256.0);
36 vertex = a_Vertex;
37 if(vertex.x < u_Center.x) {
38 vertex.x = effectTextureSize.x / 10.0;
39 }
40 if(vertex.x > u_Center.x) {
41 vertex.x = effectTextureSize.x - effectTextureSize.x / 10.0;
42 }
43 if(vertex.y < u_Center.y) {
44 vertex.y = effectTextureSize.y / 10.0;
45 }
46 if(vertex.y > u_Center.y) {
47 vertex.y = effectTextureSize.y - effectTextureSize.y / 10.0;
48 }
49 v_TexCoord4.x = ((vertex.x + direction.x * u_Time * speed) / effectTextureSize.x);
50 v_TexCoord4.y = ((vertex.y + direction.y * u_Time * (speed*1.75)) / effectTextureSize.y);
51
52 vertex = a_Vertex;
53 vec2 text = a_TexCoord;
54 vec2 text2 = a_TexCoord;
55 if(a_Vertex.x < u_Center.x) {
56 vertex.x -= 5.0;
57 text.x -= 3.0;
58 }
59 if(a_Vertex.x > u_Center.x) {
60 vertex.x += 5.0;
61 text.x += 3.0;
62 }
63 if(a_Vertex.y < u_Center.y) {
64 vertex.y -= 5.0;
65 text.y -= 3.0;
66 }
67 if(a_Vertex.y > u_Center.y) {
68 vertex.y += 5.0;
69 text.y += 3.0;
70 }
71 gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
72 v_TexCoord = (u_TextureMatrix * vec3(text,1.0)).xy;
73 v_TexCoord2 = (u_TextureMatrix * vec3(text + u_Offset,1.0)).xy;
74}
75
76