 }
 
 
-float get_cloud_density(vec3 uvw, vec3 cloud_speed, float weight, float distortion)
+float get_cloud_density(vec3 uvw, vec3 cloud_speed, float weight)
 {
     uvw.xy += CAMERA_POSITION.xz;
-    float cloud_density = texture(texture_noise, uvw * 0.0012 - cloud_speed + distortion * 0.05).x;
-    cloud_density *= weight;
-    return clamp((cloud_density - 0.6) * 10.0, 0.0, 1.0);
-    //return clamp(pow(cloud_density, 15.0) * 100.0, 0.0, 1.0);
+
+    const float noise_01_scale = 0.002;
+    const float noise_02_scale = 0.0005;
+    const float noise_01_speed = noise_01_scale / noise_02_scale;
+
+    float cloud_noise = texture(texture_noise_02, uvw * noise_02_scale * vec3(1.0, 1.0, 2.0) + cloud_speed * 0.5).x;
+    cloud_noise = pow(clamp(cloud_noise * 1.8, 0.0, 1.0), 64.0);
+
+    float cloud_density = texture(texture_noise_01, uvw * noise_01_scale + cloud_speed * noise_01_speed).x;
+    cloud_density = pow(clamp(cloud_density * 1.5, 0.0, 1.0), 2.0);
+
+    return cloud_density * cloud_noise * pow(weight, 10.0);
 }
 
 void main()

                    }
                }
            }
            cloud.w *= dist_fade;
        }
        cloud.xyz += scene_in_scatter;
    }

                // fade top and bottom
                float fade = (length(ray_pos - earth_center_pos.xyz) - cloud_bottom_height) / cloud_thickness;
                fade = pow(clamp((1.0 - abs(fade * 2.0 - 1.0)) * 2.0, 0.0, 1.0), 0.3);
                float cloud_density = get_cloud_density(ray_pos.xzy, cloud_speed, fade);

                float light_intensity = 1.0;
                for(int j=1; j<light_march_count; ++j)
                {
                    vec3 light_pos = ray_pos + sun_direction.xzy * float(j) * march_step;
                    float d = length(light_pos.xyz - earth_center_pos.xyz) - cloud_bottom_height;
                    float light_density = get_cloud_density(light_pos.xzy, cloud_speed, 1.0);
                    light_intensity *= 1.0 - light_density * light_absorption;
                    if(cloud_thickness < d || d < 0.0 || light_intensity <= 0.01)
                    {
