[Hearn & Baker: p. 447-453. Foley & van Dam: p. 239-242]
View Volumes
View volumes are used for:
- clipping objects which will not project onto the image
- restricting the domain of z for visibility calculations
A perspective view volume:
An orthographic view volume:

Clipping operations could be carried out directly based upon the view
volumes defined, but is simpler using a canonical view volume. The
coordinate system is referred to as the normalized device coordinate
system or NDCS.
OpenGL Canonical View Volume

The transformation from VCS to NDCS can be
conveniently viewed as part of the projection transformation, as we shall
see shortly.

Viewport Transformation
- NDCS to DCS
- simple translate and scale