diff options
Diffstat (limited to 'assets/shaders/Deform.frag.glsl')
-rw-r--r-- | assets/shaders/Deform.frag.glsl | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/assets/shaders/Deform.frag.glsl b/assets/shaders/Deform.frag.glsl new file mode 100644 index 00000000..1dbe45a0 --- /dev/null +++ b/assets/shaders/Deform.frag.glsl | |||
@@ -0,0 +1,29 @@ | |||
1 | #ifdef GL_ES | ||
2 | precision highp float; | ||
3 | #endif | ||
4 | |||
5 | uniform float u_time; | ||
6 | uniform vec2 u_resolution; | ||
7 | //uniform vec4 mouse; | ||
8 | uniform sampler2D u_tex0; | ||
9 | |||
10 | void main(void) | ||
11 | { | ||
12 | vec2 p = -1.0 + 2.0 * gl_FragCoord.xy / u_resolution.xy; | ||
13 | //vec2 m = -1.0 + 2.0 * mouse.xy / u_resolution.xy; | ||
14 | vec2 m = vec2(-.8, .8); | ||
15 | |||
16 | float a1 = atan(p.y-m.y,p.x-m.x); | ||
17 | float r1 = sqrt(dot(p-m,p-m)); | ||
18 | float a2 = atan(p.y+m.y,p.x+m.x); | ||
19 | float r2 = sqrt(dot(p+m,p+m)); | ||
20 | |||
21 | vec2 uv; | ||
22 | uv.x = 0.2*u_time + (r1-r2)*0.25; | ||
23 | uv.y = sin(2.0*(a1-a2)); | ||
24 | |||
25 | float w = r1*r2*0.8; | ||
26 | vec3 col = texture2D(u_tex0,uv).xyz; | ||
27 | |||
28 | gl_FragColor = vec4(col/(.1+w),1.0); | ||
29 | } \ No newline at end of file | ||