There is no single text for this class. A discussion
of my gripes with the current options was written 2 years ago. The situation
is getting better, but none of the books have gotten to print yet. We
will use some chapters from a preprint of an upcoming text (the whole
book isn't ready yet).
The book everyone is required to own is the OpenGL
programming guide. This is an important reference for the programming
projects, and will be used as the text for some parts of the course.
Perception, Images and Color
- Ferwerda's tutorial on perception.
- Chapter 13, "Achromatic and Colored Light" from "Foley
and van Dam."
- Chapter 15 of Shirley.
- Signal Processing Tutorial. (notes by Prof.
- Image Processing Tutorial (notes by Prof.
Hanrahan, Stanford University).
- Porter and Duff Compositing Paper.
- Image Compositing Fundamentals. Paper. (Alvy Ray
Smith Web Notes)
- Paul Haeberli's Paint by Numbers. Paper.
- Readings from the Required "Text"
Transformations and Hierarchy
Viewing and 3D Basics
Curves and Surfaces
Lighting and Shading
- Chapter 1 of Glassner (or chapter 8 from
- Something to talk about hardware rendering and micro-polygon rendering.
Texture Mapping and Related Tricks
- Lasseter "Principles of Animation" Paper
- Hodgins and Obrien survey article
The book required for this class isn't a textbook at all, its a reference
manual for one of the tools we will use in the class.However, it also
serves as a good introduction to a lot of the basic concepts.
- Mason Woo, Jackie Neider, Tom Davis, and Dave Sheiner. OpenGL Programming
Guide, 3rd Edition. Addison-Wesley, 1999.
- Note: while other editions are fine, I will refer to the page numbers
in this one
Unfortunately, this book is about the software tools (which everyone
will use for the foreseeable future, so I do not mind having the students
buy it), and therefore lacks the generality and rigor required of a text
book. On the other hand, it is extremely well written and very helpful.
The "Main Text"
Peter Shirley, a Professor at Utah, is writing a new graphics book. In
terms of topics covered it is only slightly better than the current books.
However, Peter's book has the appropriate level of rigor, without being
gratuitously mathematical, and seems to be very well written. In the future,
I expect this to be the text for the class.
Unfortunately, the book is not quite ready for us to use. I plan on using
several chapters that are ready. I might give all of the available chapters
to the students (depending on the publishers preference).
- Signal Processing Tutorial. By Michael Gleicher.
- Written as an appendix to a yet to be finished book on animation.
It is written from an animation prospective (so the examples may not
be appropriate), but its a good overview of the basics of signal processing.
- Image Processing Notes. By Pat Hanrahan
- Written for the graphics class at Stanford, and used by permission.
A much more formal and mathematical discussion than mine.
- Compositing Digital Images. T. Porter, T.
Duff. Compositing Digital Images, Computer Graphics (Proc. SIGGRAPH),
18:3, pp. 253-259, 1984.
- This is the paper that pretty much introduced the mathematics of compositing.
Unfortunately, it is not available on-line.
- Image Compositing Fundamentals. Alvy Ray Smith.
Microsoft Technical Memo #4.
- This paper is a nice review of the most important pieces of the math
of compositing, which you will learn in a different paper (Porter and
Duff). He also describes some tricks for making compositing go fast.
This is available on-line
from Microsoft's web site. A companion paper describing some of the
history of this stuff is interesting, but optional for the class. It
is available here.
- Paul E. Haeberli. Paint By Numbers: Abstract
Image Representations, Computer Graphics (Proceedings of SIGGRAPH 90),
24 (4), pp. 207-214 (August 1990, Dallas, Texas).
- A classic paper that shows how to do "painterly" rendering.
A fun application of basic imaging stuff, and an easy read.
- James Foley, Andries van Dam, Steven Feiner, John
Hughes. Computer Graphics: Principles and Practice. Addison Wesley,
- Although it has more authors now, this book is still referred to by
most people as "Foley and van Dam."
- This is the "standard" reference book for the field. It
turns out to be a hard book to learn from (I tried to use it as a textbook
last year) for many important subject. However, so many people learned
from this book, it has an important place in the community.
The good thing about this book is that it is encyclopedic. I include
a chapter from it to get a quick and broad coverage of images since
it goes through a lot quickly.
- James Foley, Andries van Dam, Steven Feiner,
John Hughes, and Richard Phillips. Introduction to Computer Graphics.
Addison Wesley, 1997.
- This book is known as the "baby Foley and van Dam," as it
is a watered down, and shorter version of the "real" Foley
and van Dam (Computer Graphics: Principles and Practice). For some topics
in the class, this is sufficient. Overall, I don't think this book is
rigorous enough for a course in a top 10 CS department. I have chosen
a chapter from this book because its a subject that I do not want to
cover deeply, so the level of this book is perfect.
- Andrew Glassner (editor). An Introduction
to Ray Tracing. Academic Press, 1989.
- This book is very focused on an approach which is not as important
as it once was. However, the introductory chapter gives a great survey
of the approach which is useful for understanding later things.
- Donald Hearn and Pauline Baker. Computer Graphics:
C Version. Prentice Hall, 1997.
- This is the closest thing to an acceptable text (in terms of rigor)
out there. I used it pretty successfully two years ago. Unfortunately,
the book is so dated that it is hard to use most of it, and the students
disklike it. There discussion of Splines (which I am using) is the most
readable of any text.
- Tomas Moller and Eric Haines. Real-Time
Rendering. AK Peters, 1999.
- This book is a nice discussion of issues in doing graphics fast. It
is not a general graphics textbook. Unfortunately, as graphics hardware
changes, the right way to do this is changing at an alarming rate, and
its unclear how the specialized speed tricks will be useful in the future.
The begining chapters are a nice discussion of how the standard graphics
pipeline works. In general, the book is strong on inight and intuition,
but short on specific details. Relevant chapters make good survey reading
for the introductory courses.