Fury Canvas

Fragment Shader

#ifdef GL_ES precision highp float; #endif varying vec2 vTextureCoordinates; varying vec2 pos; uniform float time; uniform vec2 mouse; uniform int mouseLeft; uniform sampler2D tex0; void main() { float v1 = (sin(vTextureCoordinates.s+time) + 1.0) / 2.0; float v2 = (cos(vTextureCoordinates.t+time) + 1.0) / 2.0; float d = distance(mouse, pos); vec2 tt = vec2(vTextureCoordinates.s + sin(time/10.0), vTextureCoordinates.t + cos(time/10.0)); vec4 c1 = texture2D(tex0, tt) * 1.1; float avg = (c1.r+c1.g+c1.b)/3.0; float r = c1.r+v1*pow(avg,4.0) - pow(d,pow(avg,2.0) +float(mouseLeft)*avg); float g = c1.g+v2*pow(avg,4.0) - pow(d,pow(avg,2.0) +float(mouseLeft)*avg); float b = c1.g - pow(d,pow(avg,2.0) +float(mouseLeft)*avg); gl_FragColor = vec4(r, g, b, 1.0); }