noise.glsl 500 B

1234567891011121314151617181920
  1. uniform sampler2D tex;
  2. uniform float noise;
  3. uniform float lightness;
  4. float PHI = 1.61803398874989484820459;
  5. float SEED = 24;
  6. float noise_gen(in vec2 xy) {
  7. float r = fract(tan(distance(xy * PHI, xy) * SEED) * xy.x);
  8. r = r != r ? 0.0 : r;
  9. return r;
  10. }
  11. void main() {
  12. vec4 c = texture2D(tex, cogl_tex_coord_in[0].st);
  13. vec3 pix_color = c.xyz;
  14. float blend = noise * (1. - noise_gen(gl_FragCoord.xy));
  15. cogl_color_out = vec4(mix(pix_color, lightness * pix_color, blend), 1.);
  16. }