From 703004f830f39adcde9b9565f1aa49d1b10e8d27 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Mon, 16 Jun 2014 10:22:26 -0300 Subject: More 3D Work -=-=-=-=-=- -ESM Shadow Mapping for softer and less glitchy shadows -HDR Pipeline (convert to Linear on texture import, convert to SRGB at the end) -Fix to xml parse bug --- servers/visual/visual_server_raster.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'servers/visual/visual_server_raster.cpp') diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp index 519e697ab..8f1d44418 100644 --- a/servers/visual/visual_server_raster.cpp +++ b/servers/visual/visual_server_raster.cpp @@ -3970,6 +3970,8 @@ void VisualServerRaster::_light_instance_update_pssm_shadow(Instance *p_light,Sc //float cull_max=p_cull_range.max; + bool overlap = rasterizer->light_instance_get_pssm_shadow_overlap(p_light->light_info->instance); + float cull_min=p_camera->znear; float cull_max=p_camera->zfar; float max_dist = rasterizer->light_directional_get_shadow_param(p_light->base_rid,VS::LIGHT_DIRECTIONAL_SHADOW_PARAM_MAX_DISTANCE); @@ -3999,7 +4001,7 @@ void VisualServerRaster::_light_instance_update_pssm_shadow(Instance *p_light,Sc camera_matrix.set_orthogonal( p_camera->size, viewport_rect.width / (float)viewport_rect.height, - distances[i], + distances[(i==0 || !overlap )?i:i-1], distances[i+1], p_camera->vaspect @@ -4011,7 +4013,7 @@ void VisualServerRaster::_light_instance_update_pssm_shadow(Instance *p_light,Sc camera_matrix.set_perspective( p_camera->fov, viewport_rect.width / (float)viewport_rect.height, - distances[i], + distances[(i==0 || !overlap )?i:i-1], distances[i+1], p_camera->vaspect -- cgit v1.2.3-70-g09d2