summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/deferred
diff options
context:
space:
mode:
authorMichael Pohoreski (Ptolemy Linden) <ptolemy@lindenlab.com>2019-11-20 15:27:26 -0800
committerMichael Pohoreski (Ptolemy Linden) <ptolemy@lindenlab.com>2019-11-20 15:27:26 -0800
commitf1f029bc92b7f2c816de0e01947da739e7c571bd (patch)
treecc545601d41aa6b6988a38765c05cf74d3d2c64f /indra/newview/app_settings/shaders/class1/deferred
parent18eb8ac90ce409ba620f6fe8ff487e6195d9c3eb (diff)
SL-11406 Fix fullbright to better match non-EEP. Also minor cleanup.
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/materialF.glsl17
1 files changed, 12 insertions, 5 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
index fafecd57cc..a7dce5c7a5 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl
@@ -264,8 +264,7 @@ void main()
tnorm = vary_normal;
#endif
- norm.xyz = tnorm;
- norm.xyz = normalize(norm.xyz);
+ norm.xyz = normalize(tnorm.xyz);
vec2 abnormal = encode_normal(norm.xyz);
@@ -277,7 +276,14 @@ void main()
final_color.a = max(final_color.a, emissive_brightness);
- vec4 final_normal = vec4(encode_normal(normalize(tnorm)), env_intensity, 0.0);
+ // SL-11406 Fullbright: Object > Texture > Shininess > Environment Intensity
+ // We can either modify the output environment intensity
+ // OR
+ // adjust the final color via
+ // final_color *= 0.666666;
+ // We remap the environment intensity to simulate what non-EEP is doing.
+ float ei = env_intensity*0.5 + 0.5;
+ vec4 final_normal = vec4(abnormal, ei, 0.0);
vec4 final_specular = spec;
final_specular.a = specular_color.a;
@@ -316,8 +322,9 @@ void main()
vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
- float da = dot(normalize(norm.xyz), normalize(light_dir.xyz));
- da = clamp(da, -1.0, 1.0);
+ float da = dot(norm.xyz, normalize(light_dir.xyz));
+ // Dot product is guaranteed to be in -1 < dot() < +1 range for normalized vectors
+ // da = clamp(da, -1.0, 1.0);
float final_da = da;
final_da = clamp(final_da, 0.0, 1.0);