Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Graphics Zhen Jiang West Chester University.

Similar presentations


Presentation on theme: "Computer Graphics Zhen Jiang West Chester University."— Presentation transcript:

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


Download ppt "Computer Graphics Zhen Jiang West Chester University."

Similar presentations


Ads by Google