The authors state early on that this book is intended as the first book an aspiring game programmer should read, and I would agree that for the most part it lives up to that goal. Many 3D game programming books include math primers covering a chapter or two, but really, 3D math is a huge topic deserving an entire volume. This book provides a great service, then, in that it thoroughly covers most of the basic topics that graphics programmers need to know, in a tutorial style that should be accessible to all beginners. Hopefully, we’ll start to see more game programming books that focus on their core material and defer coverage of 3D math to books like this one rather than trying to pack unavoidably incomplete coverage into a few dozen pages.
So, what exactly does it cover? It starts off with a couple of chapters on coordinate systems, and then spends three chapters on vectors, followed by another three chapters on matrices and transformations. It then covers orientation, comparing matrix, Euler angle, and quaternion representations (including one of most clear explanations of quaternions that I’ve encountered), before diving into several chapters covering geometric primitives, including detailed coverage of working with triangle meshes.
The book closes with a chapter applying 3D math to graphics in areas such as lighting, fog, coordinates spaces, LOD, culling and clipping, and so on, and another chapter on visibility determination, touching on things like quad- and octrees, BSP trees, PVS, and portal techniques. The explanations in these chapters are much less complete, taking more of an overview approach. Others have criticized the book for this, but I feel that an overview is appropriate, since it then sets the stage for these topics to be covered in detail in other game programming books.
I’d definitely recommend this book to anyone just getting started with game and graphics programming.
|