Page 159 - Computer Graphics Handout
P. 159

29
          which will form the projection matrix N .
          Although mathematically we get a parallel view by moving the camera to infinity, because the projectors are parallel, we can slide
          this camera in the direction of projection without changing the projection. Consequently, it is helpful to think of an orthogonal
          camera located initially at the origin in camera coordinates with the view volume determined by
































          x =±1,
          y =±1,
          z =±1
          as the default behavior. Equivalently, we are applying an identity projection matrix for N. We will derive a nonidentity matrix N using
          translation and scaling that will transform vertices in camera coordinates to fit inside the default view volume, a process called
          projection normalization. This matrix is what will be produced by Ortho. Note that we are forced to take this approach because the
          final projection carried out by the GPU is fixed. Nevertheless, the normalization process is efficient and will allow us to carry out
          parallel and perspective projections with the same pipeline.

          4.4.3 Projection Normalization
          When we introduced projection in Chapter 1 and looked at classical projection earlier in this chapter, we viewed it as a technique
          that took the specification of points in three dimensions and mapped them to points on a two-dimensional projection surface. Such
          a transformation is not invertible, because all points along a projector map into the same point on the projection surface.


















          29  Users of Microsoft Windows may have to change the identifiers near and far because far is a reserved word in Visual C++.

                                                             159
   154   155   156   157   158   159   160   161   162   163   164