Time: TTh 10:30-11:50AM
Place: CSE 678
Instructor: Zoran
Popovic (
), CSE 664
Office hours: by appointment
Knowledge of data structures
A good working knowledge of C (and hopefully C++)
programming
Some linear algebra
Some mathematical sophistication
Text:
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, image processing
Week 2: Image processing, geometric
transformations
Week 3: Shading
Week 4: Ray tracing
Week 5: GPUs, graphics on mobile devices, texture
mapping
Week 6: Hierarchical modeling, parametric curves
Week 7: Particle systems
Week 8: Animation principles, parametric surfaces,
subdivision surfaces
Week 9: Dynamics, Cloth, Fluids, Character
Animation
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%)
Depending on the final size of the class, we will have either a single
joint project or you may select 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.