 |
 |
 | 3D GAME ENGINE ARCHITECTURE
|  |
 |  |  |
 |
 |
Engineering Real-Time Applications with Wild Magic
To order this title, and for more information, click here
By
David Eberly, President of Geometric Tools, Inc (www.geometrictools.com), 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.
Included in series
The Morgan Kaufmann Series in Interactive 3D Technology,
Description
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.
Audience
Professionals or students working in game development, simulation, scientific visualization, or virtual worlds.
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
- 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
- Bibliography
- Index
- About the CD-ROM
| Bibliographic details |
Hardbound, 752 pages, publication date: DEC-2004
ISBN-13: 978-0-12-229064-0
ISBN-10: 0-12-229064-X
Imprint: MORGAN KAUFFMAN
|
| Price and Ordering |
Price:
EUR 62.95 USD 82.95 GBP 53
|  |
Books and book related electronic products are priced in US dollars (USD), euro (EUR), and Great Britain Pounds (GBP). USD prices apply to the Americas and Asia Pacific. EUR prices apply in Europe and the Middle East. GBP prices apply to the UK and all other countries.
|
See also information about conditions of sale & ordering procedures, and links to our regional sales offices.
|
036/339
Last update: 30 Oct 2009
|
 |
|  |
 |  |  |
 |
|
|  |