28 lines
626 B
GLSL
28 lines
626 B
GLSL
uniform float time;
|
|
uniform vec2 resolution;
|
|
uniform vec4 mouse;
|
|
uniform sampler2D tex0;
|
|
uniform sampler2D tex1;
|
|
uniform sampler2D tex2;
|
|
uniform sampler2D tex3;
|
|
|
|
void main(void)
|
|
{
|
|
vec2 p = -1.0 + 2.0 * gl_FragCoord.xy / resolution.xy;
|
|
vec2 m = -1.0 + 2.0 * mouse.xy / resolution.xy;
|
|
|
|
float a1 = atan(p.y-m.y,p.x-m.x);
|
|
float r1 = sqrt(dot(p-m,p-m));
|
|
float a2 = atan(p.y+m.y,p.x+m.x);
|
|
float r2 = sqrt(dot(p+m,p+m));
|
|
|
|
vec2 uv;
|
|
uv.x = 0.2*time + (r1-r2)*0.25;
|
|
uv.y = sin(2.0*(a1-a2));
|
|
|
|
float w = r1*r2*0.8;
|
|
vec3 col = texture2D(tex0,uv).xyz;
|
|
|
|
gl_FragColor = vec4(col/(.1+w),1.0);
|
|
}
|