12:30-14:30 Tuesdays TR-512 and 12:30-13:30 Thursdays TR-516
You are responsible for material in the lectures. Notes are often posted afterwards.
Office Hours: 2:00 - 4:00 RB-305 or By appointment
Office Hours: 9:30 - 11:30 on Mon, or By appointment, RB307-3
Technically, Data Structures and some familiarity with linear algebra.
The course home page is the primary place for announcements. Please check it regularly. There is an RSS feed available for it.
Peter Shirley. Fundamentals of Computer Graphics, 2ed
* note: the new 2nd edition is considerably different than the first - it is green (not orange).
* You may get the "uncorrected" 1st printing. If so, please be sure to check the errata page. In fact, I recommend that you go through the book and mark the errata right away.
* Shirley, Foundations of Computer Graphics at Amazon.
This book is optional - it won't be used for class readings. However, it is a great reference, and I recommend it if you're serious about graphics.
Mason Woo, et al. The OpenGL Programmer's Guide.
- This is sometimes known as the "red book."
* The current edition is the 6th edition, but for the purposes of this class an older edition would be OK too. If you don't want to buy this book, the complete contents of the older version is online in html. There used to be an online PDF version as well, but it seems to have vanished. The old edition is OK for most things, the critical chapter in the 6e will be provided online in class.
* OpenGL Programmer's Guide at Amazon.
* There will be some readings from this book, and its an important reference.
Tomas Akenine-Möller and Eric Haines. Real Time Rendering, 3e.
- This book is specifically about real-time rendering, and is very useful if you're interested in interactive stuff like games. It is really well written, and has great discussions of a lot of the basic topics. The new edition just came out (so new its out of stock most places), and is quite encyclopedic. Its an awesome reference book, but a little hard to learn from, so I highly recommend it if you are serious about graphics.
* Real Time Rendering at Amazon
There will be 2 exams, counting for 30% of your grade.
- There will be an evening midterm exam: Need to know for Midterm
- There will be a final exam, in the time slot given by the registrar.
- Exams are difficult to reschedule, and arrangements must be made ahead of time. Please contact me at the beginning of the semester if you foresee there being a problem.
- Homework : 10%
- Projects (15, 12.5, 12.5, 20% each): 60%
- Midterm: 10%
- Final: 10%
Generally, the projects are worth the most.
See the Policy Page for more details.
This class has been assigned to the computing labs that contain computers running Windows XP. Programming assignments is designed for APIs and C++. There is a page on the programming tools used in this class
There will be a number of small written homework assignments and programming assignments. Most assignments will be graded on a check/no check basis.
There will be 4 projects.
o Administrative matters
o What's computer graphics
o Light and the human visual system
* Image Algorithms and 2D Special Effects
o Images, quantization and sampling
o Image manipulations
o Flood fill, dithering
o Point processing (contrast enhancement, compositing)
* Raster graphics
* Coordinate systems and transformations
o Homogeneous vector and matrix notation
o 2D/3D transformations
o Chaining transformations
o Nonlinear transformations (free form deformation)
* The graphics pipeline and toolkits
o Graphics programming and OpenGL
* 3D Viewing and Projection:
o Perspective projection
o Viewing coordinate systemsand view volumes
* Hidden surface removal
o Introduction to Visibility
o Line and polygon scan conversion
o Painter's algorithm
o Z-buffer algorithm
o Local shading models
+ Illumination and reflection
+ Gouraud & Phong shading
o Texture mapping
* Modeling Hierarchies
o What hierarchies are and why we use them
o Matrix stack primitives
o Hierarchy algorithms
o Modeling examples
o Getting the right "control knob"
o Hierarchies w/nonlinear transformations
o Interface and implementation issues
* Geometric Modeling
o Modeling with polygons
o Spline curves: natrual, hermite, bezier, etc.
o Recursive subdivision, forward differencing
o Bicubic surfaces
o Solid primitives, sweeps, B-reps
o Implicit surfaces, quadrics, blobs
o Booleans, CSG
o Ray-surface intersection testing
o Ray casting
o Shadows and Transparency
o Recursive ray tracing
o Spatial data structures for optimization
* Global shading
o Traditional cel animation
o Keyframes: state space points and trajectories
o Inbetweening: linear interpolation
o Interpolating splines, slow in and out, etc.
o Procedural animation
o Inverse Kinematics
o Dynamics and control
o Interface and implementation issues