Browse Source

Fix regression with shadows when light range is 0 or close

Florent Guiocheau 7 months ago
parent
commit
c9632d0eb6
1 changed files with 2 additions and 2 deletions
  1. 2 2
      servers/rendering/renderer_scene_cull.cpp

+ 2 - 2
servers/rendering/renderer_scene_cull.cpp

@@ -2510,7 +2510,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons
 				}
 
 				real_t radius = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_RANGE);
-				real_t z_near = 0.005f;
+				real_t z_near = MIN(0.005f, radius);
 				Projection cm;
 				cm.set_perspective(90, 1, z_near, radius);
 
@@ -2600,7 +2600,7 @@ bool RendererSceneCull::_light_instance_update_shadow(Instance *p_instance, cons
 
 			real_t radius = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_RANGE);
 			real_t angle = RSG::light_storage->light_get_param(p_instance->base, RS::LIGHT_PARAM_SPOT_ANGLE);
-			real_t z_near = 0.005f;
+			real_t z_near = MIN(0.005f, radius);
 
 			Projection cm;
 			cm.set_perspective(angle * 2.0, 1.0, z_near, radius);