3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics, 2/e (Hardcover)

3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics, 2/e (Hardcover)

作者: David H. Eberly
出版社: Morgan Kaufmann
出版在: 2006-11-01
ISBN-13: 9780122290633
ISBN-10: 0122290631
裝訂格式: Hardcover
總頁數: 1040 頁





內容描述


Description

A major revision of the international
bestseller on game programming!Graphics hardware has evolved
enormously in the last decade. Hardware can now be directly controlled
through techniques such as shader programming, which requires an entirely
new thought process of a programmer. 3D Game Engine Design, Second Edition
shows step-by-step how to make a shader-based graphics engine and how to tame
the 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.
 
Table of
Contents

Preface1 Introduction2 The Graphics
System
2.1 The Foundation
2.1.1 Coordinate Systems2.1.2 Handedness and Cross
Products2.1.3 Points and Vectors2.2 Transformations
2.2.1 Linear Transformations2.2.2 Affine Transformations2.2.3
Projective Transformations2.2.4 Properties of Perspective
Projection2.2.5 Homogeneous Points and Matrices2.3 Cameras
2.3.1 The Perspective Camera Model2.3.2 Model or Object
Space2.3.3 World Space2.3.4 View, Camera, or Eye Space2.3.5
Clip, Projection, or Homogeneous Space2.3.6 Window Space2.3.7
Putting Them All Together2.4 Culling and Clipping
2.4.1 Object Culling2.4.2 Back Face Culling2.4.3 Clipping to
the View Frustum2.5 Rasterizing
2.5.1 Line Segments2.5.2 Circles2.5.3 Ellipses2.5.4
Triangles2.6 Vertex Attributes
2.6.1 Colors2.6.2 Lighting and Materials2.6.3
Textures2.6.4 Transparency and Opacity2.6.5 Fog2.6.6 And Many
More2.6.7 Rasterizing Attributes2.7 Issues of Software,
Hardware, and APIs
2.7.1 A General Discussion2.7.2 Portability versus
Performance2.8 API Conventions
2.8.1 Matrix Representation and Storage2.8.2 Matrix
Composition2.8.3 View Matrices2.8.4 Projection Matrices2.8.5
Window Handedness2.8.6 Rotations2.8.7 Fast Computations using the
Graphics API
3 Renderers
3.1 Software Rendering3.2 Hardware Rendering3.3 The
Fixed-Function Pipeline3.4 Vertex and Pixel Shaders3.5 An Abstract
Rendering API
4 Special Effects Using
Shaders
4.1 Vertex Colors4.2 Lighting and Materials4.3 Textures4.4
Multitextures4.5 Bump Maps4.6 Gloss Maps4.7 Sphere Maps4.8
Cube Maps4.9 Refraction4.10 Planar Reflection4.11 Planar
Shadows4.12 Projected Textures4.13 Shadow Maps4.14 Volumetric
Fog4.15 Skinning4.16 Miscellaneous
4.16.1 Iridescence4.16.2 Water Effects4.16.3 Volumetric
Textures
5 Scene Graphs
5.1 The Need for High-Level Data Management5.2 The Need for
Low-Level Data Structures5.3 Geometric State
5.3.1 Vertices and Vertex Attributes5.3.2 Transformations5.3.3
Bounding Volumes5.4 Render State
5.4.1 Global State5.4.2 Lights5.4.3 Effects5.5 The
Update Pass
5.5.1 Geometric State Updates5.5.2 Render State Updates5.6
The Culling Pass
5.6.1 Hierarchical Culling5.6.2 Sorted Culling5.7 The
Drawing Pass
5.7.1 Single-Pass Drawing5.7.2 Single Effect, Multipass
Drawing5.7.3 Multiple Effect, Multipass Drawing5.7.4 Caching Data
on the Graphics Hardware5.7.5 Sorting to Reduce State
Changes5.8 Scene Graph Design Issues
5.8.1 Organization Based on Geometric State5.8.2 Organization
Based on Render State5.8.3 Scene Graph Operations and
Threading5.8.4 The Producer-Consumer Model
6 Scene Graph
Compilers
6.1 The Need for Platform-Specific Optimization6.2 The Need for
Reducing Memory Fragmentation6.3 A Scene Graph as a Dynamic
Expression6.4 Compilation from High-Level to Low-Level Data6.5
Control of Compilation via Node Tags
7 Memory
Management
7.1 Memory Budgets for Game Consoles7.2 General Concepts for Memory
Management
7.2.1 Allocation, Deallocation, and Fragmentation7.2.2
Sequential-Fit Methods7.2.3 Buddy-System Methods7.2.4
Segregated-Storage Methods7.3 Design Choices
7.3.1 Memory Utilization7.3.2 Fast Allocation and
Deallocation
8 Controller-Based
Animation
8.1 Vertex Morphing8.2 Keyframe Animation8.3 Inverse
Kinematics8.4 Skin and Bones8.5 Particle Systems
9 Spatial
Sorting
9.1 Spatial Partitioning
9.1.1 Quadtrees and Octrees9.1.2 BSP Trees9.1.3 User-Defined
Maps9.2 Node-Based Sorting9.3 Portals9.4 Occlusion
Culling
10 Level of
Detail
10.1 Discrete Level of Detail
10.1.1 Sprites and Billboards10.1.2 Model Switching10.2
Continuous Level of Detail
10.2.1 General Concepts10.2.2 Application to Regular
Meshes10.2.3 Application to General Meshes10.3 Infinite Level
of Detail
10.3.1 General Concepts10.3.2 Application to Parametric
Curves10.3.3 Application to Parametric Surfaces
11 Terrain
11.1 Data Representations11.2 Level of Detail for Height
Fields11.3 Terrain Pages and Memory Management
12 Collision
Detection
12.1 Static Line-Object Intersections12.2 Static Object-Object
Intersections12.3 Dynamic Line-Object Intersections
12.3.1 Distance-Based Approach12.3.2 Intersection-Based
Approach12.4 Dynamic Object-Object Intersections
12.4.1 Distance-Based Approach12.4.2 Intersection-Based
Approach12.5 Path Finding to Avoid Collisions
13 Physics
13.1 Basic Concepts13.2 Particle Systems13.3 Mass-Spring
Systems13.4 Deformable Bodies13.5 Rigid Bodies
14 Object-Oriented
Infrastructure
14.1 Object-Oriented Software Construction14.2 Style, Naming
Conventions, and Namespaces14.3 Run-Time Type Information14.4
Templates14.5 Shared Objects and Reference Counting14.6
Streaming14.7 Startup and Shutdown14.8 An Application
Layer
15 Mathematical
Topics
15.1 Standard Objects15.2 Curves15.3 Surfaces15.4 Distance
Algorithms15.5 Intersection Algorithms15.6 Numerical
Algorithms15.7 All About Rotations
15.7.1 Rotation Matrices15.7.2 Quaternions15.7.3 Euler
Angles15.7.4 Performance Issues15.8 The Curse of Nonuniform
Scaling
BibliographyIndex




相關書籍

Essential Mathematics for Games and Interactive Applications, 3/e (Hardcover)

作者 James M. Van Verth Lars M. Bishop

2006-11-01

Deconstructing the Elements with 3ds Max, 3/e: Create natural fire, earth, air and water without plug-ins

作者 Pete Draper

2006-11-01

輕課程 快快樂樂學 AR影像魔法 - 使用 Unity 與 Vuforia 開發套件

作者 歐陽芳泉 林淑惠 鄭佳淵

2006-11-01