#pragma language glsl3

vec2 hash(vec2 p) {
    p = fract(p * vec2(123.34, 456.21));
    p += dot(p, p + 34.345);
    return fract(vec2(p.x * p.y, p.x + p.y));
}

vec4 effect(vec4 color, Image tex, vec2 uv, vec2 px)
{
    vec2 cell = floor(px / 2.0); // тут можно размер зерна менять

    float n = hash(cell).x; // 0..1
    float v = 0.9 + n * 0.1; // 0.9..1.0

    return vec4(v, v, v, 1.0);
}
