summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl')
-rwxr-xr-xindra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl14
1 files changed, 5 insertions, 9 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
index f162f70592..b331258952 100755
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
@@ -102,11 +102,10 @@ void main()
{
vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
norm = decode_normal(norm.xy); // unpack norm
- float da = dot(norm, lv);
-
+
norm = normalize(norm);
lv = normalize(lv);
- da = max(dot(norm, lv), 0.0);
+ float da = max(dot(norm, lv), 0.0);
//float noise = texture2D(noiseMap, frag.xy/128.0).b;
@@ -116,7 +115,7 @@ void main()
dist_atten *= dist_atten;
dist_atten *= 2.0;
- float lit = da * dist_atten; // * noise;
+ float lit = da * dist_atten;
col = color.rgb*lit*col;
@@ -135,11 +134,8 @@ void main()
float gtdenom = 2 * nh;
float gt = max(0,(min(gtdenom * nv / vh, gtdenom * da / vh)));
- if (nh > 0.0)
- {
- float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
- col += lit*scol*color.rgb*spec.rgb;
- }
+ float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
+ col += max(lit*scol*color.rgb*spec.rgb, vec3(0.0));
}
}