summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/lighting
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2011-09-15 16:38:31 -0500
committerDave Parks <davep@lindenlab.com>2011-09-15 16:38:31 -0500
commit24ae2fb5af52d7128e79a0f63afce9a8db1123eb (patch)
tree97d944e8dbe700e946f4e35b08ebeb407aaabe6b /indra/newview/app_settings/shaders/class1/lighting
parentf72a24bf3a5bf7ecb826ef5e6d7f17dbb92d5db2 (diff)
SH-2243 work in progress -- don't use built-in GL light state when shaders are available.
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/lighting')
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl8
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightV.glsl8
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl7
4 files changed, 19 insertions, 11 deletions
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
index 4a59b8245d..bf6ed5988e 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
@@ -24,6 +24,8 @@
*/
+uniform vec4 light_position[8];
+uniform vec3 light_diffuse[8];
float calcDirectionalLight(vec3 n, vec3 l);
@@ -34,10 +36,10 @@ vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularCo
vec4 col;
col.a = color.a;
- col.rgb = gl_LightModel.ambient.rgb + baseCol.rgb;
+ col.rgb = baseCol.rgb; //need ambient?
- col.rgb += gl_LightSource[0].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[0].position.xyz);
- col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
+ col.rgb += light_diffuse[0].rgb*calcDirectionalLight(norm, light_position[0].xyz);
+ col.rgb += light_diffuse[1].rgb*calcDirectionalLight(norm, light_position[1].xyz);
col.rgb = min(col.rgb*color.rgb, 1.0);
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
index 742cb38d80..79e2207932 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
@@ -24,6 +24,8 @@
*/
+uniform vec4 light_position[8];
+uniform vec3 light_diffuse[8];
float calcDirectionalLight(vec3 n, vec3 l);
@@ -32,10 +34,10 @@ vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
vec4 col;
col.a = color.a;
- col.rgb = gl_LightModel.ambient.rgb + baseLight.rgb;
+ col.rgb = baseLight.rgb; //need ambient?
- col.rgb += gl_LightSource[0].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[0].position.xyz);
- col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
+ col.rgb += light_diffuse[0].rgb*calcDirectionalLight(norm, light_position[0].xyz);
+ col.rgb += light_diffuse[1].rgb*calcDirectionalLight(norm, light_position[1].xyz);
col.rgb = min(col.rgb*color.rgb, 1.0);
diff --git a/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl b/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
index 3e0815226c..dcd405716c 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
@@ -31,6 +31,9 @@ vec3 atmosAffectDirectionalLight(float lightIntensity);
vec3 atmosGetDiffuseSunlightColor();
vec3 scaleDownLight(vec3 light);
+uniform vec4 light_position[8];
+uniform vec3 light_diffuse[8];
+
vec4 sumLightsSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol)
{
vec4 col;
@@ -42,10 +45,10 @@ vec4 sumLightsSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor
/// collect all the specular values from each calcXXXLightSpecular() function
vec4 specularSum = vec4(0.0);
- col.rgb = gl_LightSource[1].diffuse.rgb * calcDirectionalLightSpecular(specularColor, view, norm, gl_LightSource[1].position.xyz, gl_LightSource[1].diffuse.rgb, 1.0);
+ col.rgb += light_diffuse[1].rgb * calcDirectionalLightSpecular(specularColor, view, norm, light_position[1].xyz,light_diffuse[1].rgb, 1.0);
col.rgb = scaleDownLight(col.rgb);
col.rgb += atmosAmbient(baseCol.rgb);
- col.rgb += atmosAffectDirectionalLight(calcDirectionalLightSpecular(specularSum, view, norm, gl_LightSource[0].position.xyz,atmosGetDiffuseSunlightColor() * baseCol.a, 1.0));
+ col.rgb += atmosAffectDirectionalLight(calcDirectionalLightSpecular(specularSum, view, norm, light_position[0].xyz,atmosGetDiffuseSunlightColor()*baseCol.a, 1.0));
col.rgb = min(col.rgb * color.rgb, 1.0);
specularColor.rgb = min(specularColor.rgb * specularSum.rgb, 1.0);
diff --git a/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl b/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
index c271dbcd18..41288c21c1 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
@@ -23,7 +23,8 @@
* $/LicenseInfo$
*/
-
+uniform vec4 light_position[8];
+uniform vec3 light_diffuse[8];
float calcDirectionalLight(vec3 n, vec3 l);
@@ -36,10 +37,10 @@ vec4 sumLights(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
vec4 col;
col.a = color.a;
- col.rgb = gl_LightSource[1].diffuse.rgb * calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
+ col.rgb = light_diffuse[1].rgb * calcDirectionalLight(norm, light_position[1].xyz);
col.rgb = scaleDownLight(col.rgb);
col.rgb += atmosAmbient(baseLight.rgb);
- col.rgb += atmosAffectDirectionalLight(calcDirectionalLight(norm, gl_LightSource[0].position.xyz));
+ col.rgb += atmosAffectDirectionalLight(calcDirectionalLight(norm, light_position[0].xyz));
col.rgb = min(col.rgb*color.rgb, 1.0);