**Time:**MW 1:30-2:50PM**Place:**EE 003**Instructor:**

Brian Curless (curless@cs), CSE 664

Office hours: Wed 3:00-4:00 PM, or by appointment**Teaching assistant:**

David Bargeron (davemb@cs), CSE 362

Office hours: Mon 3:30-4:30pm, or by appointment

- Knowledge of data structures
- A good working knowledge of C (and hopefully C++) programming
- Some linear algebra
- Some mathematical sophistication
- (No prior knowledge of graphics is assumed.)

- Shirley
*et al*,*Fundamentals of Computer Graphics*,**Second Edition**. AK Peters, 2005. [Will be available in the bookstore soon, or can be found through various shopping engines like this one or this one.] - Textbook errata

- Alan Watt,
*3D Computer Graphics, Third Edition,*Addison-Wesley, 2000. - Woo, Neider, Davis, and
Schreiner.
*OpenGL Programming Guide, Third Edition*. Addison-Wesley, 1999. - Andrew S. Glassner.
*An Introduction to Ray Tracing*. Academic Press, 1989. - Foley, van Dam, Feiner,
Hughes.
*Computer Graphics Principles and Practice*, Second Edition in C. Addison Wesley, 1996. - Edward Angel,
*Interactive Computer Graphics: A top-down approach with OpenGL, Second Edition.*Addison Wesley, 2000.

Copies of the supplemental texts are in the graphics instructional
lab. Please, please do *not* remove these books from the lab under
any circumstances.

- Week 1: Introduction, displays
- Week 2: Sampling theory, image processing
- Week 3: Geometric transformations, shading
- Week 4: Ray tracing
- Week 5: Advanced rendering, texture mapping
- Week 6: Hierarchical modeling, parametric curves
- Week 7: Parametric curves, particle systems
- Week 8: Subdivision curves and surfaces
- Week 9: Advanced topics
- Week 10: Advanced topics

- Projects: 80%
- Written assignments: 20%

There will be no final exam for this course.

Projects can be implemented in the graphics instructional lab or on your own machine. The lab is located in Sieg 327.

You will work on four projects:

**Project 1: Impressionist (15%)**

An interactive program that creates pictures that look like paintings.

**Project 2: Ray tracer (25%)**

A recursive ray tracer for generating simple images that model reflection and refraction. You will work on this project with a teammate.

**Project 3: Animator (25%)**

An interactive modeling and animation system with a built in dynamic simulator. You will work on this project with a teammate.

**Project 4: Final project (35%)**

Choose between a substantial extension to the ray tracer or the animator, or other suggested projects.

Projects will be graded during in-person sessions with the TA. During the grading session, the TA will run the project to make sure that it conforms to the project guidelines. The TA will then quiz individual members of the team to determine how well they understand the structure of the code, the design trade-offs, and the implemented algorithms.

One grade will be assigned for all members of the team for the project's
implementation. Separate grades will be recorded for each team member's
"knowledge of the project." For some of the projects, the last
component of the grade will involve using your project to create an *artifact*,
hopefully, of some artistic merit. Extra credit will be given for the nicest
artifacts, as determined by class vote. Click
here for more information on project grading.

Assignments are due at the beginning of lecture on the due
date. This means that the modification stamp on the project executable must be
earlier than the start of lecture on the due date. Late assignments are marked
down at a rate of 33% per day (not per lecture), meaning that if you fail to
turn in an assignment on time it is worth 66% for the first 24 hours after the
deadline, 33% for the next 24 hours, and it is worth nothing after that. In
addition, *no extra credit for bells and whistles will be awarded for any
late assignment*.

Exceptions will be given only in extreme circumstances and only in advance.

There will be 2 homework sets that will test your in-depth understanding of topics covered topics. You should work on the homework sets individually.