1 / 18

Graphics Pipeline Rasterization

Graphics Pipeline Rasterization. CMSC 435/634. Drawing Terms. Primitive Basic shape, drawn directly Compare to building from simpler shapes Rasterization or Scan Conversion Find pixels for a primitive Usually for algorithms that generate all pixels for one primitive at a time

osmond
Download Presentation

Graphics Pipeline 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. Graphics PipelineRasterization CMSC 435/634

  2. Drawing Terms • Primitive • Basic shape, drawn directly • Compare to building from simpler shapes • Rasterization or Scan Conversion • Find pixels for a primitive • Usually for algorithms that generate all pixels for one primitive at a time • Compare to ray tracing: all primitives for one pixel

  3. Line Drawing • Given endpoints of line, which pixels to draw?

  4. Line Drawing • Given endpoints of line, which pixels to draw?

  5. Line Drawing • Given endpoints of line, which pixels to draw? • Assume one pixel per column (x index), which row (y index)? • Choose based on relation of line to midpoint between candidate pixels ? ? ? ? ? ? ? ?

  6. Line Drawing • Choose with decision variable • Plug midpoint into implicit line equation • Incremental update

  7. Line Drawing • Implicit line equation • Midpoint algorithm y = y0 d = f(x0+1, y0+0.5) for x = x0 to x1 draw(x,y) if (d < 0) then y = y+1 d = d + (x1 - x0) + (y0 - y1) else d = d + (y0 - y1)

  8. Polygon Rasterization • Problem • How to generate filled polygons (by determining which pixel positions are inside the polygon) • Conversion from continuous to discrete domain • Concepts • Spatial coherence • Span coherence • Edge coherence

  9. Scanning Rectangles for ( y from y0 to y1) for ( x from x0 to x1) Write Pixel (x, y)

  10. Scanning Rectangles (2) for ( y from y0 to y1) for ( x from x0 to x1) Write Pixel (x, y)

  11. Scanning Rectangles (3) for ( y from y0 to y1) for ( x from x0 to x1) Write Pixel (x, y)

  12. Triangle Rasterization • Barycentric coordinates are decision variables

  13. Barycentric Triangle Rasterization For all x in xmin to xmax do For all y in ymin to ymaxdo Compute (a, b, g) for (x,y) If (a≥ 0 and b≥ 0 and g≥ 0) then c = ac0 + bc1 + gc2 Draw pixel(x,y) with color c

  14. “Clipless” Homogeneous Rasterization • Compute barycentrics using homogeneous coordinates • Extra edge equations for clip edges • Compute t for clip plane at each vertex • Only visible (w>near) pixels will be drawn • Adds computation • Divide by w per pixel instead of per vertex • But avoids branching and extra triangles • Good for hardware

  15. Homogeneous Barycentrics • Each barycentric coordinate is a linear function of X and Y • It is 1 at one vertex and 0 at the other two

  16. Homogeneous Barycentrics • Write formula for barycentric coordinate in homogeneous form • This defines a system of three equations

  17. Homogeneous Barycentrics • Know • Simplifies the linear equation to • Which we can solve:

  18. Incremental Computation • a, b, and g are linear in X and Y • What about pixel-to-pixel updates?

More Related