did-you-know? rent-now

Rent More, Save More! Use code: ECRENTAL

did-you-know? rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780122290640

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

by ;
  • ISBN13:

    9780122290640

  • ISBN10:

    012229064X

  • Edition: CD
  • Format: Hardcover
  • Copyright: 2004-12-17
  • Publisher: CRC Press
  • Purchase Benefits
List Price: $110.00 Save up to $4.81
  • Digital
    $105.19
    Add to Cart

    DURATION
    PRICE

Summary

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

Author Biography

Dave Eberly is the president of Magic Software, Inc.

Table of Contents

ABOUT THE AUTHOR v
PREFACE xiii
CHAPTER 1 INTRODUCTION 1(30)
1.1 DRAWING A TRIANGLE
2(15)
1.2 DRAWING A TRIANGLE MESH
17(10)
1.3 DRAWING A COMPLICATED SCENE
27(1)
1.4 ABSTRACTION OF SYSTEMS
27(4)
CHAPTER 2 CORE SYSTEMS 31(118)
2.1 THE LOW-LEVEL SYSTEM
31(22)
2.1.1 Basic Data Structures
33(12)
2.1.2 Encapsulating Platform-Specific Concepts
45(1)
2.1.3 Endianness
46(1)
2.1.4 System Time
47(1)
2.1.5 File Handling
48(1)
2.1.6 Memory Allocation and Deallocation
49(4)
2.2 THE MATHEMATICS SYSTEM
53(52)
2.2.1 Basic Mathematics Functions
53(4)
2.2.2 Fast Functions
57(4)
2.2.3 Vectors
61(14)
2.2.4 Matrices
75(15)
2.2.5 Quaternions
90(12)
2.2.6 Lines and Planes
102(1)
2.2.7 Colors
103(2)
2.3 THE OBJECT SYSTEM
105(44)
2.3.1 Run-Time Type Information
105(7)
2.3.2 Names and Unique Identifiers
112(2)
2.3.3 Sharing and Smart Pointers
114(7)
2.3.4 Controllers
121(1)
2.3.5 Streaming
122(11)
2.3.6 Cloning
133(5)
2.3.7 String Trees
138(1)
2.3.8 Initialization and Termination
139(10)
CHAPTER 3 SCENE GRAPHS AND RENDERERS 149(150)
3.1 THE CORE CLASSES
152(14)
3.1.1 Motivation for the Classes
153(7)
3.1.2 Spatial Hierarchy Design
160(3)
3.1.3 Instancing
163(3)
3.2 GEOMETRIC STATE
166(30)
3.2.1 Transformations
167(10)
3.2.2 Bounding Volumes
177(7)
3.2.3 The Core Classes and Geometric Updates
184(12)
3.3 GEOMETRIC TYPES
196(7)
3.3.1 Points
197(1)
3.3.2 Line Segments
198(2)
3.3.3 Triangle Meshes
200(2)
3.3.4 Particles
202(1)
3.4 RENDER STATE
203(56)
3.4.1 Global State
203(20)
3.4.2 Lights
223(7)
3.4.3 Textures
230(12)
3.4.4 Multitexturing
242(6)
3.4.5 Effects
248(3)
3.4.6 The Core Classes and Render State Updates
251(8)
3.5 RENDERERS AND CAMERAS
259(40)
3.5.1 Camera Models
259(17)
3.5.2 Basic Architecture for Rendering
276(5)
3.5.3 Single-Pass Drawing
281(4)
3.5.4 The DrawPrimitive Function
285(7)
3.5.5 Cached Textures and Vertex Attributes
292(3)
3.5.6 Global Effects and Multipass Support
295(4)
CHAPTER 4 ADVANCED SCENE GRAPH TOPICS 299(132)
4.1 LEVEL OF DETAIL
299(36)
4.1.1 Billboards
300(2)
4.1.2 Display of Particles
302(4)
4.1.3 Discrete Level of Detail
306(3)
4.1.4 Continuous Level of Detail
309(25)
4.1.5 Infinite Level of Detail
334(1)
4.2 SORTING
335(25)
4.2.1 Binary Space Partitioning Trees
336(7)
4.2.2 Portals
343(11)
4.2.3 Sorting Children of a Node
354(2)
4.2.4 Deferred Drawing
356(4)
4.3 CURVES AND SURFACES
360(17)
4.3.1 Parametric Curves
362(2)
4.3.2 Parametric Surfaces
364(2)
4.3.3 Curve Tessellation by Subdivision
366(7)
4.3.4 Surface Tessellation by Subdivision
373(4)
4.4 TERRAIN
377(22)
4.4.1 Data Representations
377(1)
4.4.2 Level of Detail
378(10)
4.4.3 Terrain Pages and Memory Management
388(11)
4.5 CONTROLLERS AND ANIMATION
399(32)
4.5.1 Keyframe Animation
402(2)
4.5.2 Morphing
404(2)
4.5.3 Points and Particles
406(4)
4.5.4 Skin and Bones
410(4)
4.5.5 Inverse Kinematics
414(17)
CHAPTER 5 ADVANCED RENDERING TOPICS 431(56)
5.1 SPECIAL EFFECTS USING THE FIXED-FUNCTION PIPELINE
431(31)
5.1.1 Vertex Coloring
433(1)
5.1.2 Single Textures
434(2)
5.1.3 Dark Maps
436(1)
5.1.4 Light Maps
437(1)
5.1.5 Gloss Maps
437(3)
5.1.6 Bump Maps
440(6)
5.1.7 Environment Maps
446(5)
5.1.8 Projected Textures
451(3)
5.1.9 Planar Shadows
454(3)
5.1.10 Planar Reflection
457(5)
5.2 SPECIAL EFFECTS USING VERTEX AND PIXEL SHADERS
462(25)
5.2.1 Scene Graph Support
463(16)
5.2.2 Renderer Support
479(7)
5.2.3 Automatic Source Code Generation
486(1)
CHAPTER 6 COLLISION DETECTION 487(78)
6.1 DISTANCE-BASED METHODS
492(8)
6.1.1 A Plan of Attack
495(1)
6.1.2 Root Finding Using Newton's Method
496(1)
6.1.3 Root Finding Using Bisection
496(1)
6.1.4 Hybrid Root Finding
497(1)
6.1.5 An Abstract Interface for Distance Calculations
497(3)
6.2 INTERSECTION-BASED METHODS
500(3)
6.2.1 An Abstract Interface for Intersection Queries
501(2)
6.3 LINE-OBJECT INTERSECTION
503(33)
6.3.1 Intersections between Linear Components and Triangles
503(5)
6.3.2 Intersections between Linear Components and Bounding Volumes
508(19)
6.3.3 Picking
527(7)
6.3.4 Staying on Top of Things
534(1)
6.3.5 Staying out of Things
535(1)
6.4 OBJECT-OBJECT INTERSECTION
536(29)
6.4.1 Collision Groups
536(4)
6.4.2 Hierarchical Collision Detection
540(13)
6.4.3 Spatial and Temporal Coherence
553(12)
CHAPTER 7 PHYSICS 565(36)
7.1 NUMERICAL METHODS FOR SOLVING DIFFERENTIAL EQUATIONS
565(11)
7.1.1 Euler's Method
567(2)
7.1.2 Midpoint Method
569(2)
7.1.3 Runge-Kutta Fourth-Order Method
571(2)
7.1.4 Implicit Equations and Methods
573(3)
7.2 PARTICLE PHYSICS
576(4)
7.3 MASS-SPRING SYSTEMS
580(11)
7.3.1 Curve Masses
580(3)
7.3.2 Surface Masses
583(3)
7.3.3 Volume Masses
586(3)
7.3.4 Arbitrary Configurations
589(2)
7.4 DEFORMABLE BODIES
591(1)
7.5 RIGID BODIES
592(9)
7.5.1 The Rigid Body Class
595(5)
7.5.2 Computing the Inertia Tensor
600(1)
CHAPTER 8 APPLICATIONS 601(76)
8.1 ABSTRACTION OF THE APPLICATION
602(35)
8.1.1 Processing Command Line Parameters
603(4)
8.1.2 The Application Class
607(2)
8.1.3 The ConsoleApplication Class
609(3)
8.1.4 The WindowApplication Class
612(8)
8.1.5 The WindowApplication3 Class
620(17)
8.2 SAMPLE APPLICATIONS
637(36)
8.2.1 BillboardNode Sample
642(1)
8.2.2 BspNode Sample
642(3)
8.2.3 CachedArray Sample
645(1)
8.2.4 Castle Sample
646(2)
8.2.5 ClodMesh Sample
648(1)
8.2.6 Collision Sample
648(6)
8.2.7 InverseKinematics Sample
654(2)
8.2.8 Portals Sample
656(6)
8.2.9 ScreenPolygon Sample
662(6)
8.2.10 SkinnedBiped Sample
668(1)
8.2.11 SortFaces Sample
669(1)
8.2.12 Terrain Sample
670(3)
8.3 SAMPLE TOOLS
673(4)
8.3.1 3dsToWmof Importer
673(1)
8.3.2 Maya Exporter
673(1)
8.3.3 BmpToWmif Converter
673(1)
8.3.4 WmifToBmp Converter
674(1)
8.3.5 ScenePrinter Tool
674(1)
8.3.6 SceneTree Tool
674(1)
8.3.7 SceneViewer Tool
674(3)
APPENDIX CODING CONVENTIONS 677(22)
A.1 FILE NAMING AND ORGANIZATION
677(3)
A.2 COMMENT PREAMBLE AND SEPARATORS
680(1)
A.3 WHITE SPACE
681(4)
A.3.1 Indentation
681(1)
A.3.2 Blank Lines
682(1)
A.3.3 Function Declarators
682(1)
A.3.4 Constructor Initializers
683(1)
A.3.5 Function Calls
684(1)
A.3.6 Conditionals
684(1)
A.4 BRACES
685(1)
A.5 POINTER TYPES
686(2)
A.6 IDENTIFIER NAMES
688(3)
A.6.1 Variables
688(2)
A.6.2 Classes and Functions
690(1)
A.6.3 Enumerations
690(1)
A.7 C++ EXCEPTIONS
691(1)
A.8 HEADER FILE ORGANIZATION
692(7)
A.8.1 Include Guards and Nested Header Files
692(3)
A.8.2 Minimizing Compilation Time
695(4)
BIBLIOGRAPHY 699(4)
INDEX 703(30)
ABOUT THE CD-ROM 733

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program