Ship-Ship-Hooray! Free Shipping on $25+ Details >
3D Game Engine Architecture : Engineering Real-Time Applications with Wild Magic

3D Game Engine Architecture : Engineering Real-Time Applications with Wild Magic - 04 edition

3D Game Engine Architecture : Engineering Real-Time Applications with Wild Magic - 04 edition

ISBN13: 9780122290640

ISBN10: 012229064X

3D Game Engine Architecture : Engineering Real-Time Applications with Wild Magic by David H. Eberly - ISBN 9780122290640
Cover type: Hardback
Edition: 04
Copyright: 2004
Publisher: Morgan Kaufmann Publishers, Inc.
Published: 2004
International: No
3D Game Engine Architecture : Engineering Real-Time Applications with Wild Magic by David H. Eberly - ISBN 9780122290640

ISBN13: 9780122290640

ISBN10: 012229064X

Cover type: Hardback
Edition: 04

List price: $99.95

Instant access, flexible term options, and deep discounts up to 60% on digital content! Happy you, happy us.

Delivered via email within 1 hour
Use for 180 days
You Save $55.42 (55%)
Format: Digital

Please note: eTextbooks do not come with access codes, CDs/DVDs, workbooks, and other supplemental items.
Well, that's no good. Unfortunately, this edition is currently out of stock. Please check back soon.


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.

Features & Benefits

  • 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.

Table of Contents

Table of Contents

About the Author
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
3.5.5 Cached Textures and Vertex Attributes
3.5.6 Global Effects and Multipass Support

Chapter 4 Advanced Scene Graph Topics

4.1 Level of Detail

4.1.1 Billboards
4.1.2 Display of Particles
4.1.3 Discrete Level of Detail
4.1.4 Continuous Level of Detail
4.1.5 Infinite Level of Detail

4.2 Sorting

4.2.1 Binary Space Partitioning Trees
4.2.2 Portals
4.2.3 Sorting Children of a Node
4.2.4 Deferred Drawing

4.3 Curves and Surfaces

4.3.1 Parametric Curves
4.3.2 Parametric Surfaces
4.3.3 Curve Tessellation by Subdivision
4.3.4 Surface Tessellation by Subdivision

4.4 Terrain

4.4.1 Data Representations
4.4.2 Level of Detail
4.4.3 Terrain Pages and Memory Management

4.5 Controllers and Animation

4.5.1 Keyframe Animation
4.5.2 Morphing
4.5.3 Points and Particles
4.5.4 Skin and Bones
4.5.5 Inverse Kinematics

Chapter 5 Advanced Rendering Topics

5.1 Special Effects Using the Fixed-Function Pipeline

5.1.1 Vertex Coloring
5.1.2 Single Textures
5.1.3 Dark Maps
5.1.4 Light Maps
5.1.5 Gloss Maps
5.1.6 Bump Maps
5.1.7 Environment Maps
5.1.8 Projected Textures
5.1.9 Planar Shadows
5.1.10 Planar Reflection

5.2 Special Effects Using Vertex and Pixel Shaders

5.2.1 Scene Graph Support
5.2.2 Renderer Support
5.2.3 Automatic Source Code Generation

Chapter 6 Collision Detection

6.1 Distance-Based Methods

6.1.1 A Plan of Attack
6.1.2 Root Finding Using Newton's Method
6.1.3 Root Finding Using Bisection
6.1.4 Hybrid Root Finding
6.1.5 An Abstract Interface for Distance Calculations

6.2 Intersection-Based Methods

6.2.1 An Abstract Interface for Intersection Queries

6.3 Line-Object Intersection

6.3.1 Intersections between Linear Components and Triangles
6.3.2 Intersections between Linear Components and Bounding Volumes
6.3.3 Picking
6.3.4 Staying on Top of Things
6.3.5 Staying Out of Things

6.4 Object-Object Intersection

6.4.1 Collision Groups
6.4.2 Hierarchical Collision Detection
6.4.3 Spatial and Temporal Coherence

Chapter 7 Physics

7.1 Numerical Methods for Solving Differential Equations

7.1.1 Euler's Method
7.1.2 Midpoint Method
7.1.3 Runge-Kutta Fourth-Order Method
7.1.4 Implicit Equations and Methods

7.2 Particle Physics
7.3 Mass-Spring Systems

7.3.1 Curve Masses
7.3.2 Surface Masses
7.3.3 Volume Masses
7.3.4 Arbitrary Configurations

7.4 Deformable Bodies
7.5 Rigid Bodies

7.5.1 The Rigid Body Class
7.5.2 Computing the Inertia Tensor

Chapter 8 Applications

8.1 Abstraction of the Application

8.1.1 Processing Command Line Parameters
8.1.2 The Application Class
8.1.3 The ConsoleApplication Class
8.1.4 TheWindowApplication Class
8.1.5 TheWindowApplication3 Class

8.2 Sample Applications

8.2.1 BillboardNode Sample
8.2.2 BspNode Sample
8.2.3 CachedArray Sample
8.2.4 Castle Sample
8.2.5 ClodMesh Sample
8.2.6 Collision Sample
8.2.7 InverseKinematics Sample
8.2.8 Portals Sample
8.2.9 ScreenPolygon Sample
8.2.10 SkinnedBiped Sample
8.2.11 SortFaces Sample
8.2.12 Terrain Sample

8.3 Sample Tools

8.3.1 3dsToWmof Importer
8.3.2 Maya Exporter
8.3.3 BmpToWmif Converter
8.3.4 WmifToBmp Converter
8.3.5 ScenePrinter Tool
8.3.6 SceneTree Tool
8.3.7 SceneViewer Tool

Appendix A Coding Conventions

A.1 File Naming and Organization
A.2 Comment Preamble and Separators
A.3 White Space

A.3.1 Indentation
A.3.2 Blank Lines
A.3.3 Function Declarators
A.3.4 Constructor Initializers
A.3.5 Function Calls
A.3.6 Conditionals

A.4 Braces
A.5 Pointer Types
A.6 Identifier Names

A.6.1 Variables
A.6.2 Classes and Functions
A.6.3 Enumerations

A.7 C++ Exceptions
A.8 Header File Organization

A.8.1 Include Guards and Nested Header Files
A.8.2 Minimizing Compilation Time

About the CD-ROM

Digital Rights

eBook Requirements
VitalSource Bookshelf Reader
Minimum System Requirements:
  • Windows 7/8, or Mac OS X 10.6 or above
Software Requirements:

eTextbooks and eChapters can be viewed by using the free reader listed below.

Be sure to check the format of the eTextbook/eChapter you purchase to know which reader you will need. After purchasing your eTextbook or eChapter, you will be emailed instructions on where and how to download your free reader.

Download Requirements:

Due to the size of eTextbooks, a high-speed Internet connection (cable modem, DSL, LAN) is required for download stability and speed. Your connection can be wired or wireless.

Being online is not required for reading an eTextbook after successfully downloading it. You must only be connected to the Internet during the download process.

User Help:

Click Here to access the VitalSource Bookshelf FAQ

Digital Rights
Copying: Allowed, 2 selections may be copied every 180 days
Printing: Allowed, 2 prints for 180 days
Expires: Yes, may be used for 180 days after activation
Reading Aloud: Allowed
Sharing: Not Allowed
Min. Software Version: Online: No additional software required
Offline: VitalSource Bookshelf

Suitable Devices: PCs, Tablet PCs, Macs, Laptops

Digital Rights Management (DRM) Key

Copying - Books that cannot be copied will show "Not Allowed." Otherwise, this will detail the number of times it can be copied, or "Allowed with no limits."

Printing - Books that cannot be printed will show "Not Allowed." Otherwise, this will detail the number of times it can be printed, or "Allowed with no limits."

Expires - Books that have no expiration (the date upon which you will no longer be able to access your eBook) will read "No Expiration." Otherwise it will state the number of days from activation (the first time you actually read it).

Reading Aloud - Books enabled with the "text-to-speech" feature so that they can be read aloud will show "Allowed."

Sharing - Books that cannot be shared with other computers will show "Not Allowed."

Min. Software Version - This is the minimum software version needed to read this book.

Suitable Devices - Hardware known to be compatible with this book. Note: Reader software still needs to be installed.