Dave Eberly's 3D Game Engine Design was the first professional guide to the essential concepts and algorithms of real-time 3D engines and quickly became a classic of game development. Dave's new book 3D Game Engine Architecture continues the tradition with a comprehensive look at the software engineering and programming of 3D engines.

This book is a complete guide to the engineering process, starting with a walk-through of the graphics pipeline showing how to construct the core elements of 3D systems, including data structures, the math system, and the object system. Dave explains how to manage data with scene graphs, how to build rendering and camera systems, and how to handle level of detail, terrain, and animation.

Advanced rendering effects such as vertex and pixel shaders are also covered as well as collision detection and physics systems. The book concludes with a discussion of application design, development tools, and coding standards for the source code of the new version of the Wild Magic engine included on the CD-ROM. Wild Magic is a commercial-quality game engine used by many companies and is a unique resource for the game development community.

Key Features

*CD-ROM with the complete C++ source code for Wild Magic version 3, a commercial-quality game engine for Windows, Linux, and OS X.
*A comprehensive, practical guide to all the steps necessary to build professional-quality real-time simulations with just minimal mathematics required.
*Emphasizes the application of software engineering principles and describes the architecture of large libraries.


Professionals or students working in game development, simulation, scientific visualization, or virtual worlds.

Table of Contents

  • About the Author
  • Preface
  • Chapter 1 Introduction
    • 1.1 Drawing a Triangle
    • 1.2 Drawing a Triangle Mesh
    • 1.3 Drawing a Complicated Scene
    • 1.4 Abstraction of Systems
  • Chapter 2 Core Systems
    • 2.1 The Low-Level System
      • 2.1.1 Basic Data Structures
      • 2.1.2 Encapsulating Platform-Specific Concepts
      • 2.1.3 Endianness
      • 2.1.4 System Time
      • 2.1.5 File Handling
      • 2.1.6 Memory Allocation and Deallocation
    • 2.2 The Mathematics System
      • 2.2.1 Basic Mathematics Functions
      • 2.2.2 Fast Functions
      • 2.2.3 Vectors
      • 2.2.4 Matrices
      • 2.2.5 Quaternions
      • 2.2.6 Lines and Planes
      • 2.2.7 Colors
    • 2.3 The Object System
      • 2.3.1 Run-Time Type Information
      • 2.3.2 Names and Unique Identifiers
      • 2.3.3 Sharing and Smart Pointers
      • 2.3.4 Controllers
      • 2.3.5 Streaming
      • 2.3.6 Cloning
      • 2.3.7 String Trees
      • 2.3.8 Initialization and Termination
  • Chapter 3 Scene Graphs and Renderers
    • 3.1 The Core Classes
      • 3.1.1 Motivation for the Classes
      • 3.1.2 Spatial Hierarchy Design
      • 3.1.3 Instancing
    • 3.2 Geometric State
      • 3.2.1 Transformations
      • 3.2.2 Bounding Volumes
      • 3.2.3 The Core Classes and Geometric Updates
    • 3.3 Geometric Types
      • 3.3.1 Points
      • 3.3.2 Line Segments
      • 3.3.3 Triangle Meshes
      • 3.3.4 Particles
    • 3.4 Render State
      • 3.4.1 Global State
      • 3.4.2 Lights
      • 3.4.3 Textures
      • 3.4.4 Multitexturing
      • 3.4.5 Effects
      • 3.4.6 The Core Classes and Render State Updates
    • 3.5 Renderers and Cameras
      • 3.5.1 Camera Models
      • 3.5.2 Basic Architecture for Rendering
      • 3.5.3 Single-Pass Drawing
      • 3.5.4 The DrawPrimitive Function


No. of pages:
© 2007
Morgan Kaufmann
Print ISBN:
Electronic ISBN:

About the editor

David Eberly

Dave Eberly is the president of Geometric Tools, Inc. (, a company that specializes in software development for computer graphics, image analysis, and numerical methods. Previously, he was the director of engineering at Numerical Design Ltd. (NDL), the company responsible for the real-time 3D game engine, NetImmerse. He also worked for NDL on Gamebryo, which was the next-generation engine after NetImmerse. His background includes a BA degree in mathematics from Bloomsburg University, MS and PhD degrees in mathematics from the University of Colorado at Boulder, and MS and PhD degrees in computer science from the University of North Carolina at ChapelHill. He is the author of 3D Game Engine Design, 2nd Edition (2006), 3D Game Engine Architecture (2005), Game Physics (2004), and coauthor with Philip Schneider of Geometric Tools for Computer Graphics (2003), all published by Morgan Kaufmann. As a mathematician, Dave did research in the mathematics of combustion, signal and image processing, and length-biased distributions in statistics. He was an associate professor at the University of Texas at San Antonio with an adjunct appointment in radiology at the U.T. Health Science Center at San Antonio. In 1991, he gave up his tenured position to re-train in computer science at the University of North Carolina. After graduating in 1994, he remained for one year as a research associate professor in computer science with a joint appointment in the Department of Neurosurgery, working in medical image analysis. His next stop was the SAS Institute, working for a year on SAS/Insight, a statistical graphics package. Finally, deciding that computer graphics and geometry were his real calling, Dave went to work for NDL (which is now Emergent Game Technologies), then to Magic Software, Inc., which later became Geometric Tools, Inc. Dave’s participation in the newsgroup

Affiliations and Expertise

President of Geometric Tools, Inc (, a company that specializes in software development for computer graphics, image analysis, and numerical methods. Previously, he was the Director of Engineering at Numerical Design Ltd (NDL), the company responsible for the real-time 3D game engine, Netlmmerse. His background includes a BA in Mathematics from Bloomsburg U, MS and PhD degrees in Mathematics from the U of Colorado at Boulder, and MS and PhD degrees in computer science from the U of North Carolina at Chapel Hill.


"Readers of Eberly's previous books, 3D Game Engine Design and Geometric Tools for Computer Graphics, asked for a volume with more code samples and fewer equations. This book will please and aid them greatly…. That key points are sometimes underscored with a dry wit is characteristic of how a great teacher makes studying a difficult topic personally rewarding for the student." —Joseph Goldstone, Lilliputian Pictures "Credo Interactive has been using the WildMagic API for the past 3 years in various commercial projects. 3D Game Engine Architecture provides an excellent source of theoretical background and practical usage information for the API. Together the textbook and the WildMagic sourcecode form a comprehensive and well designed foundation for any 3D application." —Lars Wilke, Director of Development, Credo Interactive Inc. "For those that have searched for a commercial quality rendering library available at virtually no cost and with extensive clear documentation. Let them look no further. From low level structures, to high level application design, Eberly has laid out everything necessary for commercial quality game development. May the projects inspired by his writings be plentiful and prosperous." —Timothy Prepscius, DimensionDoor, Inc.