From add9298c1e4d74bdb5503722a6c795ea6f30fa11 Mon Sep 17 00:00:00 2001
From: Adam Moss <moss@lindenlab.com>
Date: Sat, 24 Oct 2009 14:19:29 +0000
Subject: [PATCH] DEV-41803 class2 deferred light smoothing wrong in creases to
 be reviewed by davep

---
 .../shaders/class2/deferred/blurLightF.glsl      | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl
index 8bd702a8da9..28908a311d7 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl
@@ -46,11 +46,15 @@ void main()
 	
 	dlt /= max(-pos.z*dist_factor, 1.0);
 	
-	vec2 defined_weight = kern[0].xy; // special case the first (centre) sample's weight in the blur; we have to sample it anyway so we get it for 'free'
+	vec2 defined_weight = kern[0].xy; // special case the kern[0] (centre) sample's weight in the blur; we have to sample it anyway so we get it for 'free'
 	vec4 col = defined_weight.xyxx * ccol;
+
+	float center_e = 1.0 - (texture2DRect(edgeMap, vary_fragcoord.xy).a+
+		      texture2DRect(edgeMap, vary_fragcoord.xy+dlt*0.333).a+
+	              texture2DRect(edgeMap, vary_fragcoord.xy-dlt*0.333).a);
 	
-	float e = 1.0;
-	for (int i = 0; i < 4; i++)
+	float e = center_e;
+	for (int i = 1; i < 4; i++)
 	{
 		vec2 tc = vary_fragcoord.xy + kern[i].z*dlt;
 		
@@ -67,10 +71,8 @@ void main()
 			texture2DRect(edgeMap, tc.xy-dlt*0.333).a;
 	}
 
-
-	e = 1.0;
-	
-	for (int i = 0; i < 4; i++)
+	e = center_e;
+	for (int i = 1; i < 4; i++)
 	{
 		vec2 tc = vary_fragcoord.xy - kern[i].z*dlt;
 		
-- 
GitLab