Download presentation
Presentation is loading. Please wait.
Published byPaulina Leonard Modified over 9 years ago
1
Taxonomy of Projections FVFHP Figure 6.10
2
Taxonomy of Projections
3
Parallel Projection Angel Figure 5.4 Center of projection is at infinity Direction of projection (DOP) same for all pointsDirection of projection (DOP) same for all points Center of projection is at infinity Direction of projection (DOP) same for all pointsDirection of projection (DOP) same for all points DOP View Plane
4
Orthographic Projections Angel Figure 5.5 TopSide Front DOP perpendicular to view plane
5
Oblique Projections H&B DOP not perpendicular to view plane Cavalier (DOP = 45 o ) tan( ) = 1 Cabinet (DOP = 63.4 o ) tan( ) = 2
6
Oblique Parallel-Projection Oblique View VolumeTransformed View Volume
7
Oblique Parallel-Projection Oblique View VolumeTransformed View Volume
8
Transformation Matrix VpVp HB Matrix 7-13
9
Orthographic Projection Simple Orthographic Transformation Original world units are preserved Pixel units are preferredPixel units are preferred Simple Orthographic Transformation Original world units are preserved Pixel units are preferredPixel units are preferred
10
Orthographic: Screen Space Transformation top=20 m bottom=10 m left =10 mright = 20 m (0, 0) (max pix x, max pix y ) (width in pixels) (height in pixels)
11
Orthographic: Screen Space Transformation (Normalization) left, right, top, bottom refer to the viewing frustum in modeling coordinates width and height are in pixel units This matrix scales and translates to accomplish the transition in units left, right, top, bottom refer to the viewing frustum in modeling coordinates width and height are in pixel units This matrix scales and translates to accomplish the transition in units HB Matrix: 7-7
12
Perspective Transformation First discovered by Donatello, Brunelleschi, and DaVinci during Renaissance Objects closer to viewer look larger Parallel lines appear to converge to single point First discovered by Donatello, Brunelleschi, and DaVinci during Renaissance Objects closer to viewer look larger Parallel lines appear to converge to single point
13
Perspective Projection Angel Figure 5.10 3-Point Perspective 2-Point Perspective 1-Point Perspective How many vanishing points?
14
Perspective Projection In the real world, objects exhibit perspective foreshortening: distant objects appear smaller The basic situation: In the real world, objects exhibit perspective foreshortening: distant objects appear smaller The basic situation:
15
Perspective Projection When we do 3-D graphics, we think of the screen as a 2-D window onto the 3-D world: How tall should this bunny be?
16
Perspective Projection The geometry of the situation is that of similar triangles. View from above: What is x’ ? The geometry of the situation is that of similar triangles. View from above: What is x’ ? d P (x, y, z)X Z View plane (0,0,0) x’ = ?
17
Perspective Projection Desired result for a point [x, y, z, 1] T projected onto the view plane: What could a matrix look like to do this? Desired result for a point [x, y, z, 1] T projected onto the view plane: What could a matrix look like to do this?
18
A Perspective Projection Matrix Answer:Answer:
19
Example: Or, in 3-D coordinates: Example:
20
Projection Matrices Now that we can express perspective foreshortening as a matrix, we can compose it onto our other matrices with the usual matrix multiplication End result: a single matrix encapsulating modeling, viewing, and projection transforms Now that we can express perspective foreshortening as a matrix, we can compose it onto our other matrices with the usual matrix multiplication End result: a single matrix encapsulating modeling, viewing, and projection transforms
21
Perspective vs. Parallel Perspective projection +Size varies inversely with distance - looks realistic –Distance and angles are not (in general) preserved –Parallel lines do not (in general) remain parallel Parallel projection +Good for exact measurements +Parallel lines remain parallel –Angles are not (in general) preserved –Less realistic looking Perspective projection +Size varies inversely with distance - looks realistic –Distance and angles are not (in general) preserved –Parallel lines do not (in general) remain parallel Parallel projection +Good for exact measurements +Parallel lines remain parallel –Angles are not (in general) preserved –Less realistic looking
22
Classical Projections Angel Figure 5.3
23
Viewing in OpenGL OpenGL has multiple matrix stacks - transformation functions right- multiply the top of the stack Two most important stacks: GL_MODELVIEW and GL_PROJECTION Points get multiplied by the modelview matrix first, and then the projection matrix GL_MODELVIEW : Object->Camera GL_PROJECTION : Camera->Screen glViewport(0,0,w,h): Screen->Device OpenGL has multiple matrix stacks - transformation functions right- multiply the top of the stack Two most important stacks: GL_MODELVIEW and GL_PROJECTION Points get multiplied by the modelview matrix first, and then the projection matrix GL_MODELVIEW : Object->Camera GL_PROJECTION : Camera->Screen glViewport(0,0,w,h): Screen->Device
24
OpenGL Example void SetUpViewing() { // The viewport isn’t a matrix, it’s just state... glViewport( 0, 0, window_width, window_height ); // Set up camera->screen transformation first glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective( 60, 1, 1, 1000 ); // fov, aspect, near, far // Set up the model->camera transformation glMatrixMode( GL_MODELVIEW ); gluLookAt( 3, 3, 2, // eye point 0, 0, 0, // look at point 0, 0, 1 ); // up vector glRotatef( theta, 0, 0, 1 ); // rotate the model glScalef( zoom, zoom, zoom ); // scale the model }
25
A 3D Scene Notice the presence of the camera, the projection plane, and the world coordinate axes Viewing transformations define how to acquire the image on the projection plane Notice the presence of the camera, the projection plane, and the world coordinate axes Viewing transformations define how to acquire the image on the projection plane
26
Viewing Transformations Create a camera-centered view Camera is at origin Camera is looking along negative z-axis Camera’s ‘up’ is aligned with y-axis Create a camera-centered view Camera is at origin Camera is looking along negative z-axis Camera’s ‘up’ is aligned with y-axis
27
2 Basic Steps Align the two coordinate frames by rotation
28
2 Basic Steps Translate to align origins
29
Creating Camera Coordinate Space Specify a point where the camera is located in world space, the eye point Specify a point in world space that we wish to become the center of view, the lookat point Specify a vector in world space that we wish to point up in camera image, the up vector Intuitive camera movement Specify a point where the camera is located in world space, the eye point Specify a point in world space that we wish to become the center of view, the lookat point Specify a vector in world space that we wish to point up in camera image, the up vector Intuitive camera movement
30
Constructing Viewing Transformation, V Create a vector from eye-point to lookat-point Normalize the vector Desired rotation matrix should map this vector to [0, 0, -1] T Why? Create a vector from eye-point to lookat-point Normalize the vector Desired rotation matrix should map this vector to [0, 0, -1] T Why?
31
Constructing Viewing Transformation, V Construct another important vector from the cross product of the lookat-vector and the vup- vector This vector, when normalized, should align with [1, 0, 0] T Why? Construct another important vector from the cross product of the lookat-vector and the vup- vector This vector, when normalized, should align with [1, 0, 0] T Why?
32
Constructing Viewing Transformation, V One more vector to define… This vector, when normalized, should align with [0, 1, 0] T Now let’s compose the results One more vector to define… This vector, when normalized, should align with [0, 1, 0] T Now let’s compose the results
33
Compositing Vectors to Form V We know the three world axis vectors (x, y, z) We know the three camera axis vectors (r, u, l) Viewing transformation, V, must convert from world to camera coordinate systems We know the three world axis vectors (x, y, z) We know the three camera axis vectors (r, u, l) Viewing transformation, V, must convert from world to camera coordinate systems
34
Compositing Vectors to Form V Remember Each camera axis vector is unit length.Each camera axis vector is unit length. Each camera axis vector is perpendicular to othersEach camera axis vector is perpendicular to others Camera matrix is orthogonal and normalized OrthonormalOrthonormal Therefore, M -1 = M T Remember Each camera axis vector is unit length.Each camera axis vector is unit length. Each camera axis vector is perpendicular to othersEach camera axis vector is perpendicular to others Camera matrix is orthogonal and normalized OrthonormalOrthonormal Therefore, M -1 = M T
35
Compositing Vectors to Form V Therefore, rotation component of viewing transformation is just transpose of computed vectors
36
Compositing Vectors to Form V Translation component too Multiply it through Translation component too Multiply it through
37
Final Viewing Transformation, V To transform vertices, use this matrix: And you get this: To transform vertices, use this matrix: And you get this:
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.