GLSL Sandbox: http://glslsandbox.com/e#31444.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#ifdef GL_ES precision mediump float; #endif #extension GL_OES_standard_derivatives : enable uniform float time; uniform vec2 mouse; uniform vec2 resolution; float circleFunc(vec2 _st, vec2 _pos, float _radius, float _blur){ float _pct = distance(_st, _pos); _pct /= _radius; _pct = smoothstep(_radius - _blur, _radius + _blur, _pct); return _pct; } void main( void ) { vec2 st = gl_FragCoord.xy/resolution; float pct = 0.0; vec3 color = vec3(0.0); float time = sin(time*4.)*0.5+0.5; float time2 = cos(time*4.)*0.4+0.5; float time3 = sin(time*3.)*0.3+0.5; float time4 = cos(time*3.)*0.2+0.5; float time5 = sin(time*2.)*0.15+0.5; float time6 = cos(time*2.)*0.1+0.5; pct = circleFunc(st, vec2(time,0.2), 0.5, 0.4); color += vec3(0.,1.0-pct,0.); pct = circleFunc(st, vec2(time2,0.35), 0.45, 0.4); color += vec3(0.0,0.5-pct,0.0); pct = circleFunc(st, vec2(time3,0.5), 0.4, 0.4); color += vec3(0.0,1.0-pct,0.0); pct = circleFunc(st, vec2(time4,0.65), 0.35, 0.4); color += vec3(0.0, 1.0-pct,0.0); pct = circleFunc(st, vec2(time5,0.8), 0.35, 0.4); color += vec3(0.0, 1.0-pct,0.0); pct = circleFunc(st, vec2(time6,0.95), 0.25, 0.4); color += vec3(0.0, 1.0-pct,0.0); gl_FragColor = vec4( color, 1.0 ); } |