summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2013-07-01 16:27:20 -0500
committerDave Parks <davep@lindenlab.com>2013-07-01 16:27:20 -0500
commitd6d2f74fbbf22ba70166a97e15b6c3b39e42ac4d (patch)
treef4bdf0bb387e4d8157963d1c0f5f971d470fde22 /indra/newview/app_settings
parentd262ca32d3b80803595fcc3f61f008786125250d (diff)
NORSPEC-290 Shader optimization WIP -- compatibility pass with OpenGL 3.3, slight cleanup.
Diffstat (limited to 'indra/newview/app_settings')
-rwxr-xr-xindra/newview/app_settings/shaders/class1/deferred/alphaF.glsl3
-rwxr-xr-xindra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl14
-rwxr-xr-xindra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl14
3 files changed, 8 insertions, 23 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
index b666b7b0d9..4b428cb904 100755
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
@@ -93,7 +93,7 @@ float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, floa
float da = 0.0;
-// if (d > 0.0 && la > 0.0 && fa > 0.0)
+ //if (d > 0.0 && la > 0.0 && fa > 0.0)
{
//normalize light vector
lv /= d;
@@ -230,7 +230,6 @@ void main()
}
#endif
- vec4 gamma_diff = diff;
vec3 normal = vary_norm;
vec3 l = light_position[0].xyz;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
index ed51e01a53..5a08980fec 100755
--- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
@@ -36,7 +36,6 @@ uniform sampler2DRect diffuseRect;
uniform sampler2DRect specularRect;
uniform sampler2DRect normalMap;
uniform samplerCube environmentMap;
-uniform sampler2D noiseMap;
uniform sampler2D lightFunc;
@@ -99,7 +98,6 @@ void main()
norm = normalize(norm);
vec4 spec = texture2DRect(specularRect, frag.xy);
vec3 diff = texture2DRect(diffuseRect, frag.xy).rgb;
- float noise = texture2D(noiseMap, frag.xy/128.0).b;
vec3 out_col = vec3(0,0,0);
vec3 npos = normalize(-pos);
@@ -122,14 +120,10 @@ void main()
dist_atten *= dist_atten;
dist_atten *= 2.0;
- dist_atten *= noise;
-
float lit = da * dist_atten;
vec3 col = light_col[i].rgb*lit*diff;
- //vec3 col = vec3(dist2, light_col[i].a, lit);
-
if (spec.a > 0.0)
{
lit = min(da*6.0, 1.0) * dist_atten;
@@ -144,12 +138,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*light_col[i].rgb*spec.rgb;
- //col += spec.rgb;
- }
+ float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);
+ col += max(lit*scol*light_col[i].rgb*spec.rgb, vec3(0.0));
}
out_col += col;
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));
}
}