 
         if(0.0 <= hit_dist && hit_dist < far_dist)
         {
-            const float cloud_absorption = 0.3;
-            const float light_absorption = 0.3;
-            const int march_count = 20;
-            const vec3 cloud_speed = vec3(0.03, 0.03, 0.0) * TIME;
+            const int march_count = 30;
+            const float cloud_absorption = 3.0 / float(march_count);
+            const float light_absorption = 10.0 / float(march_count);
+            const vec3 cloud_speed = vec3(0.01, 0.01, 0.0) * TIME;
             const int light_march_count = 5;
             const bool inverse_ray_march = false;
 
             float march_step = cloud_thickness / float(march_count) / max(0.5, abs(eye_direction.y));
-            float distortion = texture(texture_noise, ray_start_pos.xzy * 0.0005 + cloud_speed * 0.5).x;
 
             for(int i=0; i<march_count; ++i)
             {

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

uniform sampler2D texture_normal;

#ifdef MATERIAL_COMPONENTS
    uniform sampler3D texture_noise_01;
    uniform sampler3D texture_noise_02;
#endif

#ifdef GL_FRAGMENT_SHADER
