A lot of perspective projection matrices I've seen look something like this: $$\left [\matrix {1&0&0&0\\0&1&0&0\\0&0&1&0\\0&0&z&0}\right]$$ where $z$ is the z-coordinate of the point.
What I wonder is will this matrix work also? $$\left [\matrix {1&0&0&0\\0& 1&0& 0\\0&0& 1&0\\0&0&{\left(\frac{20}{17}\right)^z}&0}\right]$$
The reason why I think so is because I think foreshortening is exponential in relation to distance. When I implemented this into a custom program, it worked without looking weird.
Edit: Apparently, the second projection will not have a singularity of projection and the first matches the definition better.
I didn't test the second for enough points. For example, the ray from $\left [\matrix {0\\0\\0}\right]$ past $\left [\matrix {1\\1\\1}\right]$ will look weird as it goes to a point then comes back down like it's being sucked into a black hole.
In short, $f(x)=x0.85^z$ (where z is a constant or a function of y or x or both) sometimes has a maximum.