- By
**byron** - Follow User

- 77 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' Rasterizing Polygons' - byron

**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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Rasterizing Polygons

- Given a the vertices of a polygon, in viewport coordinates, which pixels should be shaded?
- How do we determine them efficiently?

Rasterizing Polygons

- Obviously, any pixel lying entirely within the polygon should be shaded.
- What about the pixels that are partially within the polygon?
- Rule: Shade them if their center is within the polygon.

- What about the pixels whose center is exactly on the edge?

Neighboring Polygons

- When two polygons share an edge, which one “owns” the pixels on the edge?
- Rule
- A polygon owns all pixels whose centers are within its interior.
- A polygon owns all pixels whose centers lie on one of its left edges.

Neighboring Polygons

- Fill in all pixels whose centers are within the polygon.

Neighboring Polygons

- Fill in all pixels whose centers are on a left edge of the polygon.

A Rasterization Algorithm

- To rasterize a polygon, first determine its bounding box.

A Rasterization Algorithm

- To rasterize a polygon, first determine its bounding rectangle.

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

A Rasterization Algorithm

- When an edge is encountered,
- If we were on the outside, we move to the inside.
- If we were on the inside, we move to the outside.

- Thus, we stop or resume shading accordingly.

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

row 0

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

row 1

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

row 2

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

row 3

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

row 4

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

row 5

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

row 6

A Rasterization Algorithm

- Then scan each row of pixels in the bounding rectangle, left to right, bottom to top.

row 7

A Rasterization Algorithm

- The following algorithm is designed to allow rapid shading of the pixels.
- As the vertices are given, create a list of the vertices. (The order matters!)
- {(1, 0), (4, 3), (6, 1), (12, 1), (11, 8), (7, 8), (6, 5), (4, 8), (0, 7), (1, 0)}.

- From the list of vertices, form an edge table.
- {{(1, 0), (4, 3)}, {(4, 3), (6, 1)}, …, {(0, 7), (1, 0)}}.

- As the vertices are given, create a list of the vertices. (The order matters!)

A Rasterization Algorithm

- Organization of the edge table.
- Eliminate any horizontal edges.
- Sort the edges in the edge table by the y-coordinate of the lower endpoint.

- Begin scanning with the bottom scan line.

The Active Edge Table

- Create the active edge table (AET).
- For each edge in the edge table whose lower endpoint is on the scan line,
- Create an active-edge-table entry.
- Add it to the active edge table.
- Delete the edge from the edge table.

- For each edge in the edge table whose lower endpoint is on the scan line,

The Active Edge Table

- Organization of an active-edge-table entry:
- y-coordinate of upper endpoint.
- Reciprocal of the slope.
- x-intercept with the horizontal line ½ unit above the current scan line.

The Active Edge Table

- Sort the AET entries by their x-intercepts.
- The AET must contain an even number of entries.
- Why?

- Shade pixels from the 1st to the 2ndx-intercepts, 3rd to 4thx-intercepts, etc., in the AET.

The Active Edge Table

- Update the AET.
- Increment the scan line number.
- Delete from the AET any entries for which the upper endpoint is on the scan line.
- Update the x-intercepts of all AET entries.
- Add the reciprocal slope to the x-intercept.

- Create and add entries from the edge table for edges whose lower endpoint is on the scan line.

A Rasterization Algorithm

(7, -1/7, 11/14)

Scan

line

(8, -1/7, 11-13/14)

(3, -1, 5-1/2)

(3, 1, 2-1/2)

A Rasterization Algorithm

(7, -1/7, 11/14)

Scan

line

(8, -1/7, 11-13/14)

(3, -1, 5-1/2)

(3, 1, 2-1/2)

A Rasterization Algorithm

(7, -1/7, 9/14)

Scan

line

(8, -1/7, 11-11/14)

(3, -1, 4-1/2)

(3, 1, 3-1/2)

A Rasterization Algorithm

(7, -1/7, 9/14)

Scan

line

(8, -1/7, 11-11/14)

(3, -1, 4-1/2)

(3, 1, 3-1/2)

A Rasterization Algorithm

(8, -2/3, 5-5/6)

(8, 1/3, 6-1/6)

(7, -1/7, 3/14)

Scan

line

(8, -1/7, 11-5/14)

A Rasterization Algorithm

(8, -2/3, 5-2/3)

(8, 1/3, 6-1/6)

(7, -1/7, 3/14)

Scan

line

(8, -1/7, 11-5/14)

Download Presentation

Connecting to Server..