From 45bc1a379021017a841bc6a2f6afe03c6eb8040f Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Wed, 10 Aug 2022 16:46:26 +0200 Subject: Automatically use negative mipmap LOD bias when TAA and/or FXAA are enabled This improves texture sharpness when TAA and/or FXAA are enabled, without requiring manual user intervention. --- servers/rendering/renderer_rd/renderer_scene_render_rd.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'servers/rendering/renderer_rd') diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index d8499681ad..b8e74683de 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -2459,6 +2459,19 @@ void RendererSceneRenderRD::render_buffers_configure(RID p_render_buffers, RID p p_internal_width = p_width; } + if (p_use_taa) { + // Use negative mipmap LOD bias when TAA is enabled to compensate for loss of sharpness. + // This restores sharpness in still images to be roughly at the same level as without TAA, + // but moving scenes will still be blurrier. + p_texture_mipmap_bias -= 0.5; + } + + if (p_screen_space_aa == RS::VIEWPORT_SCREEN_SPACE_AA_FXAA) { + // Use negative mipmap LOD bias when FXAA is enabled to compensate for loss of sharpness. + // If both TAA and FXAA are enabled, combine their negative LOD biases together. + p_texture_mipmap_bias -= 0.25; + } + material_storage->sampler_rd_configure_custom(p_texture_mipmap_bias); update_uniform_sets(); -- cgit v1.2.3