working version with no deferred rendering and shadow maps