Computer Graphics Books
The required textbook for this class
is:
Computer Graphics, Principles and Practice, 2nd edition in C.
By Foley, van Dam, Feiner, and Hughes. Published by Addison-Wesly, reprinted
with corrections 1997.
I (and many in the graphics community) refer to the book as "Foley
and van Dam." The original book had only these two authors. On the
web pages I will often refer to it as FvD.
You will notice that the book doesn't fit the class exactly. We do not
follow it closely, we skip through various parts of it. Be warned, some
of the major problems of this book are:
- It is encyclopedic. It covers a lot of topics in little detail. We
will skip a lot of it.
- It uses some very lame graphics libraries. We won't use them. You
should understand them enough to read the book, but don't worry about
learning them.
- They have some dated notions about how to build user-interfaces.
- Some sections of the book are really hard to learn from. Their presentation
of parametric curves is particularly unfortunate. Their discussion of
image processing is scattered at best.
If you're wondering why we are using a book that I don't like, let me
summarize by saying its the best of a bad lot. Last year, I wrote a diatribe
complaining about graphics texts. In last year's class, I chose a different
book. It had a different set of problems than this one.
Foley and van Dam is such a standard book, however, that it makes up
for some of its shortcomings. So many people have learned graphics from
this book (including me). The book also works better as a reference than
as a text, so you'll be happy to have it on your shelf should you decide
to do more graphics.
The strongly recommended additional text is:
The OpenGL programming Guide, 3rd edition. Woo, et. al. Published by
Addison Wesly, 1999.
I sometimes refer to this as "The Red Book."
Note: older editions are OK (especially the 2nd edition) for the purposes
of this class in terms of content, but I will always refer to page numbers
and chapters from the new edition. If you are going to buy this book,
you are better off getting the newest edition possible.
The primary purpose of this book is to help you learn about the OpenGL
graphics library that you will need for your programming assignments.
It also is a pretty good suplemental text to learn more about graphics.
Optional Books
-
- David Hearn and Pauline Baker. Computer Graphics, C version, 2nd
edition. Prentice Hall, 1997.
- This was the text for last year's course. It's a common competitor
to Foley and van Dam for a general graphics text. It's a bit better
at explaining some things, but not as comprehensive in its scope of
topics.
- Charles Poynton. A
Technical Introduction to Digital Video. John Wiley and Sons,
1996.
- This book is specifically about issues related to video. However,
it offers a great discussion of many of the topics of computing with
images, and ties things very nicely to the perceptual psychology.
Two chapters of the book are online, one of which is a required reading
for the course.
- Steven Upsill. The Renderman Companion. Addison Wesley. 1990
- This is a reference for a piece of software that we probably won't
use in the class. However, it is an excellent reference to a lot of
concepts in computer graphics.
- Image Processing for Computer Graphics. Jonas Gomes, Luiz Velho
, Silvio Levy (Translator). Springer-Verlag, 1997.
- A very nice book about image processing geared towards computer
graphics. It's a bit mathematical (in fact, I think its gratuitously
mathematical), but it is much better than just about any standard
image processing book I've seen. This would be a great text for an
advanced course.
-
Books on C++
- If you're looking for a book on C++, my favorite is the C++ Primer.
This preference is historical: I learned C++ from an older edition of
the book, and at that time there were far fewer choices.
- Stanley Lippman and Josee Lajoie. C++ Primer, 3rd Edition. Addison
Wesley, 1998.
- The "standard" reference on C++ is by Stroustrup. He created the language,
but his book isn't necessarily the best reference or easiest to learn
from.
- Bjarne Stroustrup. The C++ Programming Language
|