summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/deferred
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@geenzo.com>2023-04-12 15:18:27 -0700
committerJonathan "Geenz" Goodman <geenz@geenzo.com>2023-04-12 15:18:27 -0700
commit6d5c16971654764de28833fd886f522212d3746d (patch)
tree977b913112505d09966133857c9a92fd07629431 /indra/newview/app_settings/shaders/class1/deferred
parent58df456675f37146d9a6cdaaf75c0f2b93f234c6 (diff)
parentd6b99cff8ab7550b5e0316c831087050f19c91c6 (diff)
Merge branch 'DRTVWR-559' into DRTVWR-559-post-refactor
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/exposureF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl22
4 files changed, 15 insertions, 18 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/exposureF.glsl b/indra/newview/app_settings/shaders/class1/deferred/exposureF.glsl
index 7ed8e4c8ce..81f1e9aed0 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/exposureF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/exposureF.glsl
@@ -48,8 +48,11 @@ void main()
vec2 tc = vec2(0.5,0.5);
float L = textureLod(emissiveRect, tc, 8).r;
-
- float s = clamp(dynamic_exposure_params.x/L, dynamic_exposure_params.y, dynamic_exposure_params.z);
+ float max_L = dynamic_exposure_params.x;
+ L = clamp(L, 0.0, max_L);
+ L /= max_L;
+ L = pow(L, 2.0);
+ float s = mix(dynamic_exposure_params.z, dynamic_exposure_params.y, L);
float prev = texture(exposureMap, vec2(0.5,0.5)).r;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
index b5eae3a1d5..11532135dd 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
@@ -42,6 +42,7 @@ vec4 applyWaterFogView(vec3 pos, vec4 color);
#endif
vec3 srgb_to_linear(vec3 cs);
+vec3 legacy_adjust(vec3 c);
vec3 linear_to_srgb(vec3 cl);
vec3 fullbrightAtmosTransport(vec3 light);
@@ -87,6 +88,7 @@ void main()
#endif
#ifndef IS_HUD
+ color.rgb = legacy_adjust(color.rgb);
color.rgb = srgb_to_linear(color.rgb);
color.rgb = fullbrightAtmosTransport(color.rgb);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
index e63e666778..ee425f97fc 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
@@ -44,9 +44,9 @@ float lum(vec3 col)
void main()
{
vec2 tc = vary_fragcoord*0.6+0.2;
+ tc.y -= 0.1; // HACK - nudge exposure sample down a little bit to favor ground over sky
vec3 c = texture(diffuseRect, tc).rgb + texture(emissiveRect, tc).rgb;
float L = lum(c);
-
frag_color = vec4(L);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
index ae6bdbba95..de766d6bc7 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
@@ -105,29 +105,21 @@ vec3 toneMapACES_Hill(vec3 color)
uniform float exposure;
uniform float gamma;
+vec3 legacy_adjust_post(vec3 c);
+
vec3 toneMap(vec3 color, float gs)
{
float exp_scale = texture(exposureMap, vec2(0.5,0.5)).r;
color *= exposure * exp_scale * gs;
-#ifdef TONEMAP_ACES_NARKOWICZ
- color = toneMapACES_Narkowicz(color);
-#endif
-
-#ifdef TONEMAP_ACES_HILL
color = toneMapACES_Hill(color);
-#endif
-#ifdef TONEMAP_ACES_HILL_EXPOSURE_BOOST
- // boost exposure as discussed in https://github.com/mrdoob/three.js/pull/19621
- // this factor is based on the exposure correction of Krzysztof Narkowicz in his
- // implemetation of ACES tone mapping
- color *= 1.0/0.6;
- color = toneMapACES_Hill(color);
-#endif
+ color = linear_to_srgb(color);
- return linear_to_srgb(color);
+ color = legacy_adjust_post(color);
+
+ return color;
}
//===============================================================
@@ -181,7 +173,7 @@ vec3 legacyGamma(vec3 color)
float legacyGammaApprox()
{
- //TODO -- figure out how to plumb this in as a uniform
+ //TODO -- figure out how to plumb this in as a uniform
float c = 0.5;
float gc = 1.0-pow(c, gamma);