added code for shadow mapping