extern float t;
extern float blockSize;

// hash-функция для шума по целочисленным координатам блока
float hash(vec2 p) {
    p = vec2(
            dot(p, vec2(127.1, 311.7)),
            dot(p, vec2(269.5, 183.3))
        );
    return fract(sin(p.x + p.y) * 43758.5453123);
}

vec4 effect(vec4 color, Image tex, vec2 texCoord, vec2 screenCoord)
{
    float blockSize = 4.0;

    vec2 cell = floor(screenCoord / blockSize);
    float n = hash(cell); // [0..1]
    float mask = 1.0 - step(t, n);

    vec4 base = Texel(tex, texCoord) * color;
    base.a *= mask;
    return base;
}
