summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-01-28 18:01:12 -0800
committerTofu Linden <tofu.linden@lindenlab.com>2010-01-28 18:01:12 -0800
commitb7aa0ce2446dfa586f4727d537cdf02fb643fbe9 (patch)
treec274d8cde28641d909c523c4fa5a540edf9594c0 /indra/newview/app_settings/shaders/class1
parentec2eae01fa5f9f47492035537f9ddbee86471a84 (diff)
enable basic directional lighting for basic/atmospheric shaders - yay.
next, needs the non-shader GL lighting model to be equally dumb (it's too smart - kill the spot angle.
Diffstat (limited to 'indra/newview/app_settings/shaders/class1')
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl21
1 files changed, 21 insertions, 0 deletions
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
index 3e8fdfb3e4..211de830fa 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
@@ -28,7 +28,28 @@ float calcPointLight(vec3 v, vec3 n, vec4 lp, float la)
//angular attenuation
da *= calcDirectionalLight(n, lv);
+
+ return da;
+}
+
+
+float calcPointLight2(vec3 v, vec3 n, vec4 lp, vec3 ln, float la)
+{
+ //get light vector
+ vec3 lv = lp.xyz-v;
+ //get distance
+ float d = length(lv);
+
+ //normalize light vector
+ lv *= 1.0/d;
+
+ //distance attenuation
+ float da = clamp(1.0/(la * d), 0.0, 1.0);
+
+ //angular attenuation
+ da *= dot(lv, -ln) * calcDirectionalLight(n, lv);
+
return da;
}