Download presentation
Presentation is loading. Please wait.
Published byQuentin McCoy Modified over 9 years ago
1
Computer Graphics Zhen Jiang West Chester University
2
Topics Projection Visibility
3
Projection Film Plane Pinhole Multiple rays of projection
4
Projection Film Plane Pinhole One ray of projection
5
Projection Field of View Film Plane Field of View Pinhole Focal Length
6
Projection Film Plane Field of View Pinhole Focal Length
7
Projection Varying distance to film plane What does this do? Varying distance to film plane What does this do? Film Plane d1d1 Field of View Pinhole d2d2
8
Projection We use –Center of Projection (COP) –Projection Plane We use –Center of Projection (COP) –Projection Plane COP Projection Plane
9
Projection Perspective vs. Orthographic Views Perspective When COP at infinity, Orthographic View
10
Projection One-point Perpective –One Vanishing Point Two-point Perspective –Two Vanishing Points One-point Perpective –One Vanishing Point Two-point Perspective –Two Vanishing Points http://www.sanford-artedventures.com/create/tech_2pt_perspective.html
11
Projection Our camera must model perspective
12
Projection How tall should this bunny be? COP Projection Plane
13
Projection d P (x, y, z)X Z View plane (0,0,0)x’ = ?
14
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?
15
Projection
16
Projection Example: Or, in 3-D coordinates: Example: Or, in 3-D coordinates:
17
Projection Orthographic Camera Projection Orthographic Camera Projection
18
Projection glFrustum – for perspective projections –xmin –xmax –ymin –ymax –near –far glFrustum – for perspective projections –xmin –xmax –ymin –ymax –near –far –Camera looks along –z –min/max need not be symmetric about any axis –near and far planes are parallel to plane z=0 –Camera looks along –z –min/max need not be symmetric about any axis –near and far planes are parallel to plane z=0
19
Projection gluPerspective – for perspective projections –fovy –aspect –near –far gluPerspective – for perspective projections –fovy –aspect –near –far –fovy is the angle between top and bottom of viewing volume –aspect is ratio of width over height –This volume is symmetrical –View plane is parallel to camera –fovy is the angle between top and bottom of viewing volume –aspect is ratio of width over height –This volume is symmetrical –View plane is parallel to camera
20
Projection glOrtho – for orthographic projections –left –right –bottom –top –near –far glOrtho – for orthographic projections –left –right –bottom –top –near –far –(left, bottom) and (right, top) define dimensions of projection plane –near and far used to clip –(left, bottom) and (right, top) define dimensions of projection plane –near and far used to clip
21
Visibility Why might a polygon be invisible? –Polygon outside the field of view –Polygon is backfacing –Polygon is occluded by object(s) nearer the viewpoint For efficiency reasons, we want to avoid spending work on polygons outside field of view or backfacing For efficiency and correctness reasons, we need to know when polygons are occluded Why might a polygon be invisible? –Polygon outside the field of view –Polygon is backfacing –Polygon is occluded by object(s) nearer the viewpoint For efficiency reasons, we want to avoid spending work on polygons outside field of view or backfacing For efficiency and correctness reasons, we need to know when polygons are occluded
22
Visibility Remove polygons entirely outside frustum –Note that this includes polygons “behind” eye (actually behind near plane) Pass through polygons entirely inside frustum Modify remaining polygons to include only portions intersecting view frustum Remove polygons entirely outside frustum –Note that this includes polygons “behind” eye (actually behind near plane) Pass through polygons entirely inside frustum Modify remaining polygons to include only portions intersecting view frustum
23
Visibility Most objects in scene are typically “solid” More rigorously: compact, orientable manifolds –Must not cut through itself –Must have two distinct sides A sphere is orientable since it has two sides, 'inside' and 'outside'. A Mobius strip or a Klein bottle is not orientable –Cannot “walk” from one side to the other A sphere is a closed manifold whereas a plane is not Most objects in scene are typically “solid” More rigorously: compact, orientable manifolds –Must not cut through itself –Must have two distinct sides A sphere is orientable since it has two sides, 'inside' and 'outside'. A Mobius strip or a Klein bottle is not orientable –Cannot “walk” from one side to the other A sphere is a closed manifold whereas a plane is not
24
Visibility For most interesting scenes, some polygons will overlap: To show the correct image, we need to determine which polygons occlude which For most interesting scenes, some polygons will overlap: To show the correct image, we need to determine which polygons occlude which
25
Visibility Simple approach: display the polygons from back to front, “painting over” previous polygons: –Draw blue, then green, then orange Will this work in the general case? Simple approach: display the polygons from back to front, “painting over” previous polygons: –Draw blue, then green, then orange Will this work in the general case?
26
Visibility Intersecting polygons present a problem Even non-intersecting polygons can form a cycle with no valid visibility order: Intersecting polygons present a problem Even non-intersecting polygons can form a cycle with no valid visibility order:
27
Visibility Early visibility algorithms computed the set of visible polygon fragments directly, then showed the fragments to a display:
28
Visibility So, for about a decade (late 60s to late 70s) there was intense interest in finding efficient algorithms for hidden surface removal Examples: –Binary Space-Partition (BSP) Trees http://symbolcraft.com/graphics/bsp –The Z-buffer Algorithm So, for about a decade (late 60s to late 70s) there was intense interest in finding efficient algorithms for hidden surface removal Examples: –Binary Space-Partition (BSP) Trees http://symbolcraft.com/graphics/bsp –The Z-buffer Algorithm
29
Visibility We know how to rasterize polygons into an image discretized into pixels:
30
Visibility What happens if multiple primitives occupy the same pixel on the screen? Which is allowed to paint the pixel?
31
Visibility Simple!!! Easy to implement in hardware Polygons can be processed in arbitrary order Easily handles polygon interpenetration Simple!!! Easy to implement in hardware Polygons can be processed in arbitrary order Easily handles polygon interpenetration
32
Visibility Lots of memory (e.g. 1280x1024x32 bits) –With 16 bits cannot discern millimeter differences in objects at 1 km distance Read-Modify-Write in inner loop requires fast memory Hard to do analysisi –We don’t know which polygon to map pixel back to Shared edges are handled inconsistently –Ordering dependent Hard to simulate translucent polygons –We throw away color of polygons behind closest one Lots of memory (e.g. 1280x1024x32 bits) –With 16 bits cannot discern millimeter differences in objects at 1 km distance Read-Modify-Write in inner loop requires fast memory Hard to do analysisi –We don’t know which polygon to map pixel back to Shared edges are handled inconsistently –Ordering dependent Hard to simulate translucent polygons –We throw away color of polygons behind closest one
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.