From 64e88b3881bc36d153c9c97e9d767da241615215 Mon Sep 17 00:00:00 2001 From: hellerve Date: Tue, 6 Jun 2017 13:46:09 -0400 Subject: [PATCH] basic: added tiled animation --- basic/tiled_animation.glsl | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 basic/tiled_animation.glsl diff --git a/basic/tiled_animation.glsl b/basic/tiled_animation.glsl new file mode 100644 index 0000000..1bc00b4 --- /dev/null +++ b/basic/tiled_animation.glsl @@ -0,0 +1,42 @@ +#ifdef GL_ES +precision mediump float; +#endif + +uniform vec2 u_resolution; +uniform float u_time; + +#define PI 3.14159265358979323846 + +vec2 rotate2D(vec2 _st, float _angle){ + _st -= 0.5; + _st = mat2(cos(_angle),-sin(_angle), + sin(_angle),cos(_angle)) * _st; + _st += 0.5; + return _st; +} + +vec2 tile(vec2 _st, float _zoom){ + _st *= _zoom; + return fract(_st); +} + +float box(vec2 _st, vec2 _size, float _smoothEdges){ + _size = vec2(0.5)-_size*0.5; + vec2 aa = vec2(_smoothEdges*0.5); + vec2 uv = smoothstep(_size,_size+aa,_st); + uv *= smoothstep(_size,_size+aa,vec2(1.0)-_st); + return uv.x*uv.y; +} + +void main(void){ + vec2 st = gl_FragCoord.xy/u_resolution.xy; + vec3 color = vec3(0.0); + + st = tile(st,4.); + st = rotate2D(st,PI*0.25); + + color = vec3(box(st*(sin(u_time)),vec2(0.7),0.01)); + color += vec3(st*(sin(u_time)),0.0); + + gl_FragColor = vec4(color,1.0); +}