Lect8 viewing in3d&transformation


Published on

created by Sudipta mandal

  • Be the first to comment

Lect8 viewing in3d&transformation

  1. 1. Sudipta Mondal Computer Graphics 7: Transformation & Viewing in 3-D
  2. 2. 2 of 23 ImagestakenfromHearn&Baker,“ComputerGraphicswithOpenGL”(2004) 3-D Coordinate Spaces Remember what we mean by a 3-D coordinate space x axis y axis z axis P y z x Right-Hand Reference System
  3. 3. 3 of 23 Translations In 3-D To translate a point in three dimensions by dx, dy and dz simply calculate the new points as follows: x’ = x + dx y’ = y + dy z’ = z + dz (x’, y’, z’) (x, y, z) Translated Position ImagestakenfromHearn&Baker,“ComputerGraphicswithOpenGL”(2004)
  4. 4. 4 of 23 Scaling In 3-D To sale a point in three dimensions by sx, sy and sz simply calculate the new points as follows: x’ = sx*x y’ = sy*y z’ = sz*z (x, y, z) Scaled Position (x’, y’, z’) ImagestakenfromHearn&Baker,“ComputerGraphicswithOpenGL”(2004)
  5. 5. 5 of 23 Rotations In 3-D When we performed rotations in two dimensions we only had the choice of rotating about the z axis In the case of three dimensions we have more options – Rotate about x – pitch – Rotate about y – yaw – Rotate about z - roll
  6. 6. 6 of 23 ImagestakenfromHearn&Baker,“ComputerGraphicswithOpenGL”(2004) Rotations In 3-D (cont…) x’= x·cosθ - y·sinθ y’= x·sinθ + y·cosθ z’= z x’= x y’= y·cosθ - z·sinθ z’= y·sinθ + z·cosθ x’= z·sinθ + x·cosθ y’= y z’= z·cosθ - x·sinθ The equations for the three kinds of rotations in 3-D are as follows:
  7. 7. 7 of 23 Homogeneous Coordinates In 3-D Similar to the 2-D situation we can use homogeneous coordinates for 3-D transformations - 4 coordinate column vector All transformations can then be represented as matrices ú ú ú ú û ù ê ê ê ê ë é 1 z y x x axis y axis z axis P y z xP(x, y, z) =
  8. 8. 8 of 23 3D Transformation Matrices ú ú ú ú û ù ê ê ê ê ë é 1000 100 010 001 dz dy dx ú ú ú ú û ù ê ê ê ê ë é 1000 000 000 000 z y x s s s ú ú ú ú û ù ê ê ê ê ë é - 1000 0cos0sin 0010 0sin0cos qq qq Translation by dx, dy, dz Scaling by sx, sy, sz ú ú ú ú û ù ê ê ê ê ë é - 1000 0cossin0 0sincos0 0001 qq qq Rotate About X-Axis ú ú ú ú û ù ê ê ê ê ë é - 1000 0100 00cossin 00sincos qq qq Rotate About Y-Axis Rotate About Z-Axis
  9. 9. 9 of 23 Remember The Big Idea ImagestakenfromHearn&Baker,“ComputerGraphicswithOpenGL”(2004)
  10. 10. 10 of 23 What Are Projections? Our 3-D scenes are all specified in 3-D world coordinates To display these we need to generate a 2-D image - project objects onto a picture plane So how do we figure out these projections? Picture Plane Objects in World Space
  11. 11. 11 of 23 Converting From 3-D To 2-D Projection is just one part of the process of converting from 3-D world coordinates to a 2-D image Clip against view volume Project onto projection plane Transform to 2-D device coordinates 3-D world coordinate output primitives 2-D device coordinates
  12. 12. 12 of 23 Types Of Projections There are two broad classes of projection: – Parallel: Typically used for architectural and engineering drawings – Perspective: Realistic looking and used in computer graphics Perspective ProjectionParallel Projection
  13. 13. 13 of 23 Types Of Projections (cont…) For anyone who did engineering or technical drawing
  14. 14. 14 of 23 Parallel Projections Some examples of parallel projections Orthographic Projection Isometric Projection
  15. 15. 15 of 23 Isometric Projections Isometric projections have been used in computer games from the very early days of the industry up to today Q*Bert Sim City Virtual Magic Kingdom
  16. 16. 16 of 23 Perspective Projections Perspective projections are much more realistic than parallel projections
  17. 17. 17 of 23 Perspective Projections There are a number of different kinds of perspective views The most common are one-point and two point perspectives ImagestakenfromHearn&Baker,“ComputerGraphicswithOpenGL”(2004) One Point Perspective Projection Two-Point Perspective Projection
  18. 18. 18 of 23 Elements Of A Perspective Projection Virtual Camera
  19. 19. 19 of 23 The Up And Look Vectors The look vector indicates the direction in which the camera is pointing The up vector determines how the camera is rotated For example, is the camera held vertically or horizontally Up vector Look vector Position Projection of up vector