This engaging book presents the essential mathematics needed to describe, simulate, and render a 3D world. Reflecting both academic and in-the-trenches practical experience, the authors teach you how to describe objects and their positions, orientations, and trajectories in 3D using mathematics. The text provides an introduction to mathematics for game designers, including the fundamentals of coordinate spaces, vectors, and matrices. It also covers orientation in three dimensions, calculus and dynamics, graphics, and parametric curves.
Fletcher Dunn has been programming video games professionally since 1996. He served as principle programmer at Terminal Reality in Dallas, where he was one of the architects of the Infernal engine and lead programmer on BloodRayne. He was a technical director for the Walt Disney Company at Wideload Games in Chicago, where he was the lead programmer for Disney Guilty Party, which won IGN's Family Game of the Year at E3 2010. He is currently a developer at Valve Software in Bellevue, Washington. Ian Parberry is a professor in the Department of Computer Science and Engineering at the University of North Texas. Dr. Parberry has more than a quarter century of experience in research and teaching and is nationally known as one of the pioneers of game programming in higher education.
Cartesian Coordinate Systems 1D Mathematics 2D Cartesian Space 3D Cartesian Space Odds and ends Vectors Vector - mathematical definition and other boring stuff Vector - a geometric definition Specifying vectors using Cartesian coordinates Vectors vs. points Negating a vector Vector multiplication by a scalar Vector addition and subtraction Vector magnitude (length) Unit vectors The distance formula Vector dot product Vector cross product Linear algebra identities Multiple Coordinate Spaces Why multiple coordinate spaces? Some useful coordinate spaces Coordinate space transformations Nested coordinate spaces In defense of upright space Introduction to Matrices Matrix - a mathematical definition Matrix - a geometric interpretation The bigger picture of linear algebra Matrices and Linear Transformations Rotation Scale Orthographic projection Reection Shearing Combining transformations Classes of transformations More on Matrices Determinant of a matrix Inverse of a matrix Orthogonal matrices 4 x 4 homogeneous matrices 4 x 4 matrices and perspective projection Polar Coordinate Systems 2D Polar Space Why would anybody use Polar coordinates? 3D Polar Space Using polar coordinates to specify vectors Rotation in Three Dimensions What exactly is "orientation?" Matrix form Euler angles Axis-angle and exponential map representations Quaternions Comparison of methods Converting between representations Geometric Primitives Representation techniques Lines and rays Spheres and circles Bounding boxes Planes Triangles Polygons Mathematical Topics from 3D Graphics How graphics works Viewing in 3D Coordinate spaces Polygon meshes Texture mapping The standard local lighting model Light sources Skeletal animation Bump mapping The real-time graphics pipeline Some HLSL examples Further reading Mechanics 1: Linear Kinematics and Calculus Overview and other expectation-reducing remarks Basic quantities and units Average velocity Instantaneous velocity and the derivative Acceleration Motion under constant acceleration Acceleration and the integral Uniform circular motion Mechanics 2: Linear and Rotational Dynamics Newton's three laws Some simple force laws Momentum Impulsive forces and collisions Rotational dynamics Real-time rigid body simulators Suggested reading Curves in 3D Parametric polynomial curves Polynomial interpolation Hermite curves Bezier curves Subdivision Splines Hermite and Bezier splines Continuity Automatic tangent control Afterword What next? Appendix A: Geometric Tests Appendix B: Answers to the Exercises Bibliography Index Exercises appear at the end of each chapter.