CS155:  Computer Graphics

Spring 2003

Lecture:

M&W 11-12:15, BK B-105

Lab:

Thu 6-7, BK B-105

Professor:

Z Sweedyk
2341 Olin, x78360
Mail: z@cs.hmc.edu
Office hours: MW 1-3

Course mailing list:

cs-155-l@hmc.edu

Tutors/Graders:

Chip Bradford
Alex Klose
Geoff Romer
Joanna Wu

Useful Links:

Student pages
Internet Ray Tracing Contest
Ray Tracing News
Povray
SGI's OpenGL site
GLUT Guide (PDF)
GLUI
opengl.org
Siggraph

What is CS155?

In CS155, we study the fundamental concepts and processes that drive 3D computer graphics. We begin with a study of digital images and digital image processing.  Next we study rendering techniques; rendering is the process by which a 3D model is converted to a 2D image.  We cover ray tracing and and the graphics pipeline process.  Finally we look at some methods for modeling 3D objects including polygon meshes, spline curves and surfaces, and subdivision surfaces.

Image Gallery

We've collected images and movies from past semesters in our Online Gallery.  Take a look to see what sorts of things we do in this class, or for motivation when the projects get difficult.

Projects

Your grade will be based on four programming projects, a final project, labs, and class participation as described below.
	1. Image Processing		15%
	2. Ray Tracing			20%
	3. Graphics Pipeline		15%
	4. OpenGL Application		20%
	5. Final Project		25%
	6. Lab/Class Participation 	 5%
For information on how to submit projects, check out the Homework Submission FAQ.

Late Policy

You begin the semester with 5 one-day extensions that may be used to extend programming assignment deadlines. You earn an additional one-day extension each time you submit a programming assignment 24 (or more) hours before its due-time. Assignment submitted after the due time plus extensions will lose points for each late day. Each project description includes the number of extention days that can be used for the assignment and its late day penalties.

Grades

Provided you meet the basic course requirement described in the following section, your grade will be assigned based on the percentage of possible points you receive as shown below:
	A	>95%
	A-	>90%
	B+	>87%
	B	>84%
	B-	>80%
	C+	>77%
	C	>74%
	C-	>70%
	D+	>67%
	D	>64%

Basic Course Requirement

In order to pass the class you must earn a passing grade, as described above. In addition, however, you must meet the following basic requirement. Before the final exam time of the course, Wed. May 14 at 9AM, you must submit a solution to each programming assignment that successfully implements at least 50% of the assigned features. In other words, you cannot blow off an entire assignment and pass the class! Note that this basic requirement is necessary but not sufficient to pass the class. Note also that late penalties are used to calculate your grade but are not used with respect to this basic requirement.

Honor Code

We provide skeleton code for most of the assignments. Any additional code you submit must be designed and written by you unless you obtain prior approval from me. Any violation of this policy will result in (at least) course failure. If in doubt, ask.

Tentative Course Schedule:

Date Topic Project assignment
1/22/03 Introduction  
1/23/03 Intro Lab  
1/27/03 Digital images
Image Processing I
Simple pixel transformations
Interpolation/Extrapolation
Compositing
Convolution
Project 1: Image Processing
1/29/03 Image Processing II
Uniform quantization
Dithering
Warping
 
1/30/03 Filter Lab  
2/3/03 Image Processing III
Morphing
Misc. transformations
 
2/5/03 Introduction to Rendering I
Math Preliminaries
Modeling Transforms
 
2/6/03 Morphing lab  
2/10/03 Introduction to Rendering II
Viewing
 
2/12/03 Ray Tracing I
Affine Spaces
Ray Casting
Intersection tests
Color calculations
Project 2: Ray Tracing
2/13/03 Scene graph lab  
2/17/03 Ray Tracing II
Recursive Ray Tracing
Transforms
Hierarchical coordinates
 
2/19/03 Ray Tracing III
Cheap Tricks
Optimizations
 
2/20/03 make-up Morphing Lab
Morph film
 
2/24/03 Graphics Pipeline I
Overview
Modeling and Viewing Transforms
Clipping
 
2/26/03 Graphics Pipeline II
Projection
Scan Conversion
 
2/27/03 Materials  
3/3/03 Graphics Pipeline III
Clipping & Projection revisited
 
3/5/03 Class cancelled  
3/6/03 Show and Tell Pizza Party  
3/10/03 Intro to OpenGL Project 3: Robot
Starter Code
GLUT
glut.h
glut32.dll
glut32.lib
Makefile
3/12/03 OpenGL I
Matrix stacks
Fragment processing
Buffers
 
3/13/03 OpenGL viewing lab  
3/17 - 3/21 Spring break  
3/24/03 OpenGL cont.  
3/26/03 Robot Work Session  
3/27/03 Cheesy Shadows  
3/31/03 Intro to Curves
In-class exercise
Final project options
4/2/03 Intro to curves continued
Maya intro
 
4/3/03 Maya Lab: Polygonal models  
4/7/03 Curves cont.
Catmull-Rom splines
Bezier Curves
deCastlejau's algorithm
In-class exercise
 
4/9/03 Surfaces
Bezier patches
Subdivision Surface
Loop algorithm
In-class exercise (A)
In-class exercise (B)
 
4/10/03 Maya Lab: NURBS  
4/14/03 Project meetings  
4/16/03 B-splines  
4/17/03 Lab cancelled  
4/21/03 B-splines cont.  
4/23/03 Fractals  
4/17/03 Fractal Lab Pizza Party  
4/28/03 Radiosity/Photon mapping  
4/30/03 Show and Tell  
5/1/03 Show and Tell  
Last updated: April, 2003