Table of Contents for Game Physics (2nd Edition)

1  Introduction
   1.1 A Brief History of the World
   1.2 A Summary of the Topics
   1.3 Examples and Exercises
2  Basic Concepts
   2.1 Rigid Body Classification
   2.2 Rigid Body Kinematics
       2.2.1 Single Particle
       2.2.2 Particle Systems and Continuous Materials
   2.3 Newton's Laws
   2.4 Forces
       2.4.1 Gravitational Forces
       2.4.2 Spring Forces
       2.4.3 Friction and Other Dissipative Forces
       2.4.4 Torque
       2.4.5 Equilibrium
   2.5 Momenta
       2.5.1 Linear Momentum
       2.5.2 Angular Momentum
       2.5.3 Center of Mass
       2.5.4 Moments and Products of Inertia
       2.5.5 Mass and Inertia Tensor of a Solid Polyhedron
   2.6 Energy
       2.6.1 Work and Kinetic Energy
       2.6.2 Conservative Forces and Potential Energy
        
3  Rigid Body Motion
   3.1 Newtonian Dynamics
   3.2 Lagrangian Dynamics
       3.2.1 Equations of Motion for a Particle
       3.2.2 Time-Varying Frames or Constraints
       3.2.3 Interpretation of the Equations of Motion
       3.2.4 Equations of Motion for a System of Particles
       3.2.5 Equations of Motion for a Continuum of Mass
       3.2.6 Examples with Conservative Forces
       3.2.7 Examples with Dissipative Forces
   3.3 Euler's Equations of Motion
        
4  Deformable Bodies
   4.1 Elasticity, Stress, and Strain
   4.2 Mass-Spring Systems
       4.2.1 One-Dimensional Array of Masses
       4.2.2 Two-Dimensional Array of Masses
       4.2.3 Three-Dimensional Array of Masses
       4.2.4 Arbitrary Configurations
   4.3 Control Point Deformation
       4.3.1 B-Spline Curves
       4.3.2 NURBS Curves
       4.3.3 B-Spline Surfaces
       4.3.4 NURBS Surfaces
       4.3.5 Surfaces Built from Curves
   4.4 Free-Form Deformation
   4.5 Implicit Surface Deformation
       4.5.1 Level Set Extraction
       4.5.2 Isocurve Extraction in 2D Images
       4.5.3 Isosurface Extraction in 3D Images
5  Fluids and Gases
   5.1 Vector Calculus
       5.1.1 Gradient, Directional Derivative, and Total Derivative
       5.1.2 Vector Fields, Divergence, and Laplacian
       5.1.3 Curl
       5.1.4 Line Integrals
       5.1.5 Surface Integrals and Stokes' Theorem
       5.1.6 Volume Integrals and the Divergence Theorem
       5.1.7 Green's Theorem, Laplace Equation, and Poisson's Equation
       5.1.8 Vector Field Decomposition
   5.2 Strain and Stress
       5.2.1 Strain Tensor
       5.2.2 Stress Tensor
       5.2.3 The Relationship Between Strain and Stress
   5.3 Conservation Laws
       5.3.1 Conservation of Mass
       5.3.2 Conservation of Momentum
   5.4 A Simplified Model for Fluid Flow
   5.5 Implementing the Simplified 2D Model
       5.5.1 The Density Equation
       5.5.2 The Diffusion Term
       5.5.3 The Advection Term
       5.5.4 The Source-Sink Term
       5.5.5 The Total Density Update
       5.5.6 The Velocity Equations
       5.5.7 Specialized Boundary Handling
   5.6 Implementing the Simplified 3D Model
   5.7 Variations of the Simplified Model
       5.7.1 Vorticity Confinement and Vortex Particles
       5.7.2 Separate Pressure Term
       5.7.3 Omit Diffusion Terms
       5.7.4 Density and Velocity Dissipation
       5.7.5 Include Temperature
       5.7.6 Compressible Flow
       5.7.7 Obstacles in the Fluid Region
       5.7.8 Moving Boundaries and Multiple Fluids
       5.7.9 Finding Papers on Fluid Simulation
6  Physics Engines
   6.1 The Physics Tick
   6.2 Collision Culling
       6.2.1 Culling with Bounding Spheres
       6.2.2 Culling with Axis-Aligned Bounding Boxes
       6.2.3 AABB Culling in a Single-Threaded Environment
       6.2.4 AABB Culling Using a Separate Core of a CPU
       6.2.5 AABB Culling Using a Specialized Processor
   6.3 Test-Intersection Queries
       6.3.1 Spheres
       6.3.2 Capsules
       6.3.3 Ellipsoids
       6.3.4 Cylinders
   6.4 Collision Detection with Convex Polyhedra
       6.4.1 The Method of Separating Axes
       6.4.2 Stationary Objects
       6.4.3 Objects Moving with Constant Linear Velocity
       6.4.4 Oriented Bounding Boxes
       6.4.5 Boxes Moving with Constant Linear and Angular Velocity
       6.4.6 GJK Algorithm
   6.5 Unconstrained Motion
   6.6 Acceleration-Based Constrained Motion
       6.6.1 Collision Points
       6.6.2 Collision Response for Colliding Contact
       6.6.3 Collision Response for Resting Contact
       6.6.4 An Illustrative Implementation
       6.6.5 Lagrangian Dynamics
   6.7 Velocity-Based Constrained Motion
       6.7.1 Constraint on a Particle
       6.7.2 Constraints on a Particle System
       6.7.3 Constraint on a Rigid Body
       6.7.4 Constraints on a Rigid Body System
       6.7.5 Comments and Variations on the Algorithm
   6.8 Variations
7  Linear Algebra
   7.1 A Review of Number Systems
       7.1.1 The Integers
       7.1.2 The Rational Numbers
       7.1.3 The Real Numbers
       7.1.4 The Complex Numbers
       7.1.5 Fields
   7.2 Systems of Linear Equations
       7.2.1 A Closer Look at Two Equations in Two Unknowns
       7.2.2 Gaussian Elimination and Elementary Row Operations
       7.2.3 Nonsquare Systems of Equations
       7.2.4 The Geometry of Linear Systems
       7.2.5 Numerical Issues
       7.2.6 Iterative Methods for Solving Linear Systems
   7.3 Matrices
       7.3.1 Some Special Matrices
       7.3.2 Elementary Row Matrices
       7.3.3 Inverse Matrices
       7.3.4 Properties of Inverses
       7.3.5 Construction of Inverses
       7.3.6 LU Decomposition
   7.4 Vector Spaces
       7.4.1 Definition of a Vector Space
       7.4.2 Linear Combinations, Spans, and Subspaces
       7.4.3 Linear Independence and Bases
       7.4.4 Inner Products, Length, Orthogonality, and Projection
       7.4.5 Dot Product, Cross Product, and Triple Products
       7.4.6 Orthogonal Subspaces
       7.4.7 The Fundamental Theorem of Linear Algebra
       7.4.8 Projection and Least Squares
       7.4.9 Linear Transformations
   7.5 Advanced Topics
       7.5.1 Determinants
       7.5.2 Eigenvalues and Eigenvectors
       7.5.3 Eigendecomposition for Symmetric Matrices
       7.5.4 S + N Decomposition
       7.5.5 Applications
8  Affine Algebra
   8.1 Introduction
   8.2 Coordinate Systems
   8.3 Subspaces
   8.4 Transformations
   8.5 Barycentric Coordinates
       8.5.1 Triangles
       8.5.2 Tetrahedra
       8.5.3 Simplices
       8.5.4 Length, Area, Volume, and Hypervolume
9  Calculus
   9.1 Univariate Calculus 
       9.1.1 Limits
       9.1.2 Limits of a Sequence
       9.1.3 Continuity
       9.1.4 Differentiation
       9.1.5 L'Hopital's Rule
       9.1.6 Integration
   9.2 Multivariate Calculus
       9.2.1 Limits and Continuity
       9.2.2 Differentiation
       9.2.3 Integration
   9.3 Applications
       9.3.1 Optimization
       9.3.2 Constrained Optimization
       9.3.3 Derivative Approximations by Finite Differences
10 Quaternions
   10.1 Rotation Matrices
   10.2 The Classical Approach
        10.2.1 Algebraic Operations
        10.2.2 Relationship of Quaternions to Rotations
   10.3 A Linear Algebraic Approach
   10.4 Interpolation of Quaternions
        10.4.1 Spherical Linear Interpolation
        10.4.2 Spherical Quadratic Interpolation
   10.5 Derivatives of Time-Varying Quaternions
11 Differential Equations
   11.1 First-Order Equations
   11.2 Existence, Uniqueness, and Continuous Dependence
   11.3 Second-Order Equations
   11.4 General-Order Equations
   11.5 Systems of Linear Differential Equations
   11.6 Equilbria and Stability
        11.6.1 Stability for Constant-Coefficient Linear Systems
        11.6.2 Stability for General Autonomous Systems
12 Ordinary Difference Equations
   12.1 Definitions
   12.2 Linear Equations
        12.2.1 First-Order Linear Equations
        12.2.2 Second-Order Linear Equations
   12.3 Constant Coefficient Equations
   12.4 Systems of Equations
13 Numerical Methods
   13.1 Euler's Method
   13.2 Higher-Order Taylor Methods
   13.3 Methods Via an Integral Formulation
   13.4 Runge-Kutta Methods
        13.4.1 Second-Order Methods
        13.4.2 Third-Order Methods
        13.4.3 Fourth-Order Methods
   13.5 Multistep Methods
   13.6 Predictor-Corrector Methods
   13.7 Extrapolation Methods
        13.7.1 Richardson Extrapolation
        13.7.2 Application to Differential Equations
        13.7.3 Polynomial Interpolation and Extrapolation
        13.7.4 Rational Polynomial Interpolation and Extrapolation
        13.7.5 Modified Midpoint Method
        13.7.6 Bulirsch-Stoer Method
   13.8 Verlet Integration
        13.8.1 Forces without a Velocity Component
        13.8.2 Forces with a Velocity Component
        13.8.3 Simulating Drag in a System
        13.8.4 Leap Frog Method
        13.8.5 Velocity Verlet Method
        13.8.6 Gear's Fifth-Order Predictor-Corrector Method
   13.9 Numerical Stability and its Relationship to Physical Stability
        13.9.1 Stability for Single-Step Methods
        13.9.2 Stability for Multistep Methods
        13.9.3 Choosing a Stable Step Size
   13.10 Stiff Equations
14 Linear Complementarity and Mathematical Programming
   14.1 Linear Programming
        14.1.1 A Two-Dimensional Example
        14.1.2 Solution by Pairwise Intersections
        14.1.3 Statement of the General Problem
        14.1.4 The Dual Problem
   14.2 The Linear Complementarity Problem
        14.1.1 The Lemke-Howson Algorithm
        14.1.2 Zero Constant Terms
        14.1.3 The Complementary Variable cannot Leave the Dictionary
   14.3 Mathematical Programming
        14.3.1 Karush-Kuhn-Tucker Conditions
        14.3.2 Convex Quadratic Programming
        14.3.3 General Duality Theory
   14.4 Applications
        14.4.1 Distance Calculations
        14.4.2 Contact Forces