28 lines
1.1 KiB
GLSL
28 lines
1.1 KiB
GLSL
// Based on https://www.shadertoy.com/view/ms3cWn
|
|
float map(float value, float min1, float max1, float min2, float max2) {
|
|
return min2 + (value - min1) * (max2 - min2) / (max1 - min1);
|
|
}
|
|
|
|
void mainImage( out vec4 fragColor, in vec2 fragCoord )
|
|
{
|
|
vec2 uv = fragCoord / iResolution.xy;
|
|
float d = length(uv - 0.5) * 2.0;
|
|
float t = d * d * 25.0 - iTime * 2.0;
|
|
vec3 col = 0.5 + 0.5 * cos(t / 20.0 + uv.xyx + vec3(0.0,2.0,4.0));
|
|
|
|
vec2 center = iResolution.xy * 0.5;
|
|
float distCentre = distance(fragCoord.xy, center);
|
|
float dCSin = sin(distCentre * 0.05);
|
|
|
|
vec2 anim = vec2(map(sin(iTime),-1.0,1.0,0.0,iResolution.x),map(sin(iTime*1.25),-1.0,1.0,0.0,iResolution.y));
|
|
float distMouse = distance(fragCoord.xy, anim);
|
|
float dMSin = sin(distMouse * 0.05);
|
|
|
|
float greycol = (((dMSin * dCSin) + 1.0) * 0.5);
|
|
greycol = greycol * map(d, 0.0, 1.4142135623730951, 0.5, 0.0);
|
|
|
|
vec4 terminalColor = texture(iChannel0, uv);
|
|
vec3 blendedColor = mix(terminalColor.rgb, vec3(greycol * col.x, greycol * col.y, greycol * col.z), 0.25);
|
|
|
|
fragColor = vec4(blendedColor, terminalColor.a);
|
|
}
|