viewing 1
play

Viewing 1 http://www.ugrad.cs.ubc.ca/~cs314/Vjan2016 Viewing 2 - PowerPoint PPT Presentation

University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016 Tamara Munzner Viewing 1 http://www.ugrad.cs.ubc.ca/~cs314/Vjan2016 Viewing 2 Using Transformations three ways modelling transforms place objects within scene


  1. University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016 Tamara Munzner Viewing 1 http://www.ugrad.cs.ubc.ca/~cs314/Vjan2016

  2. Viewing 2

  3. Using Transformations • three ways • modelling transforms • place objects within scene (shared world) • affine transformations • viewing transforms • place camera • rigid body transformations: rotate, translate • projection transforms • change type of camera • projective transformation 3

  4. Rendering Pipeline Scene graph Object geometry Modelling Transforms Viewing Transform Projection Transform 4

  5. Rendering Pipeline • result Scene graph • all vertices of scene in shared Object geometry 3D world coordinate system Modelling Transforms Viewing Transform Projection Transform 5

  6. Rendering Pipeline • result Scene graph • scene vertices in 3D view Object geometry (camera) coordinate system Modelling Transforms Viewing Transform Projection Transform 6

  7. Rendering Pipeline • result Scene graph • 2D screen coordinates of Object geometry clipped vertices Modelling Transforms Viewing Transform Projection Transform 7

  8. Viewing and Projection • need to get from 3D world to 2D image • projection: geometric abstraction • what eyes or cameras do • two pieces • viewing transform: • where is the camera, what is it pointing at? • perspective transform: 3D to 2D • flatten to image 8

  9. Coordinate Systems • result of a transformation • names • convenience • animal: leg, head, tail • standard conventions in graphics pipeline • object/modelling • world • camera/viewing/eye • screen/window • raster/device 9

  10. Projective Rendering Pipeline object world viewing O2W W2V V2C VCS WCS OCS projection modeling viewing transformation transformation transformation clipping C2N CCS OCS - object/model coordinate system perspective WCS - world coordinate system normalized divide device VCS - viewing/camera/eye coordinate N2D system NDCS viewport CCS - clipping coordinate system transformation NDCS - normalized device coordinate device system DCS DCS - device/display/screen coordinate system 10

  11. Viewing Transformation y image VCS plane z OCS z y Peye y x x WCS object world viewing OCS WCS VCS modeling viewing transformation transformation M mod M cam modelview matrix 11

  12. Basic Viewing • starting spot - GL • camera at world origin • probably inside an object • y axis is up • looking down negative z axis • why? RHS with x horizontal, y vertical, z out of screen • translate backward so scene is visible • move distance d = focal length 12

  13. Convenient Camera Motion • rotate/translate/scale versus • eye point, gaze/lookat direction, up vector • lookAt(ex,ey,ez,lx,ly,lz,ux,uy,uz) 13

  14. Convenient Camera Motion • rotate/translate/scale versus • eye point, gaze/lookat direction, up vector y lookat x Pref WCS view up z eye Peye 14

  15. Placing Camera in World Coords: V2W • treat camera as if it’s just an object • translate from origin to eye • rotate view vector ( lookat – eye ) to w axis • rotate around w to bring up into vw -plane y lookat x Pref WCS view v VCS up z eye Peye u w 15

  16. Deriving V2W Transformation 1 0 0 ex     0 1 0 ey • translate origin to eye   T =   0 0 1 ez   0 0 0 1   y lookat x Pref WCS view v VCS up z eye Peye u 16 w

  17. Deriving V2W Transformation • rotate view vector ( lookat – eye ) to w axis • w : normalized opposite of view/gaze vector g g = − g w = − ˆ g y lookat x Pref WCS view v VCS up z eye Peye u 17 w

  18. Deriving V2W Transformation • rotate around w to bring up into vw -plane • u should be perpendicular to vw -plane, thus perpendicular to w and up vector t • v should be perpendicular to u and w u = t × w v = w × u t × w y lookat x Pref WCS view v VCS up z eye Peye u 18 w

  19. Deriving V2W Transformation • rotate from WCS xyz into uvw coordinate system with matrix that has columns u , v , w u = t × w g = − g w = − ˆ v = w × u t × w g 1 0 0 ex u x v x w x 0         0 1 0 ey u y v y w y 0 M V2W =TR     R = T = u z v z w z 0   0 0 1 ez       0 0 0 1 0 0 0 1     • reminder: rotate from uvw to xyz coord sys with matrix M that has columns u,v,w 19

  20. V2W vs. W2V u x v x w x 0   1 0 0 ex       u y v y w y 0 0 1 0 ey   R =   • M V2W =TR T = u z v z w z 0     0 0 1 ez     0 0 0 1   0 0 0 1   • we derived position of camera as object in world • invert for lookAt: go from world to camera! • M W2V =(M V2W ) -1 = R -1 T -1 u x u y u z 0 1 0 0 − ex         0 1 0 − ey v x v y v z 0 R − 1 = T − 1 =     w x w y w z 0   0 0 1 − ez       0 0 0 1 0 0 0 1     • inverse is transpose for orthonormal matrices • inverse is negative for translations 20

  21. V2W vs. W2V • M W2V =(M V2W ) -1 = R -1 T -1       u x u y u z 0 1 0 0 − e x u x u y u z − e • u       v x v y v z 0 0 1 0 − e y v x v y v z − e • v       M world 2 view = =  w x w y w z 0   0 0 1 − e z   w x w y w z − e • w        0 0 0 1 0 0 0 1 0 0 0 1         u x u y u z − e x ∗ u x + − e y ∗ u y + − e z ∗ u z   v x v y v z − e x ∗ v x + − e y ∗ v y + − e z ∗ v z   M W 2 V =  w x w y w z − e x ∗ w x + − e y ∗ w y + − e z ∗ w z    0 0 0 1   21

  22. Moving the Camera or the World? • two equivalent operations • move camera one way vs. move world other way • example • initial GL camera: at origin, looking along -z axis • create a unit square parallel to camera at z = -10 • translate in z by 3 possible in two ways • camera moves to z = -3 • Note GL models viewing in left-hand coordinates • camera stays put, but world moves to -7 • resulting image same either way • possible difference: are lights specified in world or view coordinates? 22

  23. World vs. Camera Coordinates Example a = (1,1) W C2 b = (1,1) C1 = (5,3) W c c = (1,1) C2 = (1,3) C1 = (5,5) W b a C1 W 23

Recommend


More recommend