From 4fefd7cddd8b733a19291ceb1d05991471940c93 Mon Sep 17 00:00:00 2001 From: Brian Semrau Date: Tue, 12 Oct 2021 19:16:23 -0400 Subject: Fix several issues with directional shadows - Internally disable blend splits in orthogonal directional shadow mode - Fix soft shadows ignoring fade and blend_splits - Fix soft shadow edge stability --- servers/rendering/renderer_rd/renderer_scene_render_rd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'servers/rendering/renderer_rd/renderer_scene_render_rd.cpp') diff --git a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp index bd8e950e70..d7c0ae1151 100644 --- a/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_render_rd.cpp @@ -3026,7 +3026,7 @@ void RendererSceneRenderRD::_setup_lights(const PagedArray &p_lights, const RS::LightDirectionalShadowMode smode = storage->light_directional_get_shadow_mode(base); int limit = smode == RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL ? 0 : (smode == RS::LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS ? 1 : 3); - light_data.blend_splits = storage->light_directional_get_blend_splits(base); + light_data.blend_splits = (smode != RS::LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL) && storage->light_directional_get_blend_splits(base); for (int j = 0; j < 4; j++) { Rect2 atlas_rect = li->shadow_transform[j].atlas_rect; CameraMatrix matrix = li->shadow_transform[j].camera; -- cgit v1.2.3