1 / 22

Clipping Rasterization

Clipping Rasterization. CS 445/645 Introduction to Computer Graphics David Luebke, Spring 2003. Admin. Homework 1 Not quite graded yet (by Wed or Fri latest—sorry!) Peer evaluations All very positive so far

frey
Télécharger la présentation

Clipping Rasterization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ClippingRasterization CS 445/645Introduction to Computer Graphics David Luebke, Spring 2003

  2. Admin • Homework 1 • Not quite graded yet (by Wed or Fri latest—sorry!) • Peer evaluations • All very positive so far • Remember that honor code applies: be frank, honest, unbiased, don’t casually give either bad or good evaluations • Homework 2 • Out today David Luebke 26/7/2014

  3. Recap:Sutherland-Hodgman Clipping • Sutherland-Hodgman basic routine: • Go around polygon one vertex at a time • Current vertex has position p • Previous vertex had position s, and it has been added to the output if appropriate David Luebke 36/7/2014

  4. inside outside inside outside inside outside inside outside p s p s p s p s p output i output no output i outputp output Recap:Sutherland-Hodgman Clipping • Edge from s to ptakes one of four cases: (Purple line can be a line or a plane) David Luebke 46/7/2014

  5. q n p P Recap:Point-to-Plane test • A very general test to determine if a point p is “inside” a plane P, defined by q and n: (p - q) • n < 0: p inside P (p - q) • n = 0: p on P (p - q) • n > 0: p outside P q q n n p p P P David Luebke 56/7/2014

  6. Recap:Point-to-Plane Test • Dot product is relatively expensive • 3 multiplies • 5 additions • 1 comparison (to 0, in this case) • Can often optimize or special-case this David Luebke 66/7/2014

  7. Recap:Line-Plane Intersections • Use parametric definition of edge: E(t) = s + t(p - s) • If t = 0 then E(t) = s • If t = 1 then E(t) = p • Otherwise, E(t) is part way from s to p • Edge intersects plane P where E(t) is on P • q is a point on P • n is normal to P (E(t) - q) • n = 0 t = [(q - s) • n] / [(p - s) • n] • The intersection point i = E(t)for this value of t David Luebke 76/7/2014

  8. Recap: Perspective Projection • Recall the matrix: • Or, in 3-D coordinates: David Luebke 86/7/2014

  9. Clipping Under Perspective • Problem: after multiplying by a perspective matrix and performing the homogeneous divide, a point at (-8, -2, -10) looks the same as a point at (8, 2, 10). • Solution A: clip before multiplying the point by the projection matrix • I.e., clip in camera coordinates • Solution B: clip after the projection matrix but before the homogeneous divide • I.e., clip in homogeneous screen coordinates David Luebke 96/7/2014

  10. Clipping Under Perspective • We will talk first about solution A: Clippedworldcoordinates Canonicalscreencoordinates Clip againstview volume Apply projectionmatrix andhomogeneousdivide Transform intoviewport for2-D display 3-D world coordinateprimitives 2-D devicecoordinates David Luebke 106/7/2014

  11. Recap: Perspective Projection • The typical view volume is a frustumor truncated pyramid x or y z David Luebke 116/7/2014

  12. Perspective Projection • The viewing frustum consists of six planes • The Sutherland-Hodgeman algorithm (clipping polygons to a region one plane at a time) generalizes to 3-D • Clip polygons against six planes of view frustum • So what’s the problem? David Luebke 126/7/2014

  13. Perspective Projection • The viewing frustum consists of six planes • The Sutherland-Cohen algorithm (clipping polygons to a region one plane at a time) generalizes to 3-D • Clip polygons against six planes of view frustum • So what’s the problem? • The problem: clipping a line segment to an arbitrary plane is relatively expensive • Dot products and such David Luebke 136/7/2014

  14. Back or yon plane Front or hither plane Perspective Projection • In fact, for simplicity we prefer to use the canonical view frustum: x or y 1 z -1 Why is this going to besimpler? -1 David Luebke 146/7/2014

  15. Back or yon plane Front or hither plane Perspective Projection • In fact, for simplicity we prefer to use the canonical view frustum: x or y 1 z -1 Why is the yon planeat z = -1, not z = 1? -1 David Luebke 156/7/2014

  16. Clipping Under Perspective • So we have to refine our pipeline model: • Note that this model forces us to separate projection from modeling & viewing transforms Applynormalizingtransformation projectionmatrix;homogeneousdivide Transform intoviewport for2-D display Clip against canonical view volume 3-D world coordinateprimitives 2-D devicecoordinates David Luebke 166/7/2014

  17. Apply projectionmatrix Clipagainst view volume Homogeneousdivide Transform intoviewport for2-D display 3-D world coordinateprimitives 2-D devicecoordinates Clipping Homogeneous Coords • Another option is to clip the homogeneous coordinates directly. • This allows us to clip after perspective projection: • What are the advantages? David Luebke 176/7/2014

  18. Clipping Homogeneous Coords • Other advantages: • Can transform the canonical view volume for perspective projections to the canonical view volume for parallel projections • Clip in the latter (only works in homogeneous coords) • Allows an optimized (hardware) implementation • Some primitives will have w  1 • For example, polygons that result from tesselating splines • Without clipping in homogeneous coords, must perform divide twice on such primitives David Luebke 186/7/2014

  19. Clipping Homogeneous Coords • So how do we clip homogeneous coordinates? • Briefly, thus: • Remember that we have applied a transform to normalized device coordinates • x, y [-1, 1] • z  [0, 1] • When clipping to (say) right side of the screen (x = 1), instead clip to (x = w) • Can find details in book or on web • Assignment 2: little bit of extra credit for clipping in homogeneous coords David Luebke 196/7/2014

  20. Clipping: The Real World • In some renderers, a common shortcut used to be: • But in today’s hardware, everybody just clips in homogeneous coordinates Projectionmatrix;homogeneousdivide Clip in 2-D screen coordinates Clip against hither andyon planes Transform intoscreen coordinates David Luebke 206/7/2014

  21. Next Topic: Drawing Lines

  22. Line Algorithms • Drawing 2-D lines: a case study in optimization • “One good thief is worth ten good scholars” • Sometimes somebody does something so well there is no point in doing it over • We will use Professor Leonard McMillan’s web-based lecture notes (then at MIT, now at UNC) • http://graphics.lcs.mit.edu/classes/6.837/F98/Lecture5 • His examples are in Java, but the correspondences are obvious. • Raster: his implementation of a framebuffer class David Luebke 226/7/2014

More Related