I've tested the demo. It seems like the extra shadow is caused by the "over" optimized bounding boxes in shadow map rendering.
Because the bounding box contains only caster objects, receiver objects' shader (fragLighting.glsl) could use fragments outside of the current tile.
Removing the SceneNodeFlags::NoCastShadow in the "Find post-projective space AABB of all objects in frustum" and "Find AABB of lit geometry" section in egRendererBase.cpp
solved the problem but the shadows quality is much worse this way.
In the current implamentation of updateShadowMap AFAICS maxDist could be very large if large objects are used. I think it could be maximized to camera's farplane.
Instead of removing the flags a better solution could be to use sampler2DArrayShadow instead of sampler2DShadow in fragLighting.glsl to avoid using fragments outside of the current tile like in this:
http://developer.download.nvidia.com/SD ... w_maps.pdfOr use a slower map based selection:
http://msdn.microsoft.com/en-us/library ... 07(v=vs.85).aspx
An extremely simple solution (I've used in our game)
Instead of computing minDist/maxDist we used fixed values. This way shadow quality is more consistent. But this is not optimal and needs hand tune for different scenes.