From 787a1e006bcedafd6656f732d82fd6c9d5c14c36 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Wed, 15 Jun 2022 22:23:56 +0200 Subject: [PATCH] Fix glow in Mix mode not working correctly when FXAA is enabled Glow must be performed after FXAA to ensure correct appearance. --- .../rendering/renderer_rd/shaders/effects/tonemap.glsl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/servers/rendering/renderer_rd/shaders/effects/tonemap.glsl b/servers/rendering/renderer_rd/shaders/effects/tonemap.glsl index a8ccdea60b4..62a7b0e7d7d 100644 --- a/servers/rendering/renderer_rd/shaders/effects/tonemap.glsl +++ b/servers/rendering/renderer_rd/shaders/effects/tonemap.glsl @@ -448,6 +448,11 @@ void main() { // Early Tonemap & SRGB Conversion #ifndef SUBPASS + if (params.use_fxaa) { + // FXAA must be performed before glow to preserve the "bleed" effect of glow. + color.rgb = do_fxaa(color.rgb, exposure, uv_interp); + } + if (params.use_glow && params.glow_mode == GLOW_MODE_MIX) { vec3 glow = gather_glow(source_glow, uv_interp) * params.luminance_multiplier; if (params.glow_map_strength > 0.001) { @@ -455,10 +460,6 @@ void main() { } color.rgb = mix(color.rgb, glow, params.glow_intensity); } - - if (params.use_fxaa) { - color.rgb = do_fxaa(color.rgb, exposure, uv_interp); - } #endif if (params.use_debanding) {