These are the programming books that we've used over the years. They range from advanced programming to project management. You won't find any basic C/C++ programming books here. We just use Stroustrup for C++ and Josuttius for STL. I usually get all our books from Amazon.com. If you're getting more than one book, you can usually order books, have them delivered to your door, and save money in the process. If a book is listed in here, it's worth the money. No dross is listed.

I've linked in images of all the books from the Amazon web site (so it may take a while to load.) since, if you're like me, you'd like to see what the book looks like as well as know what the title is. If you click on the book's image you'll be taken to Amazon's web page for the book.
Search by keywords:
In Association with Amazon.com

If you are interested in one particular topic, then click one of these links;

OpenGL   DirectX   Direct3D   Essential Graphics   Basic Graphics    Advanced Graphics  Shader Books   Optimization Books  


OpenGL Books:

If you do any OpenGL programming at all, you need the Red Book. If you program on Windows, you probably will want to get the Alpha Book or the SuperBible. If you program under X OR you use GLUT, you probably want to get the Green Book.

cover OpenGL Programming Guide. Second Edition (<- get the 2nd edition!) Addison Wesley, 1997. Woo, Neider, Davis ISBN 0-201-46138-2 (aka "the Red Book"). This is the ultimate OpenGL resource. If you get any book on OpenGL, it should be this one. Not only is it an excellent book, but all the source is available on the web. Mostly covers OpenGL, with minimal operating specific and GLUT references.
cover OpenGL Reference Manual ISBN: 0201657651; 3rd edition (December 17, 1999) OpenGL Architecture Review Board. (aka "the Blue Book"). This is just what it says, a reference to the API. In most cases you can get along with the online documentation, however, if you ever need to know just how the fog equations work or what all the parameters are for glGet, them this is the book.
cover OpenGL Programming for Windows 95 and Windows NTAddison-Wesley Pub Co; ISBN: 0201407094; 1st edition (October 29, 1996) (aka the "Alpha" or "White" Book).   This book covers the basics of OpenGL under Windows, with a good discussion of pixel formats and animation techniques. Some references to OpenGL 1.1 features. Covers MFC-creating a reusable COpenGLView and COpenGLImage class. No VB. CD-ROM included. Available in Japanese. Compare to the OpenGL SuperBible, below.
cover OpenGL Programming for the X Window System. Addison-Wesley Pub Co; ISBN: 0201483599; 1st edition (August 5, 1996) (aka "the Green Book"). OpenGL for X, covers GLX and is the best reference for GLUT, as almost all the examples use GLUT. Available in Japanese.
cover OpenGL SuperBible. Waite Group Pr; ISBN: 1571691642; 2nd edition (December 16, 1999) The only other good book on programming OpenGL under Windows. It's a big book, and covers some of the same things as in the Red and White books. Covers OpenGL with VRML, OCX's, and using languages other than C/C++. Some references to OpenGL 1.2 features. CD-ROM included. Both the SuperBible and the White book are good references for Windows programmers. The SuperBible covers other languages and textures better. The White book covers MFC and animation better. Either are good for OpenGL under Windows.

Direct3D Books:

There are no good books on Direct3D.

If you're interested in DX3 D3D Retained Mode, then Kovach's The Awesome Power of Direct3D/DirectX, Manning 1997, ISBN 1-884777-47-3, or Thompson's 3D Graphics Programming for Windows 95, Microsoft Press 1996, ISBN 1-57231-345-5. These stand out slightly from a sea of mediocre books. I've never seen a really good book on D3D yet.

The only way to learn D3D is to get the SDK (get it from the Microsoft web site, it'll just cost the less than $10 to order the CD (no, they don't have it for download anymore) and plow through the sample programs. Ask lots of questions and search the web, there's lots of folks in the same boat.

DirectX Books:

cover If you're interested in DX there's only good book that I've found. It's Inside DirectX by Bargen & Donnelly. Microsoft Press 1998. ISBN 1-57231-696-9. THIS BOOK DOES NOT COVER DIRECT3D! Just DDraw/Sound/Play/Input and Setup. It's a very good book that gives a good intro into all the "easy" DX components, It's not cheap at US$ 44.99, but it's about the best reference you'll find on DX anywhere. Microsoft Press is coming out with a Direct3D book later this year (that was in 1998... still waiting...). It'll probably be called Inside Direct3D, and with luck it'll be as good as this one. Note that this is more of a basic book, there's not that much advanced stuff, but by the time you get to the level in the book, you should be able to handle the advanced stuff yourself. Oh yeah, comes with the DX 5.2 SDK!

Essential Graphics Books:

There's one really outstanding book on graphics book for graphics programmers, and it's this one. Assumes that you are somewhat familiar with the ideas behind 3D graphics programming.

cover   Real-Time Rendering, Akenine-Moller, Haines. A K Peters Ltd; ISBN: 1568811829; 2nd edition (July 2002). This book covers all of the basics and most of the advanced topics you'll want to know about, it splendid detail. If you program graphics for a living or are thinking about it and are interested in a thorough knowledge of the various techniqes of 3D effects and programming, then get this one. I can't praise it enough. The 2nd edition has enough new stuff in it so it's worth updating even if you have the 1st edition.

Basic Graphics Books:

There are two types of graphics books, the computer novice type and the general books that or of the kind you'd find in a college course.

cover   Computer Graphics: Principles and Practice, Foley, vanDam, Feiner, Hughes. Addison-Wesley Pub Co; ISBN: 0201848406; 2nd edition (August 4, 1995). This is considered the bible of computer graphics. A big, thick, dense book that, alas, is getting a bit dated if you want to do cool effects. Still, if you need to derive a generic rotation matrix, this is the book. Long on mathematical equations, short on source code (like none), this is still the book that has the most info on the basics.
cover Another book similar to Comnputer Graphics, is the shorter Fundamentals of Interactive Computer Graphics, by Foley. Addision-Wesley, ISBN 0-201-14468-9. (December 1982) A little simpler that the other book, this one is still chock full of stuff, sometimes presented in a simpler format. Currently out of print. You can get used copies on Amazon for cheap.
cover Three-Dimensional Computer Graphics, by Watt. Addison-Wesley Pub Co; ISBN: 0201398559; 3rd edition (December 1999). Like Foley & vanDam but with a 3D focus. I like this book because some of the information in Foley & van Dam is presented in a different way, which sometimes means I can understand it. This book is more "how to" that the ones above, and gets into things like ray tracing and splines and patches.

Advanced Graphics Books:

cover Advanced Animation and Rendering Techniques, by Watt and Watt. Addison-Wesley Pub Co; ISBN: 0201544121; 1st edition (October 31, 1992). Covers some of the basics plus shadows, ray tracing, volume rendering, inverse kinematics (not enough), patch deformation. Some cool stuff in here, but it still falls short of providing a good clear explanations for graphics dummies.
cover Texturing and Modeling: A Proceedural Approach. by Ebert, Musgrave, Peachey, Perlin, and Worley. Morgan Kaufmann Publishers; ISBN: 0122287606; Bk&Disk edition (October 1994) This is the coolest book for learning how to generate textures and how to model things like gasses and landscapes. Covers fractal techniques. Comes with SOURCE CODE IN C! I wish somebody would hire me to do some of the cool stuff in this book. If you're looking for someone to do realistic patchy fog, give me a call! Comes with floppy disk. Currently out of print, but I know they are planning an update in 2003.
cover Graphics Gems (1-5) Morgan Kaufmann Publishers; Various authors. These 5 books contain a grab-bag of techniques that usually are very useful to the 3-D graphics programmer. Virutal trackball interface. It's in there. Polygon-line intersection? It's in there. Generating the "best" single pallette for a bunch of images? Basic matrix math? Quarternions? Got it. My only complaint is that the level of detail ranges from full source code to a one paragraph explanation. It's pretty much random depending who authored the tip. (Each "gem" is from a different author). Still, if you do this for a living, add these to your shelves.
cover Game Programming Gems (1-3) Charles River Media; Various authors. A well done take-off on the Graphics Gems series, these 3 books contain a grab-bag of techniques that useful to the real-time graphics programmer as well as anyone else interesting in various game programming lessons.

Shader Books:

cover Direct3DX ShaderX: Vertex and Pixel Shader Tips and Techniques. Engel (ed.) Wordware Publishing; ISBN: 1556220413; Bk&Cd-Rom edition (June 30, 2002). Wolfgang Engel brings you an introduction to shaders and then presents a collection of shaders from various folks. A lot of useful techniques are presented, although the quality of the presentations is a bit uneven.
cover Real-Time Shader Programming. Fosner. Morgan Kaufmann Publishers; ISBN: 1558608532; Bk&Cd-Rom edition (2003). This book is more of a gentle introduction to shaders. It covers a lot of the basic math and the underlying lighting techniques and builds upon various lighting models and how to implement them in shaders. It only covers some of the more basic techniques found in ShaderX, but goes into more depth so you understand how to write your own shaders to create your own techniqes. Covers DirectX 9 shaders, but not HLSL.

Optimization Books:

These books are the ones that I use on optimization.

cover

DirectX, RDX, RSX, and MMX Technology. Coelho and Hawash. Addison-Wesley Pub Co; ISBN: 0201309440; 1st edition (December 30, 1997). If you program any media-intensive stuff then this book is for you, These guys work at Intel (it shows) and they've been working with/on this technology for a long time. While not perfect, they are trying (for example, they discuss DX3). It also goes into detail about processor stuff, and just what the importance of the L1/L2 cache is, and why you should care. The CD includes a trial version of VTune, so if you don't already own it, here's your chance. (You can also get a trial version from Intel's web site.)

cover Inner Loops: A Sourcebook for fast 32-bit software development. Booth. Addison-Wesley Pub Co; ISBN: 0201479605; 1st edition (December 23, 1996) This book isn't quite as complete as the book above as it just covers writing fast code, but if you do any C/C++/x86 asm coding, then this book is worthwhile to add to your collection and just spending a few days reading it. You'll be surprised at what you can discover.
cover Michael Abrash's books. Let me state flat out that Michael Abrash is a 3D programming & asm coding god. He's the reason that we got started in the first place. He's also the reason that Ron formed this company, since true 3D was the coming thing and Ron wanted to be at the forefront. Unfortunately, as Michael related at the CGDC in 1997, technology is moving so rapidly that his skillset (asm programming and fast low-level graphics routines) is rapidly becoming obsolete. (At least at the programming god level. It never hurts to know asm & the low-level basics) While the books are great reads, probably the only currently useful thing (aside from the wisdom and stories) is the BSP stuff in Zen of Graphics Programming. If you're not using Windows, then by all means grab these books. If you are using Windows, Michael has some articles in Dr. Dobb's Sourcebook. If you're just starting out, then you might want to get Zen of Graphics Programming just to read what it was like and get a background on all this stuff. Today, it's all optimizing compilers, and 3D API's. However, Michael Abrash is the guy that mostly started it all, getting programmers (notably John Carmack) to think that they could do real-time 3D graphics on a PC. Michael is also responsible for the philosophy that all this stuff is too important to hog, so spread around what you know, and it'll come back much improved. Time has shown that he's right.

Michael Abrash's Graphics Programming Black Book, The Coriolis Group; ISBN 1576101746
Zen of Graphics Programming. Coriolis Group
Zen of Assembly Language. Coriolis Group
Power Graphics Programming. Que, 1989(!)