The books we will be using

by Mike Gleicher on August 30, 2014

Rather than use a single textbook, in this class we will use portions of a bunch of different books. There is no single book that I felt strongly about enough to make you spend your money to buy. Instead, we’ll piece together a “franken-book” from several, using good parts from each. By choosing only a little bit from each book, we fall under the “academic fair use” restriction, and I can legally provide you scans of the portions you need for class online (in the protected reader – since fair use only covers students in the class).

Anyway, here are the books we’re using. If you like them, you might consider supporting the authors by buying a copy. They are all good books. They are just hard to justify requiring everyone in class to buy.

Peter Shirley and Steve Marschner. Fundamentals of Computer Graphics, 3ed
note: the new 3rd edition is different than the second – it is red/orange (not green).

At Amazon: book kindle edition (if you have a kindle and get this, I’d love to see it!)

This is a general purpose textbook on graphics. It tries to cover the basics, without getting into the details of any particular system or API. It started out as a focused text on the most important topics, but over time, it has grown to cover a lot of stuff. While its not an ideal text for this class, it was the best choice out there last time I ran the class. This time, it is hard for me to justify asking everyone to buy it, since we only use a fraction of it, and we need to supplement it with so much extra stuff.

Shreiner, et al. The OpenGL Programmer’s Guide, 7th edition. This is sometimes known as the "red book."

OpenGL is the graphics library we will use for much of the class. Having a reference book is useful (but there are plenty of references on the web). However: the "OpenGL Programmer’s Guide" turns out to be a great tutorial on a number of topics, so it will provide some required readings in class.

The "Programmer’s Guide" is commonly known as the red book (guess why!). For class, we’ll pretty much stick to material that can be found in old editions (in fact, there are copies of really old versions on the web). There is one new chapter that will be relevant for us.

The problem with this book is that while the tutorial parts of the book are good – and ancient – most of the book discusses the OpenGL API, and old versions of it. So it isn’t that useful as a reference, except for “legacy” OpenGL. Most of the chapters begin by saying “the material in this chapter has been depricated”.

Most of the parts of the book we will use haven’t changed much since the ancient early editions in the early 1990s. We’ll provide you with parts of this newer edition though.

There is a new 8th edition. I have not seen it, so I do not know if it has all of the old (but good) tutorial material.


3rd ed. cover image

Real-Time Rendering, 3rd Edition

By Tomas Akenine-Möller, Eric Haines, Naty Hoffman. AK Peters, 2008. (book website) (UW library online) (Madcat permalink)

This book is a bible of graphics programming for the real-time kinds of stuff games use. Well, it was the bible when it came out in 2008.  If you are a game graphics programmer, you look at this book a lot. It gives a pretty encyclopedic reference to the various techniques for various things you need to do. The nature of the topic causes it to seem out of date quickly, but the book can give you an idea of what the main approaches are and then you can look for what the newer tweaks are. One down side, is that the book tends to be more of an encyclopedia, telling you the main ideas of the various approaches, rather than a textbook (giving you the basic intuitions and building up) or even a guidebook (telling you how to choose between the various choices).

For this class, we’ll use a few sections that discuss some timeless topics. But you’ll see how quickly they get to lots of subtle details.

Because much of this book is not relevant to the class, and because a lot of it is arguably out of date (things have changed a lot in interactive graphics in 6 years), it is hard to require this book for a class. But some of the parts of it are really good.

Practical Linear Algebra, 2nd editon
Note: the 3rd edition is out, I just don’t have a copy of it yet.

Gerald Farin and Dianne Hansford, AK Peters 2005. (the 3rd edition is 2013).

book website

This isn’t a normal linear algebra textbook. It’s a book about the intuitions of linear algebra and the basic ideas introduced and illustrated with examples from graphics and geometry processing. It’s exactly what you need to know for doing most graphics stuff, and introduced in a way that you’ll want to know it. It doesn’t get to all of the traditional linear algebra that a math professor would want you to learn in a Linear Algebra class, nor does it have all the proofs and formalities that make the math class version of linear algebra so boring to a lot of us.

Previous post:

Next post: