const float GRID_THICKNESS = 0.1; vec3 blurBufA(in vec2 uv, in float r, in float t) { vec3 s = vec3(0); for (float x = -r; x < r+1.; x+=t) for (float y = -r; y < r+1.; y+=t) { vec2 st = uv + vec2(x,y)/iResolution.xy; vec3 p = texture(iChannel0, st).rgb; float f = (1.0 - abs(x/r)) * (1.0 - abs(y/r)); s += p * f; } return s / (r*r) * t * t; } void mainImage(out vec4 fragColor, in vec2 fragCoord) { vec2 uv = fragCoord/iResolution.xy; vec3 col = texture(iChannel0, uv).rgb; vec3 gol = texture(iChannel0, uv).rgb; vec2 kk = step(vec2(GRID_THICKNESS), fract(fragCoord/iResolution.xx * GRID_PIXEL)); float g = 1.0 - kk.x * kk.y; fragColor = vec4(mix(blurBufA(uv, 16., 2.) + gol, vec3(1.0/3.0), g * 0.5), 1.0); }