 	float color = smoothstep(0.4, 0.5, texture(u_texture, xy).r);
 	float cloud = texture(u_textureClouds, xy).r;
 
+	float rng1 = texture(u_textureClouds, xy + vec2(0.319, 0.627) + vec2(0.016, 0.073) * u_rotation).r;
+	float rng2 = texture(u_textureClouds, xy + vec2(0.536, 0.456) + vec2(0.092, 0.023) * u_rotation).r;
+
+	float rng = rng1 * rng2;
+
 
 	vec3 posabove = normalize(normal + 0.1 * sun);
 	float posabovelat = asin(posabove.x);

uniform sampler2D u_texture;
uniform sampler2D u_textureClouds;
uniform float u_sun_offset;

const float u_mercator_fov = 2.5;
const float u_cloud_limit = 0.4;


vec2 to_tex(float lat, float lon) {

	pos = 1.2 * pos;
	if (length(pos) > 1.2)
		discard;
	vec3 sun = vec3(0., cos(-u_rotation + u_sun_offset), sin(-u_rotation + u_sun_offset));
	if (length(pos) > 1.0) {
		float len = length(pos);
		pos = pos / len;
		float bright = clamp(dot(sun, vec3(pos, 0.0)), 0.1., 0.8);
		gl_FragColor = mix(bright * vec4(0.4, 0.9, 1.0, 0.9), vec4(0.), (len - 1.0) / 0.2);
		return;
	}
	vec3 normal = vec3(pos, sqrt(1.-dot(pos, pos)));
