CS488 - Introduction to Computer Graphics - Lecture 14

Comments and Questions


Review

  1. Projection

Polygons

Clipping

Clipping a polygon reduces to clipping edges against

The clipping algorithm takes an ordered set of vertices [vi] and produces an ordered set of vertices [wi]. It relies on the following

The algorithm is

for each edge of clipping region
   for each edge of polygon // must be in sequence
      clip edge against region
      switch (result of clip)
      case "all inside"
         output leading vertex of edge
      case "all outside"
         do nothing
      case "cross edge leaving region"
         output crossing point
      case "cross entering region"
         output crossing point
         output leading vertex of edge 

Exercise. Hand execute this algorithm on several cases to make sure that you understand exactly how it works.

Projecting a Polygon

Lines project to lines so projecting the vertices projects a polygon in 3D to a polygon on the view plane.

Triangles

Sooner or later almost all polygons are converted to triangles

Scan Conversion

Scan converting a polygon (in 2D)

sort vertices in direction perpendicular to the scan lines
for each scan line
   if scan line contains the next vertex
      update and sort edge list
   inside = false
   for each pixel
      if on next edge
         inside = !inside
      if (inside)
         paint pixelt

Exercise. Expand "update and sort edge list" to make this a working algorithm.

Exercise. Hand execute your expanded algorithm on a triangle to make sure that you understand how it works.

Exercise. Hand execute your expanded algorithm on a non-convex polygon.


Hidden Surface Removal

Every polygon, in 3D, has two sides

It is very convenient to assume that surfaces are closed

Then we can say that every polygon has only a single side with visual properties

Backface Culling

Do not render any polygon with n.E < 0.

Does not handle occlusion, so we need to finish off with one of the following algorithms

Painter's Algorithm

Sort polygons back to front, then render backmost first.

Warnock's Algorithm

Z-Buffer Algorithm


Return to: