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

