3D Viewing
       


 
  Basic Case Projections and the Canonical View Volume
Let's look at all of these steps again:   So the final transformation is:
Nper = Sc * SH * T(-PRP) * R * T(-VRP)
After the transfomations, the bounds of the view volume are:
             
How To Implement 3D Perspective Viewing
 
  • Reminder about Spaces

  •      
  • Window to Viewport Transformation
  •  Use the size of the window given in the input file and the
    drawing area on the Edge display to calculate the size of the viewport:
     
            1) Calculate ratio = (wumax-wumin) / (wvmax-wvmin)
     
            a) This is now used to get the height and width of the
                    viewport, knowing that the size of the drawing area is
                    600x500 (600/500 = 1.2) -- assumes a 50 pixel blank border.

            b) If ratio > 1.2 then

    width = 600, height = 600 / ratio
             Else
    height = 500, width = 500*ratio.
            c) Given this height and width, calculate viewport
            boundaries Umin, Umax, Vmin, and Vmax as follows:
     
                    Umin = 450 - width/2
                    Umax = 450 + width/2
                    Vmin = 300 - height/2
                    Vmax = 300 + height/2
     
     
     2) The ``new window'' in the window to viewport transformation is the transformed window on the projection plane:
    xmin = zproj,
    xmax = -zproj,
    ymin = zproj,
    ymax = -zproj.
     The viewport is specified by the above calculated Umin,Umax, Vmin, andVmax.


     
  • The Order of Operations:

  •    

     
    Example Wireframe Perspective Viewing
     



     
     

     

    Note: Most of the figures in this chapter are scanned from and copyrighted in Introduction to Computer Graphics by Foley, Van Dam, Feiner,
    Hughes, and Phillips, Addison Wesley 1994.