From c1652b4c42256b2e9dd6a564a83681c87d1a3528 Mon Sep 17 00:00:00 2001 From: Dave Houlton Date: Mon, 3 Feb 2020 17:41:54 -0700 Subject: SL-12005, back out SRGB changes for projector spotlights Deferred spotlights were transitioned srdb->linear in commit 653133b The lights transition between the deferred and (some other) path at fixed camera distance, causing a distinct light-level pop. Backing out this change to avoid the pop. Note to the future: pick a light space at the beginning and stick with it. --- .../newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl | 4 +++- indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl | 4 +++- .../newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl index e28506dcff..a690cc45a8 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl @@ -178,7 +178,9 @@ void main() vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; - diff_tex.rgb = srgb_to_linear(diff_tex.rgb); + // SL-12005 Projector light pops as we get closer, more objectionable than being in wrong color space. + // We can't switch to linear here unless we do it everywhere + //diff_tex.rgb = srgb_to_linear(diff_tex.rgb); vec3 dlit = vec3(0, 0, 0); diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl index 5e985618f7..2216afe609 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl @@ -177,7 +177,9 @@ void main() float da = dot(norm, lv); vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; - diff_tex.rgb = srgb_to_linear(diff_tex.rgb); + // SL-12005 Projector light pops as we get closer, more objectionable than being in wrong color space. + // We can't switch to linear here unless we do it everywhere + //diff_tex.rgb = srgb_to_linear(diff_tex.rgb); vec4 spec = texture2DRect(specularRect, frag.xy); diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl index 8cad21d5b4..7cde67d11b 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -191,7 +191,9 @@ void main() float da = dot(norm, lv); vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; - diff_tex.rgb = srgb_to_linear(diff_tex.rgb); + // SL-12005 Projector light pops as we get closer, more objectionable than being in wrong color space. + // We can't switch to linear here unless we do it everywhere + //diff_tex.rgb = srgb_to_linear(diff_tex.rgb); vec4 spec = texture2DRect(specularRect, frag.xy); -- cgit v1.2.3