From 359b6cad5b8ae2a88927d53eaa12b58a126e0d1c Mon Sep 17 00:00:00 2001
From: Dave Parks <davep@lindenlab.com>
Date: Mon, 15 Apr 2013 14:12:16 -0500
Subject: [PATCH] NORSPEC-117 Fix distance attenuation to not use pow(lit, 0.7)
 function so distance falloff is still soft

---
 .../shaders/class1/deferred/multiPointLightF.glsl             | 4 ++--
 .../app_settings/shaders/class1/deferred/multiSpotLightF.glsl | 4 +---
 .../app_settings/shaders/class1/deferred/pointLightF.glsl     | 4 +---
 .../app_settings/shaders/class1/deferred/spotLightF.glsl      | 4 +---
 .../app_settings/shaders/class2/deferred/multiSpotLightF.glsl | 4 +---
 .../app_settings/shaders/class2/deferred/spotLightF.glsl      | 4 +---
 6 files changed, 7 insertions(+), 17 deletions(-)

diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
index 5329ae9dd72..3bd433c2837 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
@@ -127,9 +127,9 @@ void main()
 			
 			dist_atten *= noise;
 
-			float lit = da * dist_atten;
+			float lit = pow(da, 0.7) * dist_atten;
 
-			lit = pow(lit,0.7);
+			
 						
 			vec3 col = light_col[i].rgb*lit*diff;
 			
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
index 9746218ea6c..959a85330ea 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
@@ -201,9 +201,7 @@ void main()
 		
 			vec3 lcol = color.rgb * plcol.rgb * plcol.a;
 			
-			lit = da * dist_atten * noise;
-
-			lit = pow(lit, 0.7);
+			lit = pow(da, 0.7) * dist_atten * noise;
 			
 			col = lcol*lit*diff_tex;
 			amb_da += (da*0.5)*proj_ambiance;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
index 27863b00952..6976fc7bd9d 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
@@ -111,10 +111,8 @@ void main()
 	vec3 col = texture2DRect(diffuseRect, frag.xy).rgb;
 	float fa = falloff+1.0;
 	float dist_atten = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0);
-	float lit = da * dist_atten * noise;
+	float lit = pow(da, 0.7) * dist_atten * noise;
 	
-	lit = pow(lit, 0.7);
-
 	col = color.rgb*lit*col;
 
 	vec4 spec = texture2DRect(specularRect, frag.xy);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
index d7f0ab6d8e9..918cdce040c 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
@@ -204,9 +204,7 @@ void main()
 		
 			vec3 lcol = color.rgb * plcol.rgb * plcol.a;
 			
-			lit = da * dist_atten * noise;
-			
-			lit = pow(lit, 0.7);
+			lit = pow(da, 0.7) * dist_atten * noise;
 
 			col = lcol*lit*diff_tex;
 			amb_da += (da*0.5)*proj_ambiance;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
index b3ab8fd5109..90b6856c5c8 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
@@ -213,9 +213,7 @@ void main()
 		
 			vec3 lcol = color.rgb * plcol.rgb * plcol.a;
 			
-			lit = da * dist_atten * noise;
-			
-			lit = pow(lit, 0.7);
+			lit = pow(da,0.7) * dist_atten * noise;
 
 			col = lcol*lit*diff_tex*shadow;
 			amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
index 43fc5dbc5ec..5fd6f0afb70 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
@@ -214,9 +214,7 @@ void main()
 		
 			vec3 lcol = color.rgb * plcol.rgb * plcol.a;
 			
-			lit = da * dist_atten * noise;
-			
-			lit = pow(lit, 0.7);
+			lit = pow(da, 0.7) * dist_atten * noise;
 
 			col = lcol*lit*diff_tex*shadow;
 			amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance;
-- 
GitLab