Added new manipulative shaders

This commit is contained in:
Digital Artifex
2025-10-18 08:44:35 -04:00
parent 54a8d7c58c
commit 5aa83c67e7
90 changed files with 3074 additions and 5 deletions

View File

@@ -0,0 +1,93 @@
// https://www.shadertoy.com/view/MlX3Rs
vec4 white = vec4(1.0,1.0,1.0,0.0);
vec4 black = vec4(0.0,0.0,0.0,1.0);
vec4 noise(vec4 c,vec2 px)
{
vec2 uv = px / iResolution.xy;
vec4 r = texture(iChannel0,uv+vec2(sin(iTime*10.0),sin(iTime*20.0)));
c += r * 0.2;
return c;
}
vec4 colorFilter(vec4 c)
{
float g = (c.x + c.y + c.z) / 3.0;
c = vec4(g,g,g,1.0);
c.x *= 0.3;
c.y *= 0.5;
c.z *= 0.7;
return c;
}
vec4 frame(vec4 c,vec2 px)
{
vec2 uv = px / iResolution.xy;
float d = 0.59;
float e = 3.8;
c += 0.4*pow(distance(uv,vec2(0.5,0.5)) / d,e);
return c;
}
vec4 scanline(vec4 c, vec2 px)
{
vec2 uv = px / iResolution.xy;
float y = mod(-iTime / 10.0,1.1);
float d = sqrt(abs(uv.y - y));
float a = 1.0 - smoothstep(0.001,0.2,d);
c = noise(noise(noise(white,px),px),px) * (a*0.5) + (c * (1.0-a));
return c;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = fragCoord.xy / iResolution.xy;
float aspect = iResolution.x / iResolution.y;
float squares = pow((1.0 + float(int(mod(2.0+iTime / 3.5,5.0)))),2.0);
vec4 c = black;
float sw = sqrt(squares) / aspect;
float sh = sqrt(squares);
float b = float(int(mod(uv.y*sh,2.0)));
// a(0 || 1) selects square
float a = float(int(mod(uv.x*sw * aspect + b,2.0)));
// Texture coordinates
float vx = mod(uv.x * sw * aspect, 1.0);
float vy = mod(uv.y * sh*-1.0, 1.0);
c += texture(iChannel1,vec2(vx,vy)) * (1.0-a);
c += texture(iChannel2,vec2(vx,vy)) * a;
c = noise(c,fragCoord);
//c = scanline(c,fragCoord);
c = colorFilter(c);
c = frame(c,fragCoord);
c = clamp(black,c,white);
fragColor = c;
}