varying vec2 v_texcoord;uniform sampler2D u_texture;vec3 grainNoise(in vec3 color, in float intensity){ float variation = v_texcoord.x * v_texcoord.y * 1000.0; variation = mod(variation, 13.0) * mod(variation, 123.0); float grain = mod(variation, 0.01); vec3 result = color + color * clamp(0.1 + grain * (intensity * 100.0), 0.0, 1.0); return result;}void main(){ vec3 color = texture2D(u_texture, v_texcoord).rgb; color = grainNoise(color, 1.0); gl_FragColor = vec4(color, 1.0);}