diff options
author | Debi King (Dessie) <dessie@lindenlab.com> | 2011-06-03 20:03:52 -0400 |
---|---|---|
committer | Debi King (Dessie) <dessie@lindenlab.com> | 2011-06-03 20:03:52 -0400 |
commit | db2d21a89b62acc14025e7c529721e994ca96a9f (patch) | |
tree | 5124aa04ff7a212c00891b517740afd050c724e5 /indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl | |
parent | d5f96c38e6f5838672c87e540aaaa3b1663837f8 (diff) | |
parent | eef9016ca15631783e0d61b98da858a971b2ab72 (diff) |
reconciled .hgtags
Diffstat (limited to 'indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl')
-rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl index d227346163..dfb36980b0 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaSkinnedV.glsl @@ -35,19 +35,24 @@ float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, floa //get distance float d = length(lv); - //normalize light vector - lv *= 1.0/d; + float da = 0.0; + + if (d > 0.0 && la > 0.0 && fa > 0.0) + { + //normalize light vector + lv *= 1.0/d; - //distance attenuation - float dist2 = d*d/(la*la); - float da = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0); + //distance attenuation + float dist2 = d*d/(la*la); + da = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0); - // spotlight coefficient. - float spot = max(dot(-ln, lv), is_pointlight); - da *= spot*spot; // GL_SPOT_EXPONENT=2 + // spotlight coefficient. + float spot = max(dot(-ln, lv), is_pointlight); + da *= spot*spot; // GL_SPOT_EXPONENT=2 - //angular attenuation - da *= calcDirectionalLight(n, lv); + //angular attenuation + da *= calcDirectionalLight(n, lv); + } return da; } |