Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/engine/renderer/gl_shader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2834,7 +2834,7 @@ GLShader_cameraEffects::GLShader_cameraEffects() :
u_SRGB( this ),
u_Tonemap( this ),
u_TonemapParms( this ),
u_TonemapExposure( this ),
u_Exposure( this ),
u_InverseGamma( this )
{
}
Expand Down Expand Up @@ -3095,5 +3095,5 @@ GlobalUBOProxy::GlobalUBOProxy() :
u_InverseGamma( this ),
u_Tonemap( this ),
u_TonemapParms( this ),
u_TonemapExposure( this ) {
u_Exposure( this ) {
}
14 changes: 7 additions & 7 deletions src/engine/renderer/gl_shader.h
Original file line number Diff line number Diff line change
Expand Up @@ -2815,15 +2815,15 @@ class u_TonemapParms :
}
};

class u_TonemapExposure :
class u_Exposure :
GLUniform1f {
public:
u_TonemapExposure( GLShader* shader ) :
GLUniform1f( shader, "u_TonemapExposure", FRAME ) {
u_Exposure( GLShader* shader ) :
GLUniform1f( shader, "u_Exposure", FRAME ) {
}

void SetUniform_TonemapExposure( float tonemapExposure ) {
this->SetValue( tonemapExposure );
void SetUniform_Exposure( float exposure ) {
this->SetValue( exposure );
}
};

Expand Down Expand Up @@ -3290,7 +3290,7 @@ class GLShader_cameraEffects :
public u_SRGB,
public u_Tonemap,
public u_TonemapParms,
public u_TonemapExposure,
public u_Exposure,
public u_InverseGamma
{
public:
Expand Down Expand Up @@ -3520,7 +3520,7 @@ class GlobalUBOProxy :
public u_InverseGamma,
public u_Tonemap,
public u_TonemapParms,
public u_TonemapExposure {
public u_Exposure {

public:
GlobalUBOProxy();
Expand Down
6 changes: 4 additions & 2 deletions src/engine/renderer/glsl_source/cameraEffects_fp.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ z: shoulderClip
w: highlightsCompression */
uniform bool u_Tonemap;
uniform vec4 u_TonemapParms;
uniform float u_TonemapExposure;
uniform float u_Exposure;

vec3 TonemapLottes( vec3 color ) {
// Lottes 2016, "Advanced Techniques and Optimization of HDR Color Pipelines"
Expand All @@ -88,9 +88,11 @@ void main()
convertToSRGB( color.rgb );
}

color.rgb *= u_Exposure;

#if defined(r_highPrecisionRendering) && defined(HAVE_ARB_texture_float)
if( u_Tonemap ) {
color.rgb = TonemapLottes( color.rgb * u_TonemapExposure );
color.rgb = TonemapLottes( color.rgb );
}
#endif

Expand Down
4 changes: 2 additions & 2 deletions src/engine/renderer/tr_backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1737,14 +1737,14 @@ void RB_CameraPostFX() {
gl_cameraEffectsShader->SetUniform_InverseGamma( 1.0 / r_gamma->value );

gl_cameraEffectsShader->SetUniform_SRGB( tr.worldLinearizeTexture );
gl_cameraEffectsShader->SetUniform_Exposure( r_toneMappingExposure.Get() );

const bool tonemap = r_toneMapping.Get() && r_highPrecisionRendering.Get() && glConfig.textureFloatAvailable;
if ( tonemap ) {
vec4_t tonemapParms { r_toneMappingContrast.Get(), r_toneMappingHighlightsCompressionSpeed.Get() };
ComputeTonemapParams( tonemapParms[0], tonemapParms[1], r_toneMappingHDRMax.Get(),
r_toneMappingDarkAreaPointHDR.Get(), r_toneMappingDarkAreaPointLDR.Get(), tonemapParms[2], tonemapParms[3] );
gl_cameraEffectsShader->SetUniform_TonemapParms( tonemapParms );
gl_cameraEffectsShader->SetUniform_TonemapExposure( r_toneMappingExposure.Get() );
}
gl_cameraEffectsShader->SetUniform_Tonemap( tonemap );

Expand Down Expand Up @@ -2889,14 +2889,14 @@ static void SetFrameUniforms() {

globalUBOProxy->SetUniform_ColorModulate( tr.viewParms.gradingWeights );
globalUBOProxy->SetUniform_InverseGamma( 1.0f / r_gamma->value );
globalUBOProxy->SetUniform_Exposure( r_toneMappingExposure.Get() );

const bool tonemap = r_toneMapping.Get() && r_highPrecisionRendering.Get() && glConfig.textureFloatAvailable;
if ( tonemap ) {
vec4_t tonemapParms{ r_toneMappingContrast.Get(), r_toneMappingHighlightsCompressionSpeed.Get() };
ComputeTonemapParams( tonemapParms[0], tonemapParms[1], r_toneMappingHDRMax.Get(),
r_toneMappingDarkAreaPointHDR.Get(), r_toneMappingDarkAreaPointLDR.Get(), tonemapParms[2], tonemapParms[3] );
globalUBOProxy->SetUniform_TonemapParms( tonemapParms );
globalUBOProxy->SetUniform_TonemapExposure( r_toneMappingExposure.Get() );
}
globalUBOProxy->SetUniform_Tonemap( tonemap );

Expand Down
3 changes: 2 additions & 1 deletion src/engine/renderer/tr_init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,9 @@ Cvar::Cvar<int> r_rendererAPI( "r_rendererAPI", "Renderer API: 0: OpenGL, 1: Vul

Cvar::Cvar<bool> r_toneMapping(
"r_toneMapping", "Use HDR->LDR tonemapping", Cvar::NONE, true );
// TODO(0.56): rename because it can be used without tone mapping now
Cvar::Cvar<float> r_toneMappingExposure(
"r_toneMappingExposure", "Tonemap exposure", Cvar::NONE, 1.0f );
"r_toneMappingExposure", "exposure (brightness adjustment)", Cvar::NONE, 1.0f );
Cvar::Range<Cvar::Cvar<float>> r_toneMappingContrast(
"r_toneMappingContrast", "Makes dark areas light up faster",
Cvar::NONE, 1.6f, 1.0f, 10.0f );
Expand Down
Loading