Added new manipulative shaders
This commit is contained in:
93
tools/src/manipulative/Video Wall.frag
Normal file
93
tools/src/manipulative/Video Wall.frag
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user