Skip to content

Commit d6f981f

Browse files
committed
Fix tonemapping enablement regression
1 parent 4cfabd4 commit d6f981f

File tree

2 files changed

+27
-21
lines changed

2 files changed

+27
-21
lines changed

src/engine/renderer/gl_shader.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@ struct addedExtension_t {
419419
static const std::vector<addedExtension_t> fragmentVertexAddedExtensions = {
420420
{ glConfig2.gpuShader4Available, 130, "EXT_gpu_shader4" },
421421
{ glConfig2.gpuShader5Available, 400, "ARB_gpu_shader5" },
422+
{ glConfig2.textureFloatAvailable, 130, "ARB_texture_float" },
422423
{ glConfig2.textureGatherAvailable, 400, "ARB_texture_gather" },
423424
{ glConfig2.textureIntegerAvailable, 0, "EXT_texture_integer" },
424425
{ glConfig2.textureRGAvailable, 0, "ARB_texture_rg" },
@@ -866,6 +867,10 @@ static std::string GenEngineConstants() {
866867
AddDefine( str, "r_colorGrading", 1 );
867868
}
868869

870+
if ( r_highPrecisionRendering.Get() ) {
871+
AddDefine( str, "r_highPrecisionRendering", 1 );
872+
}
873+
869874
return str;
870875
}
871876

src/engine/renderer/glsl_source/cameraEffects_fp.glsl

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,44 +25,45 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2525
uniform sampler2D u_CurrentMap;
2626

2727
#if defined(r_colorGrading)
28-
uniform sampler3D u_ColorMap3D;
28+
uniform sampler3D u_ColorMap3D;
2929
#endif
3030

31-
uniform vec4 u_ColorModulate;
32-
uniform float u_GlobalLightFactor; // 1 / tr.identityLight
33-
uniform float u_InverseGamma;
31+
uniform vec4 u_ColorModulate;
32+
uniform float u_GlobalLightFactor; // 1 / tr.identityLight
33+
uniform float u_InverseGamma;
3434

35-
IN(smooth) vec2 var_TexCoords;
35+
IN(smooth) vec2 var_TexCoords;
3636

3737
DECLARE_OUTPUT(vec4)
3838

3939
// Tone mapping is not available when high-precision float framebuffer isn't enabled or supported.
4040
#if defined(r_highPrecisionRendering) && defined(HAVE_ARB_texture_float)
41-
/* x: contrast
42-
y: highlightsCompressionSpeed
43-
z: shoulderClip
44-
w: highlightsCompression */
45-
uniform bool u_Tonemap;
46-
uniform vec4 u_TonemapParms;
47-
uniform float u_TonemapExposure;
48-
49-
vec3 TonemapLottes( vec3 color ) {
50-
// Lottes 2016, "Advanced Techniques and Optimization of HDR Color Pipelines"
51-
return pow( color, vec3( u_TonemapParms[0] ) )
52-
/ ( pow( color, vec3( u_TonemapParms[0] * u_TonemapParms[1] ) ) * u_TonemapParms[2] + u_TonemapParms[3] );
53-
}
41+
/* x: contrast
42+
y: highlightsCompressionSpeed
43+
z: shoulderClip
44+
w: highlightsCompression */
45+
uniform bool u_Tonemap;
46+
uniform vec4 u_TonemapParms;
47+
uniform float u_TonemapExposure;
48+
49+
vec3 TonemapLottes( vec3 color ) {
50+
// Lottes 2016, "Advanced Techniques and Optimization of HDR Color Pipelines"
51+
return pow( color, vec3( u_TonemapParms[0] ) )
52+
/ ( pow( color, vec3( u_TonemapParms[0] * u_TonemapParms[1] ) ) * u_TonemapParms[2] + u_TonemapParms[3] );
53+
}
5454
#endif
5555

56-
void main()
57-
{
56+
void main() {
5857
// calculate the screen texcoord in the 0.0 to 1.0 range
5958
vec2 st = gl_FragCoord.st / r_FBufSize;
6059

6160
vec4 color = texture2D(u_CurrentMap, st);
6261
color *= u_GlobalLightFactor;
6362

6463
#if defined(r_highPrecisionRendering) && defined(HAVE_ARB_texture_float)
65-
color.rgb = TonemapLottes( color.rgb * u_TonemapExposure );
64+
if( u_Tonemap ) {
65+
color.rgb = TonemapLottes( color.rgb * u_TonemapExposure );
66+
}
6667
#endif
6768

6869
color.rgb = clamp( color.rgb, vec3( 0.0f ), vec3( 1.0f ) );

0 commit comments

Comments
 (0)