for Kindle Fire, Apple, Android, Nook, Kobo, PC, Mac, BlackBerry ...

New to eBooks.com?

Learn more

3D Game Engine Design

A Practical Approach to Real-Time Computer Graphics

3D Game Engine Design by David H. Eberly
Add to cart
US$ 94.95
(If any tax is payable it will be calculated and shown at checkout.)
  • 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
CRC Press; November 2006
1008 pages; ISBN 9781482267303
Read online, or download in secure PDF format
Title: 3D Game Engine Design
Author: David H. Eberly
 
Buy, download and read 3D Game Engine Design (eBook) by David H. Eberly today!