                     }
                 }
 
-                cloud.xyz += light_color * light_intensity * (1.0 - cloud.w);
+                cloud.xyz += cloud_density * light_color * light_intensity;
                 cloud.w = clamp(cloud.w + cloud_density * cloud_absorption, 0.0, 1.0);
 
                 if(1.0 <= cloud.w)

        {
            const float march_count_min = 32.0;
            const float march_count = mix(march_count_min * 2.0, march_count_min, abs(eye_direction.y));
            const float light_march_count = 8.0;
            const float march_step = cloud_height / march_count_min * 2.0;
            const vec3 speed = vec3(cloud_speed, cloud_speed, 0.0) * TIME;

            vec3 cloud_scale = textureSize(texture_cloud, 0);

uniform float cloud_altitude;
uniform float cloud_height;
uniform float cloud_speed;
uniform float cloud_absorption;

uniform float cloud_tiling;
uniform float cloud_contrast;
uniform float cloud_coverage;

uniform float noise_tiling;
uniform float noise_contrast;
