Download presentation
Presentation is loading. Please wait.
Published byEsmond Reed Modified over 9 years ago
2
2 COEN 290 - Computer Graphics I Evening’s Goals n Discuss the mathematical transformations that are utilized for computer graphics projection viewing modeling n Describe aspect ratio and its importance n Provide a motivation for homogenous coordinates and their uses
3
3 COEN 290 - Computer Graphics I Mathematical Transformations n Use transformations for moving from one coordinate space to another n The good news only requires multiplication and addition n The bad news its multiplication and addition of matrices
4
4 COEN 290 - Computer Graphics I Mathematical Transformations ( cont. ) n Coordinate spaces we’ll be using model world eye normalized device ( NDC’s ) window screen viewport
5
5 COEN 290 - Computer Graphics I Simplified 2D Transform Pipeline n What if your data is not in viewport coordinates? World Coordinates Date Stock Price Viewport coordinates ???
6
6 COEN 290 - Computer Graphics I Simplified 2D Transform Pipeline ( cont. ) n Need to map world to viewport coordinates n Simple linear transformation linear transformations can be represented by matrices
7
7 COEN 290 - Computer Graphics I Almost, but not quite n The 2x2 matrix isn’t quite enough to do the whole job think about trying to map a point like (10,10) into the (0,0) n Enter … homogenous coordinates add an additional “dimension” to your coordinate vector
8
8 COEN 290 - Computer Graphics I Determining the Matrix Entries n Matrix forms of linear transforms are shorthand for an “line” equation n So what we need is to determine what equations we want to write as matrices
9
9 COEN 290 - Computer Graphics I Mapping World to Viewport Coordinates Viewport coordinates ??? World Coordinates Date Stock Price
10
10 COEN 290 - Computer Graphics I Or as a Matrix n Let then our matrix becomes
11
11 COEN 290 - Computer Graphics I Setting up OpenGL’s 2D world n OpenGL will do this automatically for us gluOrtho2D( xMin, xMax, yMin, yMax ); n However, it doesn’t do it quite as we described first maps world coordinates into normalized device coordinates ( NDC ) then maps from NDC’s to viewport coordinates
12
12 COEN 290 - Computer Graphics I Normalized Device Coordinates n Map each dimension linearly into sometimes mapped to n Simplifies several things clipping –don’t need to know viewport for clipping describes a device independent space –no concerns about resolution, etc. more things which we’ll get to in a minute –very useful when we’re in 3D
13
13 COEN 290 - Computer Graphics I Putting it all together World Coordinates Date Stock Price Date Stock Price NDC Date Stock Price Viewport Coordinates
14
14 COEN 290 - Computer Graphics I Err … something doesn’t look right n Need to match aspect ratio n Aspect ratios of different coordinate spaces need to match
15
15 COEN 290 - Computer Graphics I What’s different for 3D n Add another dimension n Our transformation matrices become 4x4 n More options for our projection transform
16
16 COEN 290 - Computer Graphics I Where we’re at n What our transformation pipeline looks like so far... viewportNDC’sWorld This is really called a projection transform
17
17 COEN 290 - Computer Graphics I Projection Transformations n Map coordinates into NDC’s n Defines our viewing frustum sets the position of our imaging plane n Two types for 3D Orthographic (or parallel) Projection –gluOrtho2D() Perspective Projection
18
18 COEN 290 - Computer Graphics I A Few Definitions First … n A viewing frustum is the region in space in which objects can be seen All of the visible objects in our scene will be in the viewing frustum n The imaging plane is a plane in space onto which we project our scene viewing frustum controls where the imaging plane is located
19
19 COEN 290 - Computer Graphics I Orthographic Projections n Project objects in viewing frustum without distortion good for computer aided engineering and design –preserves angles and relative sizes
20
20 COEN 290 - Computer Graphics I Orthographic Projections ( cont. )
21
21 COEN 290 - Computer Graphics I Defining an Orthographic Projection n Very similar to mapping 2D to NDC’s n Use OpenGL’s glOrtho( l, r, b, t, n, f );
22
22 COEN 290 - Computer Graphics I Perspective Projections n Model how the eye sees objects farther from the eye are smaller n A few assumptions eye is positioned at the world space origin looking down the world -z axis n Clipping plane restrictions
23
23 COEN 290 - Computer Graphics I Perspective Projections ( cont. ) n Based on similar triangles y z n
24
24 COEN 290 - Computer Graphics I Perspective Projections ( cont. ) n Viewing frustum looks like a truncated Egyptian pyramid
25
25 COEN 290 - Computer Graphics I Defining Perspective Projections n Two OpenGL versions glFrustum( l, r, b, t, n, f ); –frustum not necessarily aligned down line of sight –good for simulating peripheral vision gluPerspective ( fovy, aspect, n, f ); –frustum centered down line of sight –more general form –reasonable values: –aspect should match aspect ratio of viewport
26
26 COEN 290 - Computer Graphics I Defining a Perspective Projection glFrustum( l, r, b, t, n, f );
27
27 COEN 290 - Computer Graphics I Defining a Perspective Projection ( cont. ) gluPerspective ( fovy, aspect, n, f ); then use glFrustum()
28
28 COEN 290 - Computer Graphics I Clipping in 3D n Projections transforms make clipping easy n Use your favorite algorithm n Clipping region well defined
29
29 COEN 290 - Computer Graphics I Normalizing Projected Coordinates n w is a scaling factor n Perspective divide divide each coordinate by w maps into NDC’s What about z?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.