From f1f029bc92b7f2c816de0e01947da739e7c571bd Mon Sep 17 00:00:00 2001 From: "Michael Pohoreski (Ptolemy Linden)" Date: Wed, 20 Nov 2019 15:27:26 -0800 Subject: SL-11406 Fix fullbright to better match non-EEP. Also minor cleanup. --- .../app_settings/shaders/class1/deferred/materialF.glsl | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'indra/newview/app_settings/shaders/class1/deferred') 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); -- cgit v1.2.3