Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.

Similar presentations


Presentation on theme: "1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009."— Presentation transcript:

1 1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009

2 2 Today’s topics ■Lines and planes ■Culling °View frustum culling °Back-face culling °Occlusion culling °Hierarchical culling ■Clipping

3 3 What are culling and clipping? ■Culling °Throws away entire objects and primitives that cannot possibly be visible °An important rendering optimization (esp. for large models) ■Clipping °“Clips off” the visible portion of a primitive °Simplifies rasterization °Used to create “cut-away” views of a model

4 4 Culling example ■Power plant model °13 M triangles °1.7 M triangles - gutted version show here with no internal pipes

5 2/05/07 5 Culling example Full model 1.7 Mtris View frustum culling 1.4 Mtris Occulsion culling 89 Ktris

6 6 ■Implicit equation for line (plane): ■If is normalized then d gives the distance of the line (plane) from the origin along ■Transforming points and lines with transformation M : points: lines: Lines and planes d (0,0) l  p  0 

7 2/05/07 7 ■Lines (planes) partition 2D (3D) space: °positive and negative half spaces ■The union of negative half-spaces defines a convex region Lines and planes d (0,0) l  p  0 

8 8 Testing objects for containment                OutsideStraddlingInside

9 2/05/07 9 Conservative testing Outside r Indeterminate r Inside r ■Use cheap, conservative bounds for trivial cases ■Can use more accurate, more expensive tests for ambiguous cases if needed

10 2/05/07 10 View frustum culling ■Test objects against planes defining view frustum ■How do you compute them? ■Other planes can be computed similarly 1 1 column 1- column 3

11 2/05/07 11 Hierachical culling ■Culling needs to be cheap! ■Bounding volume hierarchies accelerate culling by trivially rejecting/accepting entire sub-trees at a time ■Simple algorithm: while( node is indeterminate ) recurse on children not visited visited Inside Indeterminate Outside Inside

12 2/05/07 12 Back-face culling ■Special case of occlusion - convex self- occlusion °for closed objects (has well-defined inside and outside) some parts of the surface must be blocked by other parts of the surface ■Specifically, the backside of the object is not visible

13 13 Manifold ■Back-face culling can be applied to any orientable two- manifold. ■Orientable two-manifolds have the following properties. 1.All points on the surface are locally like a plane. No holes, cracks, or self-intersections. 2.Boundary partitions 3D space into interior and exterior regions ■In our case, manifolds will be composite objects made of many primitives, generally triangles. ■Back-face culling eliminates a subset of these primitives. °Assumes that you are outside of all objects.

14 2/05/07 14 Face plane test ■Compute the plane for the face: ■Cull if eye point in the negative half-space

15 15 Winding order test ■Back-faces have a clockwise vertex ordering when viewed from outside. ■Typically used by graphics hardware during triangle setup

16 2/05/07 16 Back-face culling in OpenGL if (cull): glFrontFace(GL_CCW) # define winding order glEnable(GL_CULL_FACE) # enable Culling glCullFace(GL_BACK) # which faces to cull else: glDisable(GL_CULL_FACE) ■Can cull front faces or back faces ■Back-face can sometimes double performance front-face culling

17 2/05/07 17 Occlusion culling with occlusion queries ■Render objects visible in previous frame (occlusion representation)

18 2/05/07 18 Occlusion culling with occlusion queries ■Turn off color and depth writes. ■Render object bounding boxes with occlusion queries. °An occlusion query returns the number of visible pixels newly visible

19 2/05/07 19 Occlusion culling with occlusion queries ■Re-enable color writes ■Render newly visible objects

20 20 Clipping a line segment against a line ■First check endpoints against the plane. If they are on the same side, no clipping is needed ■Interpolate to get new point ■Vertex attributes interpolated the same way

21 21 Clipping a polygon against a line ■Traverse edges ■Keep edges that are entirely inside ■Create new point when we exit ■Throw away edges entirely outside ■Create new point and new edge when we enter

22 22 Clipping against a convex region ■Sutherland-Hodgman °Just clip against one edge at a time

23 2/05/07 23 Homogeneous clipping ■NDC simplify view frustum clipping ■Clip after applying projection matrix, but before the divide by w °clip coordinates ■Easy in/out test and interpolation. Other coordinates treated exactly the same way 1 x w Add extra coordinate so we can use our line equation

24 2/05/07 24 Culling and clipping in the rendering pipeline Culling done by application View frustum clipping on clip coordinates. Back-face culling done in setup phase of rasterization. Eye coordinates. View frustum clipping and back-face culling can be done here


Download ppt "1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009."

Similar presentations


Ads by Google