Deriving View Orientation and Projection Transformations

The View Orientation Transformation

The model coordinate to eye coordinate transformation is defined by specifying the following in model coordinates: the eye point, E; the center of attention point, C, and the up vector, up. Using the general strategy we just studied (and, in particular using a point whose pre- and post-image we know for step #3), we obtain the result described in this View Orientation Matrix Summary.

Projection Transformations

  1. Recall: Three common types of planar geometric projections
  2. Orthogonal and oblique projections are affine transformations. While perspective is not affine, it is "rational linear" which means it can be encoded in a 4x4 matrix as a projective space transformation yielding a projective space point projectively equivalent to the affine point we want.
  3. The projections must preserve at least the "relative depth" of points. That is, if point Q is nearer the eye than is point R before the projection, then we need to ensure that this same relationship holds after we have performed the projection.
  4. We will derive all projection transformations as the product of two matrices. One encodes the actual projection while preserving relative depth; the other does the window-viewport map into LDS space:
    Mec_lds = Mwv * Mproj
    Mproj is the matrix responsible for encoding the actual projection while preserving relative depth; Mwv handles mapping from eye coordinates to LDS space.
  5. The matrices for planar geometric projections

Stereo

An interesting extension to these derivations (especially as they relate to perspective projections) is consideration of view generation for hardware display devices that have stereo capability. One such installation here at KU is in the Mini-CAVE room in M2SEC.