general spotlight with shadow maps