summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-01-08 13:15:00 -0800
committerGraham Linden <graham@lindenlab.com>2019-01-08 13:15:00 -0800
commite13113ab0b5e7aea11feba3947d2bbf7c5699db1 (patch)
treef002e7a45605717a1e76af44dd449f048d487982
parent84bb8e1167fde0ceac4c40bcc2b1841238817097 (diff)
SL-10305 fix post deferred gamma correction to address ALM mismatch with non-ALM lighting.
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl2
-rw-r--r--indra/newview/llsettingsvo.cpp7
2 files changed, 6 insertions, 3 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
index 8791469675..cbc19bbba3 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredGammaCorrect.glsl
@@ -45,7 +45,7 @@ vec3 linear_to_srgb(vec3 cl);
void main()
{
vec4 diff = texture2DRect(diffuseRect, vary_fragcoord);
- diff.rgb = pow(diff.rgb, vec3(display_gamma));
+ diff.rgb = linear_to_srgb(diff.rgb);
frag_color = diff;
}
diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp
index 6b1a0a2b77..e2e7aadb61 100644
--- a/indra/newview/llsettingsvo.cpp
+++ b/indra/newview/llsettingsvo.cpp
@@ -662,7 +662,7 @@ void LLSettingsVOSky::applySpecial(void *ptarget)
{
LLGLSLShader *shader = (LLGLSLShader *)ptarget;
- LLVector4 light_direction = LLEnvironment::instance().getClampedSunNorm();
+ LLVector4 light_direction = LLEnvironment::instance().getClampedLightNorm();
if (shader->mShaderGroup == LLGLSLShader::SG_DEFAULT)
{
@@ -678,8 +678,11 @@ void LLSettingsVOSky::applySpecial(void *ptarget)
shader->uniform4fv(LLShaderMgr::CLOUD_POS_DENSITY1, 1, vect_c_p_d1.mV);
}
+ F32 g = getGamma();
+
shader->uniform1f(LLShaderMgr::SCENE_LIGHT_STRENGTH, mSceneLightStrength);
- shader->uniform4f(LLShaderMgr::GAMMA, getGamma(), 0.0, 0.0, 1.0);
+ shader->uniform4f(LLShaderMgr::GAMMA, g, 0.0, 0.0, 1.0);
+ shader->uniform1f(LLShaderMgr::DISPLAY_GAMMA, g);
}
LLSettingsSky::parammapping_t LLSettingsVOSky::getParameterMap() const