diff --git a/indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl b/indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl
index 20ab0fb171d4823b6c0c99aff49182d6a466e51e..8e90c1481feafcbae4710e59423b1bfed5c3d68f 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/cloudsV.glsl
@@ -78,7 +78,7 @@ void main()
 	// Get relative position
 	vec3 P = position.xyz - camPosLocal.xyz + vec3(0,50,0);
 
-    altitude_blend_factor = (P.y > -4096.0) ? 1.0 : 1.0 - clamp(abs(P.y) / max_y, 0.0, 1.0);
+    altitude_blend_factor = clamp((P.y + 512.0) / max_y, 0.0, 1.0);
 
 	// Set altitude
 	if (P.y > 0.)
diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
index 18daa5a24266f7b4773fadf39849664ca6b4e34b..2c1475d5478872d28080826443919bcfa81c52a2 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
@@ -78,7 +78,7 @@ void main()
 	vec3 P = position.xyz - camPosLocal.xyz + vec3(0,50,0);
 
     // fade clouds beyond a certain point so the bottom of the sky dome doesn't look silly at high altitude
-    altitude_blend_factor = (P.y > -4096.0) ? 1.0 : 1.0 - clamp(abs(P.y) / max_y, 0.0, 1.0);
+    altitude_blend_factor = clamp((P.y + 512.0) / max_y, 0.0, 1.0);
 
 	// Set altitude
 	if (P.y > 0.)