Upcoming Events
Unite 2010
11/10 - 11/12 @ Montréal, Canada

GDC China
12/5 - 12/7 @ Shanghai, China

Asia Game Show 2010
12/24 - 12/27  

GDC 2011
2/28 - 3/4 @ San Francisco, CA

More events...
Quick Stats
39 people currently visiting GDNet.
2406 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!
Link to us Events 4 Gamers
Home » Articles & Resources » Programming » Math and Physics
Intel sponsors gamedev.net search:
Math and Physics

Here you will find articles and tutorials on subjects that are foundational in games: Math and Physics. Note that most of the articles you will find here will be general in nature, and not discuss implementation details such as how to apply these concepts in games. For articles that do apply these principles directly to graphics and games, see the other appropriate sections.

For more information about Math and Physics, check out:

Resources Listed: 114
MiscellaneousPolygons
Physics TutorialsNURBS, Splines and Patches
General MathFourier Transforms
QuaternionsCloth Simulation
MatricesNoise
Vectors 
 
Subcategory: Miscellaneous
Topic Author Description
3D Object Morphing
[Added: 7/16/1999]
   
Cordic Rotators
[Added: 7/16/1999]
   
Hidden Surface Removal
[Added: 7/16/1999]
   
Overview of Marching Cubes Algorithm
[Added: 7/16/1999]
   
Tessellate a sphere with triangles (source)
[Added: 7/16/1999]
   
Tessellate a sphere with triangles (source) II
[Added: 7/16/1999]
   
Three Dimensional Shading
[Added: 1/11/2001]
Lithium  Explains the dot product and its use in lighting equations. 
Voxel Engine
[Added: 7/16/1999]
   
Game Physics, Second Edition
[Added: 7/14/2010]
John Hattan  We review the second edition of the exhaustive textbook on physics for games. 
 
Subcategory: Physics Tutorials
Topic Author Description
1. Introduction
[Added: 8/6/1999]
Michael Tanczos  This article is merely an introduction to this series. 
2. Motion Along a Straight Line
[Added: 8/6/1999]
Michael Tanczos  This article covers the basics of linear motion, including displacement, velocity, and acceleration, and how they are related. 
2D Car Physics
[Added: 12/15/2007]
Matt Kincaid  Tutorial on the math and implementation of car physics in a 2D environment 
3. Vectors
[Added: 8/6/1999]
Mike Tanczos  Covers the basics of vectors and vector math. 
4. Motion in Two and Three Dimensions
[Added: 8/6/1999]
Randy Trulson  This article discusses motion in greater detail. 
5. Force and Motion
[Added: 8/6/1999]
David Baird  Going into some detail about force and motion, this article also includes a wealth of handy formulas and definitions. 
A Simple Time-Corrected Verlet Integration Method
[Added: 2/6/2005]
Jonathan "lonesock" Dummer  Proposes how to minimize the shortcomings of Verlet integration. 
C++ Data Structures for Rigid-Body Physics
[Added: 4/27/2000]
Miguel Gomez  Shows you how to build a solid foundation for your physics engine. 
Exploring Spring Model
[Added: 10/12/2001]
Gustavo Oliveira  Reviews the implementation of a spring model from its simplest form to more sophisticated applications, taking the subject a step beyond the material available in most references.  
Gravity FAQ
[Added: 9/8/1999]
Edgar Roman  This is a light and entertaining document that does a good job of introducing the reader with the rudiments of implementing gravity in a game. 
Lone Game Developer Battles Physics Simulator
[Added: 7/10/2000]
Jeff Lander  Looks at the challenges involved in achieving a realistic and interesting physics simulation. 
Outsourcing Reality: Integrating a Commercial Physics Engine
[Added: 4/20/2003]
Matt McLaurin  Covers the advantages and process involved in using a commercial physics engine. 
Physics Engines, Part One: The Stress Test
[Added: 9/25/2000]
Jeff Lander and Chris Hecker  MathEngine's Dynamics Toolkit 2.0 and Collision Toolkit 1.0, the Havok GDK from Havok, and Ipion's Virtual Physics SDK are put to the test. 
Physics Engines, Part Two: The Rest of the Story
[Added: 9/25/2000]
Jeff Lander and Chris Hecker  Takes a broader look at what MathEngine's Dynamics Toolkit 2.0 and Collision Toolkit 1.0, the Havok GDK from Havok, and Ipion's Virtual Physics SDK have to offer. 
Physics for Game Developers Chapter 6: Projectiles
[Added: 11/28/2001]
David M. Bourg  A chapter from the book Physics for Game Developers
Physics on the Back of a Cocktail Napkin
[Added: 6/13/2000]
Jeff Lander  Uses pool to demonstrate how a solid physical foundation can actually create interesting game play, as well as providing some ideas that can be converted easily to other games such as golf or tennis. 
Real time deformation of solids, Part 1
[Added: 8/27/2001]
Pierre Rebours  Describes how the finite element method from numerical analysis can be applied to solid deformations in games in real time. 
Real time deformation of solids, Part 2
[Added: 12/9/2001]
Pierre Rebours  The second article in this series provides a case study, takes a deeper look at the Hyperion SDK, and discusses optimizations to the method. 
Simple Harmonic Motion
[Added: 7/31/1999]
  This would apply to waves, mass-spring systems, and pendulums. 
The Physics of Racing Series, FAQ
[Added: 1/7/2002]
Brian Beckman  A brief overview of the series. 
The Physics of Racing, Part 1: Weight Transfer
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 2: Keeping Your Tires Stuck to the Ground
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 3: Basic Calculations
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 4: There Is No Such Thing as Centrifugal Force
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 5: Introduction to the Racing Line
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 6: Speed and Horsepower
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 7: The Traction Budget
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 8: Simulating Car Dynamics with a Computer Program
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 9: Straights
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 10: Grip Angle
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 11: Braking
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 12: CyberCar, Every Racer's DWIM Car?
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 13: Transients - The Lost Episode
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 14: Why Smoothness?
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 15: Bumps In The Road
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 16: RARS, A Simple Racing Simulator
[Added: 1/7/2002]
Brian Beckman   
The Physics of Racing, Part 17: 'Slow-in, Fast-out!' or, Advanced Analysis of the Racing Line
[Added: 1/7/2002]
Brian Beckman  Associated Spreadsheets (xls, pdf
The Physics of Racing, Part 18: 'Slow-in, Fast-out!' or, Advanced Analysis of the Racing Line, Continued
[Added: 1/7/2002]
Brian Beckman  Associated Spreadsheets (xls, pdf: 1, 2, 3
The Trials and Tribulations of Tribology
[Added: 6/13/2000]
Jeff Lander  This article discusses the simulation of friction in real-time 3D applications, otherwise known as the field of tribology. 
Torque and Rotational Motion
[Added: 7/31/1999]
  The physics of torque and rotational motion. 
 
Subcategory: General Math
Topic Author Description
Area and Volume Calculations
[Added: 5/12/2005]
Kyle Owen  Presents a three dimensional volume calculator based on the pressure volume model. 
Collision detection resources
[Added: 4/24/2006]
  Contains a number of useful resources on collision detection and related topics. 
FAQ: 3-D Information for the Programmer
[Added: 7/16/1999]
   
Fast 2D Line Intersection Algorithm
[Added: 7/16/1999]
   
Geometry library
[Added: 8/17/2003]
Adam Freidin  A geometry library containing components for vectors, transformations, and volume, as well as complete documentation. 
Math Tricks
[Added: 7/16/1999]
   
SciMath FAQ
[Added: 7/16/1999]
   
Understanding Reverse Polish Notation
[Added: 7/16/1999]
  Explains what RPN is, and where it's used. 
Volume Integration
[Added: 9/27/2007]
Stan Melax  easy short methods to compute volume, center of mass, and inertia tensor of a mesh 
 
Subcategory: Quaternions
Topic Author Description
A Simple Quaternion-based Camera
[Added: 9/22/2003]
Robert Crossland  Presents a simple quaternion-based camera that can be used to rotate the view of your camera using the mouse. 
Orientation with Quaternions
[Added: 9/14/1999]
Doug Moore  This document discusses using quaternions rather than matrices as a means to store an object's orientation information. 
Quaternion
[Added: 7/16/1999]
   
Quaternion Numbers
[Added: 7/16/1999]
   
Quaternion Powers
[Added: 7/6/2000]
Sobeit Void  The article will show you how to do rotations using quaternions, and bring you closer to understanding quaternions (and their powers). 
Quaternions and Orthogonal 4x4 Real Matrices
[Added: 7/16/1999]
   
Rotating Objects Using Quaternions
[Added: 11/18/1999]
Nick Bobick  Quaternions, often used for smooth interpolation between two angles, are becoming very popular, especially in third-person games. This document, from Gamasutra, does a good job of getting one acquainted with them. 
Rotating With Quaternions - The Maths
[Added: 5/23/2002]
Duncan Adamson  Consise explaination of the math behind quaternion rotations. 
Rotation Using Quaternions
[Added: 7/16/1999]
   
The Matrix and Quaternions FAQ
[Added: 2/11/2002]
  Impressive collection of information on matricies and quaternions. 
 
Subcategory: Matrices
Topic Author Description
3D Matrix Math Demystified
[Added: 9/8/1999]
Seumas McNally  A simple explanation of 3D matrix math. 
3D Rotations
[Added: 7/16/1999]
   
3D Transformations
[Added: 7/16/1999]
   
3x3 Matrix Diagonalization
[Added: 9/27/2007]
Stan Melax  shows how to derive a quaternion that diagonalizes a matrix (i.e. principal axes) 
Calculating a rotation matrix based on location/ta
[Added: 7/16/1999]
   
Camera Matrix
[Added: 7/16/1999]
   
Complex Matrix Transformations
[Added: 5/29/2002]
Scott Johnson  Introduces a useful naming scheme, a shorthand notation for transforms and tips for debugging them that will allow you to create concatenated matrix transforms correctly in much shorter time. 
Decomposing Matrices
[Added: 5/2/2008]
Robert Blum  Explains how to take a transform matrix and decompose it into scale, rotation, and translation. 
Mathematics of 3D Graphics
[Added: 7/16/1999]
   
Matrix and Vector Manipulation for Computer Graphics
[Added: 5/23/2001]
Michael Ducker  Provides an introduction to vectors and matrices. 
Matrix Math
[Added: 12/2/1999]
Jeff Weeks  A simple introduction to matrices 
Matrix Transformation
[Added: 7/16/1999]
   
Quaternions and Orthogonal 4x4 Real Matrices
[Added: 7/16/1999]
   
The Matrix and Quaternions FAQ
[Added: 2/11/2002]
  Impressive collection of information on matricies and quaternions. 
Three Dimensional Rotations
[Added: 1/11/2001]
  Explains the math behind 3D rotations. 
Vectors and Matrices
[Added: 8/3/1999]
Jeff Hill  This article is the first in a series discussing a number of oft-overlooked topics in computer graphics. The standard textbooks on 3D rendering tend towards the more theoretical aspects of the subject, and even the most practical references often implement either partial systems, or trivial systems.  
Vectors and Matrices: A Primer
[Added: 6/4/2002]
Phil Dadd  Provides basic coverage of vectors and matrices and their use in graphics programming. 
Viewing Systems for 3d Engines
[Added: 7/16/1999]
   
 
Subcategory: Vectors
Topic Author Description
3D Vectors
[Added: 7/5/2000]
Jeff Weeks  A short tutorial covering what vectors are and how to use them. 
Compressed Quantized Unit Vectors
[Added: 8/21/2000]
Rafael Baptista  This article descibes a method for mapping 12 byte vectors into 2 byte quantized normals and back. 
Higher Accuracy Quantized Normals
[Added: 12/8/2000]
Raphael Baptista  Provides an update improving the quantization technique presented in Compressed Quantized Unit Vectors. 
Mathematics of 3D Graphics
[Added: 7/16/1999]
   
Matrix and Vector Manipulation for Computer Graphics
[Added: 5/23/2001]
Michael Ducker  Provides an introduction to vectors and matrices. 
Vectors and Matrices
[Added: 8/3/1999]
Jeff Hill  This article is the first in a series discussing a number of oft-overlooked topics in computer graphics. The standard textbooks on 3D rendering tend towards the more theoretical aspects of the subject, and even the most practical references often implement either partial systems, or trivial systems.  
Visualizing Vector Addition
[Added: 7/17/2000]
Seumas McNally  Presents graphically what adding two vectors represents. 
 
Subcategory: Polygons
Topic Author Description
Fast Polygon Triangulation based on Seidel's Algorithm
[Added: 7/16/1999]
   
HOW To of Polygons
[Added: 7/16/1999]
   
Point in a poly
[Added: 7/16/1999]
   
Point in a poly II
[Added: 7/16/1999]
   
Poly Sorting Algorithms
[Added: 7/16/1999]
   
Polygon to triangles
[Added: 7/16/1999]
   
 
Subcategory: NURBS, Splines and Patches
Topic Author Description
Bezier Curves and Surfaces
[Added: 4/27/2002]
Jesper Tveit  Provides an introduction to parametric equations, Bezier curves, and Bezier surfaces, including a sample implementation in OpenGL. 
Bezier Patches
[Added: 11/6/2001]
Michael Skinner  Explains what Bezier curves and patches are, including the math behind them. 
Bézier Triangles and N-Patches
[Added: 4/20/2003]
Tomas Akenine-Möller and Eric Haines  Excerpt from Real Time Rendering, Volumne 2 
Defining a Sphere with Bezier Patches
[Added: 7/16/1999]
   
How to Calculate KXP Spline Derivatives
[Added: 7/16/1999]
   
Nonuniform Rational B-Splines - NURBS
[Added: 7/16/1999]
   
Unraveling Bézier Splines
[Added: 1/5/2000]
Mr. Oreo  Those bézier splines can be a little confusing, so if you find yourself in need of some nice curves, have a read.  
 
Subcategory: Fourier Transforms
Topic Author Description
Fast Fourier Transforms
[Added: 3/19/2001]
Magmai Kai Holmlor  Provides a brief explanation of FFTs, with sample programs. 
Fourier Transformations
[Added: 7/16/1999]
Steve Lamont  Provides source to compute the 1D or 2D Fourier transform on some data. 
Manipulating the Forward and Reverse Fourier Transform
[Added: 7/16/1999]
Chrstopher Lusardi  Somewhat cryptic because it is primarily equations with little explanation, but may be useful. 
 
Subcategory: Cloth Simulation
Topic Author Description
Cloth Simulation
[Added: 3/19/2003]
  Nice collection of resources for cloth simulation. 
Simulating Cloth for 3D Games
[Added: 2/16/2002]
Dean Macri  Presents three techniques for simulating cloth. 
 
Subcategory: Noise
Topic Author Description
Making Noise
[Added: 7/27/2003]
Ken Perlin  An introduction to Perlin noise by the guy it's named after. 
Perlin Noise
[Added: 7/27/2003]
Hugo Elias  Introduction, implementation, and sample uses for Perlin noise. 
Perlin Noise and its Fractal Nature
[Added: 7/27/2003]
James Long  Noise tutorial including interactive components. 
 
 Key: = HTML article hosted here  , = HTML article hosted elsewhere  = link to another web site  = Adobe Acrobat document  = Zip files  = Word or text document