3rd Edition

Essential Mathematics for Games and Interactive Applications

By James M. Van Verth, Lars M. Bishop Copyright 2016
624 Pages 250 B/W Illustrations
by A K Peters/CRC Press

624 Pages
by A K Peters/CRC Press

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.... Read more

Representing Real Numbers
Preliminary Concepts
Floating-Point Numbers
IEEE 754 Floating-Point Standard
Real-World Floating Point
Code

Vectors and Points
Vectors
Points
Lines
Planes
Polygons and Triangles

Linear Transformations and Matrices
Linear Transformations
Matrices
Systems of Linear Equations
Matrix Inverse
Determinant
Eigenvalues and Eigenvectors

Affine Transformations
Affine Transformations
Standard Affine Transformations
Using Affine Transformations
Object Hierarchies

Orientation Representation
Rotation Matrices
Euler Angles
Axis–Angle Representation
Quaternions

Interpolation
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
Picking
Management of Viewing Transformations

Geometry and Programmable Shading
Color Representation
Points and Vertices
Surface Representation
Rendering Pipeline
Shaders
Vertex Shaders
Fragment Shaders
Basic Coloring Methods
Texture Mapping
Texture Coordinates
The Steps of Texturing
Limitations of Static Shading

Lighting
Basics of Light Approximation
Measuring Light
Types of Light Sources
Surface Materials and Light Interaction
Lighting and Shading
Textures and Lighting
Advanced Lighting

Rasterization
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
Probability
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
Efficiency

Biography

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.

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.