better perspective approximation