The next transformation, performs the perspective projection as described in Section 3.4; however, we must explain how it is unnaturally forced into a 4 by 4 matrix. We also want the result to be in a canonical form that appears to be unitless, which is again motivated by industrial needs. Therefore, is called the *canonical view transform*. Figure 3.18 shows a *viewing frustum*, which is based on the four corners of a rectangular *virtual screen*. At and lie a *near plane* and *far plane*, respectively. Note that for these cases because the axis points in the opposite direction. The virtual screen is contained in the near plane. The perspective projection should place all of the points inside of the frustum onto a virtual screen that is centered in the near plane. This implies using (3.40).

We now want to reproduce (3.40) using a matrix. Consider the result of applying the following matrix multiplication:

In the first two coordinates, we obtain the numerator of (3.40). The nonlinear part of (3.40) is the factor. To handle this, the fourth coordinate is used to represent , rather than as in the case of . From this point onward, the resulting 4D vector is interpreted as a 3D vector that is scaled by dividing out its fourth component. For example, is interpreted as

(3.43) |

Thus, the result from (3.42) is interpreted as

(3.44) |

in which the first two coordinates match (3.42) with , and the third coordinate is the location of the virtual screen along the axis.

Steven M LaValle 2020-11-11