×

Uh-oh, it looks like your Internet Explorer is out of date.

For a better shopping experience, please upgrade now.

3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics / Edition 2
     

3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics / Edition 2

by David H. Eberly
 

ISBN-10: 0122290631

ISBN-13: 9780122290633

Pub. Date: 11/06/2006

Publisher: Taylor & Francis

The first edition of 3D Game Engine Design was an international bestseller that sold over 17,000 copies and became an industry standard. In the six years since that book was published, graphics hardware has evolved enormously. Hardware can now be directly controlled through techniques such as shader programming, which requires an entirely new thought process

Overview

The first edition of 3D Game Engine Design was an international bestseller that sold over 17,000 copies and became an industry standard. In the six years since that book was published, graphics hardware has evolved enormously. Hardware can now be directly controlled through techniques such as shader programming, which requires an entirely new thought process of a programmer.

In a way that no other book can do, this new edition shows step by step how to make a shader-based graphics engine and how to tame this new technology. Much new material has been added, including more than twice the coverage of the essential techniques of scene graph management, as well as new methods for managing memory usage in the new generation of game consoles and portable game players. There are expanded discussions of collision detection, collision avoidance, and physics—all challenging subjects for developers. The mathematics coverage is now focused towards the end of the book to separate it from the general discussion.

As with the first edition, one of the most valuable features of this book is the inclusion of Wild Magic, a commercial quality game engine in source code that illustrates how to build a real-time rendering system from the lowest-level details all the way to a working game. Wild Magic Version 4 consists of over 300,000 lines of code that allows the results of programming experiments to be seen immediately. This new version of the engine is fully shader-based, runs on Windows XP, Mac OS X, and Linux, and is only available with the purchase of the book.

Product Details

ISBN-13:
9780122290633
Publisher:
Taylor & Francis
Publication date:
11/06/2006
Series:
The Morgan Kaufmann Series in Interactive 3D Technology Series
Edition description:
New Edition
Pages:
1040
Sales rank:
1,271,775
Product dimensions:
6.75(w) x 9.75(h) x 1.90(d)

Table of Contents

  • Preface

  • 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

Customer Reviews

Average Review:

Post to your social network

     

Most Helpful Customer Reviews

See all customer reviews