3D Math Primer for Graphics and Game Development: 2nd Edition (e-Book) book cover

3D Math Primer for Graphics and Game Development

2nd Edition

By Fletcher Dunn, Ian Parberry

A K Peters/CRC Press

846 pages

Purchasing Options:$ = USD
Hardback: 9781568817231
pub: 2011-11-02
eBook (VitalSource) : 9781498759892
pub: 2015-09-15
from $28.98

FREE Standard Shipping!


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.


"With solid theory and references, along with practical advice borne from decades of experience, all presented in an informal and demystifying style, Dunn & Parberry provide an accessible and useful approach to the key mathematical operations needed in 3D computer graphics."

—Eric Haines, author of Real-Time Rendering

"The book describes the mathematics involved in game development in a very clear and easy to understand way, layered on the practical background of years of game engine programming experience."

—Wolfgang Engel, editor of GPU Pro

Table of Contents

Cartesian Coordinate Systems

1D Mathematics

2D Cartesian Space

3D Cartesian Space

Odds and ends


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



Orthographic projection



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


Comparison of methods

Converting between representations

Geometric Primitives

Representation techniques

Lines and rays

Spheres and circles

Bounding boxes




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


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


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



Hermite and Bezier splines


Automatic tangent control


What next?

Appendix A: Geometric Tests

Appendix B: Answers to the Exercises



Exercises appear at the end of each chapter.

About the Authors

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.

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Programming / Games
MATHEMATICS / Recreations & Games