Assignments
Proj 1: Simple Scene due: Sept 12, 11pm

This assignment covers the primitives construction using tessellation in 3D.
The purpose of this project is to get hands-on experience with OpenGL and
learn the primary way to describe geometries in graphics.
Requirement
Supporting code
Example scenes
Proj 2: Viewing due: Oct 1, 11pm

This assignment covers viewing transformation in 3D.
The purpose of this project is to learn how one can navigate in a 3D scene
through transforms for viewing setup.
Homework 1 to help you understand the math (Solution)
Requirement
Supporting code
Proj 2+: Viewing (double your points) due: Oct 1, 11pm

This assignment covers viewing transformation in 3D.
The purpose of this project is to learn how geometries (from proj 1) are projected onto the
2D viewing plane (e.g., your screen) through transformation matrix for
viewing setup.
Double-points Requirement!!
Supporting code (ask Jian by email AFTER you finish Proj 2.)
Proj 3: Modeling due: Oct 22, 11pm

This assignment covers Surface Modeling.
The purpose of this project is to learn how to use parametric curve in computer graphics to build a reasonably complex (and famous) Utah teapot. Once this project is done, you will understand how car and airplane companies model geometries.
Homework 2 (Solution)
Requirement;
Supporting code
Example 2D Bezier curve drawing and manipulation
Proj (Bonus project): Lighting and texture due: Nov. 7, 11 pm

In this assignment, you will modify your last assignment to rendering an interesting looking
teapot while integrating trackball (tb routine implemented), lighting, and texture mapping.
Requirement
Supporting code
Proj 4: Ray tracing

In this assignment, you will see a glimpse of what you could do with a rendering algorithm
that stresses quality over speed. The purpose is to learn to write for intersect to support
reflections and
shadows.
.
Requirement
Example input and output scenes
Proj 5: Colors

In this assignment, you will learn how to create effective colors
to show structures in (real-world) data.
Requirement
Supporting file
Proj 6: Final project