diff options
author | Adam Moss <moss@lindenlab.com> | 2009-10-24 14:19:29 +0000 |
---|---|---|
committer | Adam Moss <moss@lindenlab.com> | 2009-10-24 14:19:29 +0000 |
commit | add9298c1e4d74bdb5503722a6c795ea6f30fa11 (patch) | |
tree | 1d32326be5e5498f8742e445d615548867a1cde0 | |
parent | 576b8fe6ec9aa4ad712de757341862c89ff7df36 (diff) |
DEV-41803 class2 deferred light smoothing wrong in creases
to be reviewed by davep
-rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl | 16 |
1 files 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 8bd702a8da..28908a311d 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; |