summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl')
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl12
1 files changed, 7 insertions, 5 deletions
diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
index 4a5f5e642b..510d1ca9fd 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
@@ -144,18 +144,20 @@ void main()
vec3 lv = trans_center.xyz-pos.xyz;
float dist = length(lv);
- if ((size > 0) && ((dist / size) > 1.0))
+ if (dist >= size)
{
discard;
}
-
+ dist /= size;
+
float shadow = 1.0;
if (proj_shadow_idx >= 0)
{
vec4 shd = texture2DRect(lightMap, frag.xy);
- shadow = max(shd.b, shd.a) + shadow_fade;
- shadow = min(shadow, 1.0);
+ shadow = (proj_shadow_idx == 0) ? shd.b : shd.a;
+ shadow = clamp(shadow, 0.0, 1.0);
+ shadow += shadow_fade;
}
vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
@@ -173,7 +175,7 @@ void main()
proj_tc.xyz /= proj_tc.w;
- float fa = falloff + 1.0;
+ float fa = (falloff * 0.5) + 1.0;
float dist_atten = min(1.0 - (dist - 1.0 * (1.0 - fa)) / fa, 1.0);
dist_atten *= dist_atten;
dist_atten *= 2.0;