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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend