Textbooks
I am trying to make this class “text-book free”. There is no required textbook. The “lectures”, workbooks, and online should be enough for you to learn the material.
However, sometimes a textbook is useful. So, I’ll make a recommendation (the textbooks we’ve used in the past), explain how to access them through the library, and give you some thoughts on how to use them.
Full disclosure: I was the kind of student who liked to read the book. I still have a pile of books from when I was an undergraduate on my shelves.
It seems at least some students want a textbook:

There are two main reasons to want a textbook:
- You want to get the basics and concepts, before digging into the workbook content.
- You want to dig deeper into the material, see more advanced topics, get a sense of alternative approaches, etc.
For each of these purposes, I will recommend a different textbook.
You want to learn the basics…
I recommend Fundamentals of Computer Graphics.
Historically we used: Fundamentals of Computer Graphics. The book has a long author list (I contributed a chapter).
You can access the book from the UW Library (so you don’t need to buy it): Library Link.
Since the library’s connection to the digital services is sometimes problematic, I downloaded the chapters and placed them on Canvas in the Books/FCG folder.
You can buy it from your favorite book publisher. I have a potential conflict of interest, so I cannot recommend which one.
I actually don’t recommend that you buy the book.
The basics, which the book covers concisely, can be found in other references. If you want to look up the matrices or something, you can find it on the web.
The core of the book - which was written by Peter Shirley (when he was a professor) and revised by Steve Marschner (who is still a professor) - is a concise, mathematically focused introduction to the basics. However, even that doesn’t connect well to the practical aspects. Beyond the core, Pete asked colleagues (including me) to add other chapters - so they are inconsistent. Each may be good, but they don’t have the consistent tone, style, and connection that the core chapters have. I have grown to dislike the chapter I wrote on Curves (I think the way we teach it in the workbook is much better).
If you want more depth (after you’ve learned the basics)…
Historically, I’ve recommended Real-Time Rendering by Thomas Moller, Eric Haines, Naty Hoffman, and some others (each edition adds authors). This book is 1200 pages, and they left chapters out! (the webpage gives PDFs for these chapters).
The most recent 4th edition is already old (it’s from 2018). They do continue to update the website.
This book is an amazingly extensive reference book that surveys many approaches and details for a huge variety of topics. It’s an invaluable reference - if you’re going to be a real-time graphics programmer, you probably want to have this book. For a class, it’s overkill - it’s way too much depth. It’s also not the best way to learn the concepts: once you understand the concepts, you can learn about a lot of details and different implementation tricks.
The UW Library has an electronic copy of Real-Time Rendering, 4e (Real-Time Rendering 4e (library link). Because the services the libraru uses are unrealiable (and inconvenient when they work), I have provided some chapters in Canvas. I don’t have all of the chapters.