Cool pixelation effect

This commit is contained in:
Greg Shuflin 2025-02-15 03:30:50 -08:00
parent 7d781be5cf
commit dc72b50b5a

View File

@ -22,24 +22,34 @@ vec4 boxFade(vec4 inputColor, float boxSize, float period) {
uv.y = floor(uv.y / boxSize) * boxSize; uv.y = floor(uv.y / boxSize) * boxSize;
float rand = random(uv); float rand = random(uv);
float mask = mod(u_time / period, 1.4); float mask = mod(u_time / period, 2.4);
return rand < mask ? inputColor : vec4(0.0, 0.0, 0.0, 1.0); return rand < mask ? inputColor : vec4(0.0, 0.0, 0.0, 1.0);
} }
vec2 pixellate(vec2 inputVec, float size) {
return vec2(
floor(inputVec.x / size) * size,
floor(inputVec.y / size) * size
);
}
void main() { void main() {
float canvasSize = max(u_canvasWidth, u_canvasHeight); vec2 uv = gl_FragCoord.xy/vec2(u_canvasWidth, u_canvasHeight);
vec2 uv = gl_FragCoord.xy/vec2(canvasSize, canvasSize);
vec3 red = vec3(1.0, 0.0, 0.0); float amount = 1.0/(u_time * 5.0);
vec3 green = vec3(0.0, 1.0, 0.0);
vec3 blue = vec3(0.0, 0.0, 1.0); uv = pixellate(uv, amount);
//vec4 outputColor = vec4(uv.x, 0., uv.y, 1.0);
float dist = distance(uv, vec2(0.5, 0.5));
float curve = sin(dist * 60.0);
vec4 outputColor = vec4(0.5, 0.1, curve, 1.0);
vec4 o = vec4(uv.x, 0., uv.y, 1.0);
float size = 0.01; float size = 0.01;
float period = 5.0; float period = 1.0;
fragColor = boxFade(o, size, period); fragColor = boxFade(outputColor, size, period);
} }