Foundations

of

Game Engine Development

Foundations of Game Engine Development, Volume 1: Mathematics Foundations of Game Engine Development, Volume 2: Rendering Foundations of Game Engine Development, Volume 3: Animation Foundations of Game Engine Development, Volume 4: Physics

Foundations of Game Engine Development is a new book series currently being written by Eric Lengyel. Its four volumes cover the essentials of game engine development in the broad areas of mathematics, rendering, animation, and physics.

Foundations of Game Engine Development, Volume 1: Mathametics

Volume 1: Mathematics
Release date: September 2016
ISBN: 978-0-9858117-4-7
200 pages • Full color • Soft cover

Purchase on Amazon.com

The first volume, known as FGED1, begins with conventional treatments of topics such as linear algebra, transforms, and geometry. Then, it introduces Grassmann algebra and geometric algebra to provide a much deeper understanding of the subject matter and highlight the places where traditional arithmetic with vectors, matrices, quaternions, etc., isn't quite correct.

Below is the full table of contents. The book includes 49 figures, 15 tables, 36 code snippets, 62 exercises, and 327 numbered equations.

Preface

Chapter 1: Vectors and Matrices

  • 1.1 Vector Fundamentals
  • 1.2 Basic Vector Operations
    • 1.2.1 Magnitude and Scalar Multiplication
    • 1.2.2 Addition and Subtraction
  • 1.3 Matrix Fundamentals
  • 1.4 Basic Matrix Operations
    • 1.4.1 Addition, Subtraction, and Scalar Multiplication
    • 1.4.2 Matrix Multiplication
  • 1.5 Vector Multiplication
    • 1.5.1 Dot Product
    • 1.5.2 Cross Product
    • 1.5.3 Scalar Triple Product
  • 1.6 Vector Projection
  • 1.7 Matrix Inversion
    • 1.7.1 Identity Matrices
    • 1.7.2 Determinants
    • 1.7.3 Elementary Matrices
    • 1.7.4 Inverse Calculation
    • 1.7.5 Inverses of Small Matrices
  • Exercises for Chapter 1

Chapter 2: Transforms

  • 2.1 Coordinate Spaces
    • 2.1.1 Transformation Matrices
    • 2.1.2 Orthogonal Transforms
    • 2.1.3 Transform Composition
  • 2.2 Rotations
    • 2.2.1 Rotation About a Coordinate Axis
    • 2.2.2 Rotation About an Arbitrary Axis
  • 2.3 Reflections
  • 2.4 Scales
  • 2.5 Skews
  • 2.6 Homogeneous Coordinates
  • 2.7 Quaternions
    • 2.7.1 Quaternion Fundamentals
    • 2.7.2 Rotations With Quaternions
  • Exercises for Chapter 2

Chapter 3: Geometry

  • 3.1 Triangle Meshes
  • 3.2 Normal Vectors
    • 3.2.1 Calculating Normal Vectors
    • 3.2.2 Transforming Normal Vectors
  • 3.3 Lines and Rays
    • 3.3.1 Parametric Lines
    • 3.3.2 Distance Between a Point and a Line
    • 3.3.3 Distance Between Two Lines
  • 3.4 Planes
    • 3.4.1 Implicit Planes
    • 3.4.2 Distance Between a Point and a Plane
    • 3.4.3 Reflection Through a Plane
    • 3.4.4 Intersection of a Line and a Plane
    • 3.4.5 Intersection of Three Planes
    • 3.4.6 Intersection of Two Planes
    • 3.4.7 Transforming Planes
  • 3.5 Plücker Coordinates
    • 3.5.1 Implicit Lines
    • 3.5.2 Homogeneous Formulas
    • 3.5.3 Transforming Lines
  • Exercises for Chapter 3

Chapter 4: Advanced Algebra

  • 4.1 Grassmann Algebra
    • 4.1.1 Wedge Product
    • 4.1.2 Bivectors
    • 4.1.3 Trivectors
    • 4.1.4 Algebraic Structure
    • 4.1.5 Complements
    • 4.1.6 Antivectors
    • 4.1.7 Antiwedge Product
  • 4.2 Projective Geometry
    • 4.2.1 Lines
    • 4.2.2 Planes
    • 4.2.3 Join and Meet
    • 4.2.4 Line Crossing
    • 4.2.5 Plane Distance
    • 4.2.6 Summary and Implementation
  • 4.3 Matrix Inverses
  • 4.4 Geometric Algebra
    • 4.4.1 Geometric Product
    • 4.4.2 Vector Division
    • 4.4.3 Rotors
  • 4.5 Conclusion
  • Exercises for Chapter 4

Index

Download code listings

Download solutions guide (PDF)

See errata for Volume 1

Foundations of Game Engine Development, Volume 2: Rendering

Volume 2: Rendering
ISBN: 978-0-9858117-5-4
Full color • Soft cover
Approximately 300 pages

This book is currently being written and will be published as soon as possible. Below is the list of chapters and general topics covered.

Chapter 5: Graphics Processing

  • Color science
  • Rendering pipeline
  • Coordinate spaces (e.g., world, object, camera, light)
  • Vertex, pixel, geometry, tessellation shaders
  • Rasterization stage, warps, wavefronts
  • Scissor, depth buffering, stencil, blending

Chapter 6: Projections

  • View frustums
  • Field of view
  • Perspective correct interpolation
  • Normalized device coordinates
  • Projection matrices
  • Infinite far plane
  • Reversed depth precision
  • Oblique near plane

Chapter 7: Shaders

  • Conventional shading
  • Physically-based shading
  • Texture mapping, mipmaps, filtering
  • Tangent space
  • Normal mapping
  • Horizon mapping

Chapter 8: Lighting and Shadows

  • Light sources, point, spot, infinite/directional
  • Extent optimizations (scissor, depth bounds)
  • Shadow mapping, cascades
  • Stencil shadows
  • Indirect lighting, radiosity
  • Fog

Chapter 9: Visibility and Occlusion

  • Bounding volumes
  • Object culling
  • Light culling
  • Tree/graph structures
  • Visible set, castor set
  • Zones and portals
  • Occluder Projection
  • Fog Occlusion

Chapter 10: Advanced Rendering

  • Billboards
  • Particle systems
  • Random distributions
  • Decals
  • Screen-space effects
  • Shafts, halos
  • Isosurface extraction, marching cubes
Foundations of Game Engine Development, Volume 3: Animation

Volume 3: Animation
ISBN: 978-0-9858117-6-1
Full color • Soft cover
Length to be determined

Below is a list of topics that are planned to be covered in the third volume.

  • Bézier curves
  • B-splines
  • Hierarchical models
  • Morphing
  • Skinning
  • Forward kinematics
  • Inverse kinematics
  • Dual quaternions
  • Animation trees
  • Projectiles
  • Particle systems
  • Special effects
Foundations of Game Engine Development, Volume 4: Physics

Volume 4: Physics
ISBN: 978-0-9858117-7-8
Full color • Soft cover
Length to be determined

Below is a list of topics that are planned to be covered in the fourth volume.

  • Linear velocity, angular velocity
  • Forces, acceleration
  • Center of mass
  • Moment of inertia
  • Collision detection
  • GJK algorithm
  • Conservative advancement
  • Velocity constraints, position constraints
  • Lagrange multipliers
  • Jacobians
  • Split impulses
  • Joints (e.g., spherical, cylindrical, revolute)
  • Restitution
  • Friction
  • Rolling resistance
  • Buoyancy