Mapping Viewing Frustrum To Clipping Space

60 Views Asked by At

I'm trying to understand the kind of math used in 3D graphics, like OpenGL or WebGL. I read this article, which describes how to transform the viewing frustrum to the clipping space (defined as $[-1, 1]^3$). They say

We could easily do a linear mapping between the range (-near,-far) to (-1,+1).

which I don't fully understand, my intuition is that it will be always non-linear (except in some edge cases, where the frustrum is degenerate).

My reasoning would be that the viewing frustrum contains a projective frame, e.g. those $5$ corners in blue circles, as no $4$ of them lie on some $2$-dimensional affine subspace:

So, wouldn't the the map from the viewing frustrum to the clipping space be uniquely defined as homography from $\mathbf{RP}^3$ to $\mathbf{RP}^3$ by those $5$ values alone? And since it was demonstrated that there exists a solution which isn't a linear map on the $z$-axis, wouldn't that hold for all possible such transformations?