refactor
perspective projection update
(cherry picked from commit ed0c2fd)