Skip to content

Commit 634a02b

Browse files
committed
Apply exposure even when tonemapping is off
Multiply the pixel color by r_toneMappingExposure even when tone mapping is disabled. For the next release the cvar should be renamed to reflect its separation from tone mapping. Fixes #1628.
1 parent 25f9368 commit 634a02b

3 files changed

Lines changed: 7 additions & 4 deletions

File tree

src/engine/renderer/glsl_source/cameraEffects_fp.glsl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,11 @@ void main()
8888
convertToSRGB( color.rgb );
8989
}
9090

91+
color.rgb *= u_TonemapExposure;
92+
9193
#if defined(r_highPrecisionRendering) && defined(HAVE_ARB_texture_float)
9294
if( u_Tonemap ) {
93-
color.rgb = TonemapLottes( color.rgb * u_TonemapExposure );
95+
color.rgb = TonemapLottes( color.rgb );
9496
}
9597
#endif
9698

src/engine/renderer/tr_backend.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1737,14 +1737,14 @@ void RB_CameraPostFX() {
17371737
gl_cameraEffectsShader->SetUniform_InverseGamma( 1.0 / r_gamma->value );
17381738

17391739
gl_cameraEffectsShader->SetUniform_SRGB( tr.worldLinearizeTexture );
1740+
gl_cameraEffectsShader->SetUniform_TonemapExposure( r_toneMappingExposure.Get() );
17401741

17411742
const bool tonemap = r_toneMapping.Get() && r_highPrecisionRendering.Get() && glConfig.textureFloatAvailable;
17421743
if ( tonemap ) {
17431744
vec4_t tonemapParms { r_toneMappingContrast.Get(), r_toneMappingHighlightsCompressionSpeed.Get() };
17441745
ComputeTonemapParams( tonemapParms[0], tonemapParms[1], r_toneMappingHDRMax.Get(),
17451746
r_toneMappingDarkAreaPointHDR.Get(), r_toneMappingDarkAreaPointLDR.Get(), tonemapParms[2], tonemapParms[3] );
17461747
gl_cameraEffectsShader->SetUniform_TonemapParms( tonemapParms );
1747-
gl_cameraEffectsShader->SetUniform_TonemapExposure( r_toneMappingExposure.Get() );
17481748
}
17491749
gl_cameraEffectsShader->SetUniform_Tonemap( tonemap );
17501750

@@ -2889,14 +2889,14 @@ static void SetFrameUniforms() {
28892889

28902890
globalUBOProxy->SetUniform_ColorModulate( tr.viewParms.gradingWeights );
28912891
globalUBOProxy->SetUniform_InverseGamma( 1.0f / r_gamma->value );
2892+
globalUBOProxy->SetUniform_TonemapExposure( r_toneMappingExposure.Get() );
28922893

28932894
const bool tonemap = r_toneMapping.Get() && r_highPrecisionRendering.Get() && glConfig.textureFloatAvailable;
28942895
if ( tonemap ) {
28952896
vec4_t tonemapParms{ r_toneMappingContrast.Get(), r_toneMappingHighlightsCompressionSpeed.Get() };
28962897
ComputeTonemapParams( tonemapParms[0], tonemapParms[1], r_toneMappingHDRMax.Get(),
28972898
r_toneMappingDarkAreaPointHDR.Get(), r_toneMappingDarkAreaPointLDR.Get(), tonemapParms[2], tonemapParms[3] );
28982899
globalUBOProxy->SetUniform_TonemapParms( tonemapParms );
2899-
globalUBOProxy->SetUniform_TonemapExposure( r_toneMappingExposure.Get() );
29002900
}
29012901
globalUBOProxy->SetUniform_Tonemap( tonemap );
29022902

src/engine/renderer/tr_init.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,9 @@ Cvar::Cvar<int> r_rendererAPI( "r_rendererAPI", "Renderer API: 0: OpenGL, 1: Vul
186186

187187
Cvar::Cvar<bool> r_toneMapping(
188188
"r_toneMapping", "Use HDR->LDR tonemapping", Cvar::NONE, true );
189+
// TODO(0.56): rename because it can be used without tone mapping now
189190
Cvar::Cvar<float> r_toneMappingExposure(
190-
"r_toneMappingExposure", "Tonemap exposure", Cvar::NONE, 1.0f );
191+
"r_toneMappingExposure", "Exposure (brightness adjustment)", Cvar::NONE, 1.0f );
191192
Cvar::Range<Cvar::Cvar<float>> r_toneMappingContrast(
192193
"r_toneMappingContrast", "Makes dark areas light up faster",
193194
Cvar::NONE, 1.6f, 1.0f, 10.0f );

0 commit comments

Comments
 (0)