Assignments

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

Robot image

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

Example solution from Alisa

Proj 2: Viewing due: Oct 1, 11pm

Viewing image

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

Viewing image

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

Modeling image

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

Midterm

Proj (Bonus project): Lighting and texture due: Nov. 7, 11 pm

Light and texture

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

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

Coloring

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