Essential Mathematics for Games and Interactive Applications: 3rd Edition (Hardback) book cover

Essential Mathematics for Games and Interactive Applications

3rd Edition

By James M. Van Verth, Lars M. Bishop

A K Peters/CRC Press

592 pages | 250 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781482250923
pub: 2015-08-26
SAVE ~$17.39
eBook (VitalSource) : 9780429196232
pub: 2015-09-15
from $41.98

FREE Standard Shipping!


Expert Guidance on the Math Needed for 3D Game Programming

Developed from the authors’ popular Game Developers Conference (GDC) tutorial, Essential Mathematics for Games and Interactive Applications, Third Edition illustrates the importance of mathematics in 3D programming. It shows you how to properly animate, simulate, and render scenes and discusses the mathematics behind the processes.

New to the Third Edition

Completely revised to fix errors and make the content flow better, this third edition reflects the increased use of shader graphics pipelines, such as in DirectX 11, OpenGL ES (GLES), and the OpenGL Core Profile. It also updates the material on real-time graphics with coverage of more realistic materials and lighting.

The Foundation for Successful 3D Programming

The book covers the low-level mathematical and geometric representations and algorithms that are the core of any game engine. It also explores all the stages of the rendering pipeline. The authors explain how to represent, transform, view, and animate geometry. They then focus on visual matters, specifically the representation, computation, and use of color. They also address randomness, intersecting geometric entities, and physical simulation.

An Introduction to Creating Real and Active Virtual Worlds

This updated book provides you with a conceptual understanding of the mathematics needed to create 3D games as well as a practical understanding of how these mathematical bases actually apply to games and graphics. It not only includes the theoretical mathematical background but also incorporates many examples of how the concepts are used to affect how a game looks and plays.

Web Resource

A supplementary website contains a collection of source code, supporting libraries, and interactive demonstrations that illustrate the concepts and enable you to experiment with animation and simulation applications. The site also includes slides and notes from the authors’ GDC tutorials.


Praise for Previous Editions:

"It’s the book with all the math you need for games."

—Neil Kirby, Researcher, Alcatel-Lucent

"Even though I’ve worked with these systems for years, this book showed me new ways of looking at several topics that make them easier to remember and use. For someone new to 3D programming, it is extremely useful—it gives them a solid background in pretty much every area they need to understand."

—Peter Lipson, Toys for Bob, Inc.

Table of Contents

Representing Real Numbers

Preliminary Concepts

Floating-Point Numbers

IEEE 754 Floating-Point Standard

Real-World Floating Point


Vectors and Points





Polygons and Triangles

Linear Transformations and Matrices

Linear Transformations


Systems of Linear Equations

Matrix Inverse


Eigenvalues and Eigenvectors

Affine Transformations

Affine Transformations

Standard Affine Transformations

Using Affine Transformations

Object Hierarchies

Orientation Representation

Rotation Matrices

Euler Angles

Axis–Angle Representation



Interpolation of Position

Interpolation of Orientation

Sampling Curves

Controlling Speed along a Curve

Camera Control

Viewing and Projection

View Frame and View Transformation

Projective Transformation

Culling and Clipping

Screen Transformation


Management of Viewing Transformations

Geometry and Programmable Shading

Color Representation

Points and Vertices

Surface Representation

Rendering Pipeline


Vertex Shaders

Fragment Shaders

Basic Coloring Methods

Texture Mapping

Texture Coordinates

The Steps of Texturing

Limitations of Static Shading


Basics of Light Approximation

Measuring Light

Types of Light Sources

Surface Materials and Light Interaction

Lighting and Shading

Textures and Lighting

Advanced Lighting


Displays and Framebuffers

Conceptual Rasterization Pipeline

Determining the Fragments: Pixels Covered by a Triangle

Determining Visible Geometry

Computing Fragment Shader Inputs

Rasterizing Textures

From Fragments to Pixels

Random Numbers


Determining Randomness

Random Number Generators

Special Applications

Intersection Testing

Closest Point and Distance Tests

Object Intersection

A Simple Collision System

Rigid-Body Dynamics

Linear Dynamics

Numerical Integration

Rotational Dynamics

Collision Response


About the Authors

James M. Van Verth is a software engineer at Google, where he works on GPU support for the Skia 2D Graphics Library. He has worked for Insomniac Games, NVIDIA, and Red Storm Entertainment and, for the past 17 years, he has been a regular speaker at GDC, teaching the tutorials "Math for Game Programmers" and "Physics for Game Programmers." He received a BA in math/computer science from Dartmouth College, an MS in computer science from the State University of New York at Buffalo, and an MS in computer science from the University of North Carolina at Chapel Hill.

Lars M. Bishop is an engineer in the Handheld Developer Technologies group at NVIDIA. Prior to joining NVIDIA, he was the chief technology officer at Numerical Design Limited, leading the development of the Gamebryo3D cross-platform game engine. He received a BS in math/computer science from Brown University and an MS in computer science from the University of North Carolina at Chapel Hill.

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Programming / Games