Ship-Ship-Hooray! Free Shipping on $25+ Details >
3D Game Engine Design

3D Game Engine Design - 2nd edition

3D Game Engine Design - 2nd edition

ISBN13: 9780122290633

ISBN10: 0122290631

3D Game Engine Design by David Eberly - ISBN 9780122290633
Cover type: Hardback
Edition: 2ND 07
Copyright: 2007
Publisher: Morgan Kaufmann Publishers, Inc.
Published: 2007
International: No
3D Game Engine Design by David Eberly - ISBN 9780122290633

ISBN13: 9780122290633

ISBN10: 0122290631

Cover type: Hardback
Edition: 2ND 07

List price: $94.95

Happy you, happy us. You get 24-hour turnaround. Free shipping on $25+, and dedicated customer service. Cue the smiley faces.

Ships directly from us
You Save $25.29 (27%)

List price: $94.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 $47.47 (50%)
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.

Other Editions of 3D Game Engine Design

Table of Contents

Table of Contents

1 Introduction

2 The Graphics System

2.1 The Foundation

2.1.1 Coordinate Systems
2.1.2 Handedness and Cross Products
2.1.3 Points and Vectors

2.2 Transformations

2.2.1 Linear Transformations
2.2.2 Affine Transformations
2.2.3 Projective Transformations
2.2.4 Properties of Perspective Projection
2.2.5 Homogeneous Points and Matrices

2.3 Cameras

2.3.1 The Perspective Camera Model
2.3.2 Model or Object Space
2.3.3 World Space
2.3.4 View, Camera, or Eye Space
2.3.5 Clip, Projection, or Homogeneous Space
2.3.6 Window Space
2.3.7 Putting Them All Together

2.4 Culling and Clipping

2.4.1 Object Culling
2.4.2 Back Face Culling
2.4.3 Clipping to the View Frustum

2.5 Rasterizing

2.5.1 Line Segments
2.5.2 Circles
2.5.3 Ellipses
2.5.4 Triangles

2.6 Vertex Attributes

2.6.1 Colors
2.6.2 Lighting and Materials
2.6.3 Textures
2.6.4 Transparency and Opacity
2.6.5 Fog
2.6.6 And Many More
2.6.7 Rasterizing Attributes

2.7 Issues of Software, Hardware, and APIs

2.7.1 A General Discussion
2.7.2 Portability versus Performance

2.8 API Conventions

2.8.1 Matrix Representation and Storage
2.8.2 Matrix Composition
2.8.3 View Matrices
2.8.4 Projection Matrices
2.8.5 Window Handedness
2.8.6 Rotations
2.8.7 Fast Computations using the Graphics API

3 Renderers

3.1 Software Rendering
3.2 Hardware Rendering
3.3 The Fixed-Function Pipeline
3.4 Vertex and Pixel Shaders
3.5 An Abstract Rendering API

4 Special Effects Using Shaders

4.1 Vertex Colors
4.2 Lighting and Materials
4.3 Textures
4.4 Multitextures
4.5 Bump Maps
4.6 Gloss Maps
4.7 Sphere Maps
4.8 Cube Maps
4.9 Refraction
4.10 Planar Reflection
4.11 Planar Shadows
4.12 Projected Textures
4.13 Shadow Maps
4.14 Volumetric Fog
4.15 Skinning
4.16 Miscellaneous

4.16.1 Iridescence
4.16.2 Water Effects
4.16.3 Volumetric Textures

5 Scene Graphs

5.1 The Need for High-Level Data Management
5.2 The Need for Low-Level Data Structures
5.3 Geometric State

5.3.1 Vertices and Vertex Attributes
5.3.2 Transformations
5.3.3 Bounding Volumes

5.4 Render State

5.4.1 Global State
5.4.2 Lights 5.4.3 Effects

5.5 The Update Pass

5.5.1 Geometric State Updates
5.5.2 Render State Updates

5.6 The Culling Pass

5.6.1 Hierarchical Culling
5.6.2 Sorted Culling

5.7 The Drawing Pass

5.7.1 Single-Pass Drawing
5.7.2 Single Effect, Multipass Drawing
5.7.3 Multiple Effect, Multipass Drawing
5.7.4 Caching Data on the Graphics Hardware
5.7.5 Sorting to Reduce State Changes

5.8 Scene Graph Design Issues

5.8.1 Organization Based on Geometric State
5.8.2 Organization Based on Render State
5.8.3 Scene Graph Operations and Threading
5.8.4 The Producer-Consumer Model

6 Scene Graph Compilers

6.1 The Need for Platform-Specific Optimization
6.2 The Need for Reducing Memory Fragmentation
6.3 A Scene Graph as a Dynamic Expression
6.4 Compilation from High-Level to Low-Level Data
6.5 Control of Compilation via Node Tags

7 Memory Management

7.1 Memory Budgets for Game Consoles
7.2 General Concepts for Memory Management

7.2.1 Allocation, Deallocation, and Fragmentation
7.2.2 Sequential-Fit Methods
7.2.3 Buddy-System Methods
7.2.4 Segregated-Storage Methods

7.3 Design Choices

7.3.1 Memory Utilization
7.3.2 Fast Allocation and Deallocation

8 Controller-Based Animation

8.1 Vertex Morphing
8.2 Keyframe Animation
8.3 Inverse Kinematics
8.4 Skin and Bones
8.5 Particle Systems

9 Spatial Sorting

9.1 Spatial Partitioning

9.1.1 Quadtrees and Octrees
9.1.2 BSP Trees
9.1.3 User-Defined Maps

9.2 Node-Based Sorting
9.3 Portals
9.4 Occlusion Culling

10 Level of Detail

10.1 Discrete Level of Detail

10.1.1 Sprites and Billboards
10.1.2 Model Switching

10.2 Continuous Level of Detail

10.2.1 General Concepts
10.2.2 Application to Regular Meshes
10.2.3 Application to General Meshes

10.3 Infinite Level of Detail

10.3.1 General Concepts
10.3.2 Application to Parametric Curves
10.3.3 Application to Parametric Surfaces

11 Terrain

11.1 Data Representations
11.2 Level of Detail for Height Fields
11.3 Terrain Pages and Memory Management

12 Collision Detection

12.1 Static Line-Object Intersections
12.2 Static Object-Object Intersections
12.3 Dynamic Line-Object Intersections

12.3.1 Distance-Based Approach
12.3.2 Intersection-Based Approach

12.4 Dynamic Object-Object Intersections
12.4.1 Distance-Based Approach
12.4.2 Intersection-Based Approach
12.5 Path Finding to Avoid Collisions

13 Physics

13.1 Basic Concepts
13.2 Particle Systems
13.3 Mass-Spring Systems
13.4 Deformable Bodies
13.5 Rigid Bodies

14 Object-Oriented Infrastructure

14.1 Object-Oriented Software Construction
14.2 Style, Naming Conventions, and Namespaces
14.3 Run-Time Type Information 14.4 Templates
14.5 Shared Objects and Reference Counting
14.6 Streaming
14.7 Startup and Shutdown
14.8 An Application Layer

15 Mathematical Topics

15.1 Standard Objects
15.2 Curves
15.3 Surfaces
15.4 Distance Algorithms
15.5 Intersection Algorithms
15.6 Numerical Algorithms
15.7 All About Rotations

15.7.1 Rotation Matrices
15.7.2 Quaternions
15.7.3 Euler Angles
15.7.4 Performance Issues

15.8 The Curse of Nonuniform Scaling Bibliography Index

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.

Other Editions of 3D Game Engine Design

3D Game Engine Design by Eberly - ISBN 9781558605930