refactor shadow camera; shader opt