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; }