more improvements on shadow mapping