From Amazon
Aimed at the working C++ game developer,
3D Game Engine Design provides a tour of mathematical techniques for 3-D graphics and the source code used to implement them in state-of-the-art video game engines. If you work in the game industry (or would like to), this book will serve you well because it delivers excellent best practices for algorithms and programming techniques that will help your software keep up with the competition.
This text is a virtual encyclopaedia of expertise, based on the author's own work and research in the gaming industry. It provides the mathematical notation, algorithms, and C++ code (on the accompanying CD-ROM) needed to build fast and maintainable game engines. Early sections start with the basics, with the math used to work with common 3-D objects (like spheres and boxes). Highlights include a high-powered review of quaternion algebra, the preferred way to transform 3-D data in many cases.
The chapters on graphics pipelines explain the math behind representing and rendering a 3-D world in 2-D with intervening effects like lighting, texture mapping and the like. A variety of current algorithms are provided for representing 3-D scenes, efficient picking (which allows a programmer to determine which object in a 3-D world has been selected) and collision detection (where objects collide virtually). In the game software of today, curves--rather than individual triangles or polygons--are often used to represent 3-D objects. Algorithms that are used to turn curves into rendered surfaces are also provided.
Later sections look at current thinking about animation techniques for characters (including key frames, inverse kinematics and skinning--in which digital skin is fitted over digital bone to create more realistic-looking movement). How to represent terrain inside virtual worlds is also explained. The book closes with excellent material on cutting-edge special effects like lens flare and projected shadows, which can add an extra level of realism to a video game. An appendix examines guidelines for designing object-oriented game software in C++.
Filled with mathematical insight and expert code that puts each principle or algorithm to work, 3-D Game Engine Design provides an expert view of what goes into building a state-of-the-art game engine. --Richard Dragan
Review
"I highly recommend David Eberly's "3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics". This is from one of the developers behind the NetImmerse 3D engine, and it's a great book, filled with lots of practical information"
- Tim Sweeney, voodooextreme.com
"3D Game Engine Design....is best described as a reference manual for 3D real-time graphics engine programmers. But oh, what a reference manual it is."
-- Game Developer Magazine