diff options
author | clayjohn <claynjohn@gmail.com> | 2022-09-23 11:43:27 -0700 |
---|---|---|
committer | clayjohn <claynjohn@gmail.com> | 2022-09-23 11:46:40 -0700 |
commit | fe69fedc1aebf6998488f03f98ea2383c986d3d8 (patch) | |
tree | c6e2eed3da4956eef9a83bb237b69eafa0ac1d41 /servers/rendering | |
parent | f74491fdee9bc2d68668137fbacd8f3a7e7e8df7 (diff) |
Move deband to end of tonemapping.
This avoids artifacts when using adjustments and color correction
Diffstat (limited to 'servers/rendering')
-rw-r--r-- | servers/rendering/renderer_rd/shaders/effects/tonemap.glsl | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/servers/rendering/renderer_rd/shaders/effects/tonemap.glsl b/servers/rendering/renderer_rd/shaders/effects/tonemap.glsl index e459756c6a..a1836e3455 100644 --- a/servers/rendering/renderer_rd/shaders/effects/tonemap.glsl +++ b/servers/rendering/renderer_rd/shaders/effects/tonemap.glsl @@ -462,12 +462,6 @@ void main() { } #endif - if (params.use_debanding) { - // For best results, debanding should be done before tonemapping. - // Otherwise, we're adding noise to an already-quantized image. - color.rgb += screen_space_dither(gl_FragCoord.xy); - } - color.rgb = apply_tonemapping(color.rgb, params.white); color.rgb = linear_to_srgb(color.rgb); // regular linear -> SRGB conversion @@ -498,5 +492,11 @@ void main() { color.rgb = apply_color_correction(color.rgb); } + if (params.use_debanding) { + // Debanding should be done at the end of tonemapping, but before writing to the LDR buffer. + // Otherwise, we're adding noise to an already-quantized image. + color.rgb += screen_space_dither(gl_FragCoord.xy); + } + frag_color = color; } |