/** * @see https://github.com/evanw/glfx.js/blob/master/src/filters/adjust/noise.js */ export declare const frag = "\n\nuniform sampler2D u_Texture;\nin vec2 v_Uv;\n\nlayout(std140) uniform PostProcessingUniforms {\n float u_Noise;\n};\n\nout vec4 outputColor;\n\n\n float random (in vec2 st) {\n return fract(sin(dot(st.xy,\n vec2(12.9898,78.233)))*\n 43758.5453123);\n }\n\n\nvoid main() {\n vec4 color = texture(SAMPLER_2D(u_Texture), v_Uv);\n\n float u_Seed = 12345.0;\n\n float randomValue = random(v_Uv * u_Seed);\n float diff = (randomValue - 0.5) * u_Noise;\n\n if (color.a > 0.0) {\n color.rgb /= color.a;\n }\n\n color.r += diff;\n color.g += diff;\n color.b += diff;\n\n // Premultiply alpha again.\n color.rgb *= color.a;\n\n outputColor = color;\n}\n";