Wait, there’s more!
Perspective transformation can also
- map rectangle in the image plane to the viewport
- specify near and far clipping planes
- instead of mapping z to d, transform z between znear and zfar on to a fixed range
- used for z-buffer hidden surface removal
- specify field-of-view (fov) angle
- off-axis projection gets included here; amounts to a shear
OpenGL’s glFrustum and gluPerspective do these, see man pages for the matrices