//TONE MAP
vec3 tonemap(vec3 x){
   float a = 1.108;
   float b = 0.562;
   return pow(x,vec3(1.2)) / (pow(x,vec3(1.3))*b+(a-b));
}

//NOISE
float rand( vec2 p){ 
	return fract(cos(p.x*13.0 +p.y) * 335.552);
}

float snoise(  vec2 p) {
   vec2 i = floor(p);
   vec2 f = fract(p);
      f = smoothstep(0.9,1.0,f);
   return mix(mix(rand(i+vec2(0.,0.)), rand(i+vec2(1.,0.)), f.x), mix(rand(i+vec2(0.,1.)), rand(i+vec2(1.,1.)), f.x), f.y);
}