Home Page

Home Page

Comp 236

Comp 236 is UNC's graduate-level introductory computer graphics course. It covers standard material such as matrix transforms, scan conversion, hidden surface removal, lighting and shading, curves and surfaces, and ray tracing. Class assignments appear below. Click the links for more information.

Reading Assignment:  Comparison of Hidden Surface Methods
Read "A Characterization of Ten Hidden-Surface Algorithms" by Sutherland, Sproull, and Shumacker. Choose two methods and describe how each works. Compare and contrast your methods with each other and with the Z-buffer algorithm. The two methods must be from different categories (i.e. image space, object space, or list priority).

Programming Assignment 1:  "One True Way" Projection of a 3D Box
Create a virtual 35mm camera and "take pictures" of a point representation of a 3D box. Map the box onto the image plane using the "one true way." Antialias the images of the points. Make a short movie, animated GIF, or sequence of still pictures showing your camera viewing the points from a gradually changing position.

Programming Assignment 2:  Scan Conversion of Triangles
Implement a triangle scan conversion routine and Z-buffer hidden surface algorithm. Your method should take a vector of three double-precision XY coordinates for the vertices in screen coordinates. Each vertex should also have an associated 1/Z value in double precision and a color value expressed as three bytes giving red, green, and blue values. Linearly interpolate 1/Z, R, G, and B across the triangle.

Programming Assignment 3:  Bicubic Bezier Surfaces
Write a program to display the famous Utah teapot as a set of parametric curves. The teapot is defined as 32 Bezier patches. Make the number of curves in s and t an adjustable parameter of your program. The curves you display should appear smooth (that is not piecewise linear). At each intersection point where the s and t curves intersect, draw a short line indicating the direction of the outward pointing surface normal at that point.

Programming Assignment 4:  Ray Tracing
Write a ray tracing system that will render images of clusters of spheres. Synthesize a model (volume = one cubic meter) with 100 spheres of varying size, color, and surface shading properties. Light the scene with at least five point light sources at different places outside the volume. Trace shadow rays to the lights so that shadows are rendered properly.

Final Project:  Simulating Depth of Field with a Blur Buffer
For the final project, I designed and implemented a prototype algorithm that simulates depth of field effects. The intent was to develop a method that could produce these effects in real time on commodity graphics hardware. The current software prototype runs in "near real time" and produces good results. Future work will focus on achieving real time performance by implementing the algorithm on graphics hardware.

Email Jason Stewart