import postprocess; uniform sampler2DArray grain; uniform GrainParams { float coarseness; float strength; }; uniform int grain_layer; #pragma MSP stage(fragment) void main() { vec3 gcoord = vec3(gl_FragCoord.xy/textureSize(grain, 0).xy/coarseness, grain_layer); vec4 incoming = texture(source, texcoord); frag_color = vec4(incoming.rgb*mix(1.0, texture(grain, gcoord).r, strength), incoming.a); }