The required text for this course is 3D Computer Graphics by Alan Watt; John Ousterhout's Tcl and the Tk Toolkit book is highly recommended but not absolutely vital. I included Stroustrup's The C++ Programming Language (2nd Edition) as a recommended text, but you don't need that unless you're specifically interested in C++; if you like you can do all the programming for the course in C (or Scheme, for that matter).
Watt's book is solid and thorough, if a bit terse and dry at times. It's quite complete, however, and fairly up-to-date, so it should make a good reference. One thing to note is that his book does not cover 2D graphics (like you might use in a basic drawing program) or user interface design and implementation. We'll touch on a few of these points as appropriate, but the emphasis of the course, like that of the book, is going to be 3D modelling and rendering. This book is used in a vaguely similar course at Cornell, and they've compiled an errata sheet for Watt's book that you should look at.
During much of the course we'll be using Tcl/Tk to build our X-window's interfaces, and thus Ousterhout's book will prove valuable. Ousterhout is the man who designed Tcl/Tk, and his book is therefore the key reference. It's not the greatest tutorial, however, and as a consequence we'll have to spend some class time on introductions. Luckily we won't need to do any real complex user interface work, which cuts down on the amount of Tcl/Tk detail we need to go into in class, although some of you may choose to go beyond the basics covered in class. It's also worth noting that there is an enormous amount of high-quality free information available on the Net about Tcl/Tk (including an early draft of Ousterhout's book!). I've collected some useful Tcl/Tk web links elsewhere; the biggie is probably the Tcl/Tk page that Ousterhout maintains at Sun.
As I said above, we won't be specifically using C++ in this course, in part because there's too much graphics material we need to cover to take the time to teach everyone C++ as well. I will occassionally discuss certain aspects of object-oriented design when appropriate, but these ideas should translate to most any language, including languages like C and Scheme. I know, however, that there's significant student interest in C++, so I thought I'd order the key reference in case any of you wanted to give C++ a try. There is much that is good about C++, and much that borders on truly evil (just ask my Data Structures students from last quarter); tread these waters carefully and at your own risk. Some fellow in Sweden has collected errata sheets for those who are interested.
End of Textbooks for Computer Graphics
Feel free to send me some mail:
mcphee@cda.morris.umn.eduThe views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.