3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics, 2/e (Hardcover)
David H. Eberly
- 出版商: Morgan Kaufmann
- 出版日期: 2006-11-01
- 售價: $3,600
- 貴賓價: 9.8 折 $3,528
- 語言: 英文
- 頁數: 1040
- 裝訂: Hardcover
- ISBN: 0122290631
- ISBN-13: 9780122290633
-
相關分類:
遊戲設計 Game-design、Computer Graphics
立即出貨
買這商品的人也買了...
-
$2,8803D Game Engine Architecture: Engineering Real-Time Applications with Wild Magic
-
$880$695 -
$880$581 -
$780$702 -
$650$507 -
$550$468 -
$450$383 -
$270$213 -
$980$774 -
$750$593 -
$450$356 -
$500$450 -
$720$569 -
$590$466 -
$1,200$948 -
$620$490 -
$690$587 -
$880$616 -
$1,560$1,404 -
$990$891 -
$580$452 -
$290$226 -
$750$593 -
$600$480 -
$720$612
相關主題
商品描述
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
Preface
1 Introduction
2 The Graphics System
2.1 The Foundation
2.1.1 Coordinate Systems
2.2 Transformations
2.1.2 Handedness and Cross Products
2.1.3 Points and Vectors
2.2.1 Linear Transformations
2.3 Cameras
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.1 The Perspective Camera Model
2.4 Culling and Clipping
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.1 Object Culling
2.5 Rasterizing
2.4.2 Back Face Culling
2.4.3 Clipping to the View Frustum
2.5.1 Line Segments
2.6 Vertex Attributes
2.5.2 Circles
2.5.3 Ellipses
2.5.4 Triangles
2.6.1 Colors
2.7 Issues of Software, Hardware, and APIs
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.1 A General Discussion
2.8 API Conventions
2.7.2 Portability versus Performance
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 API3 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 API4 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 Textures5 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.4 Render State
5.3.2 Transformations
5.3.3 Bounding Volumes
5.4.1 Global State
5.5 The Update Pass
5.4.2 Lights
5.4.3 Effects
5.5.1 Geometric State Updates
5.6 The Culling Pass
5.5.2 Render State Updates
5.6.1 Hierarchical Culling
5.7 The Drawing Pass
5.6.2 Sorted Culling
5.7.1 Single-Pass Drawing
5.8 Scene Graph Design Issues
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.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 Model6 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 Tags7 Memory Management
7.1 Memory Budgets for Game Consoles
7.2 General Concepts for Memory Management
7.2.1 Allocation, Deallocation, and Fragmentation
7.3 Design Choices
7.2.2 Sequential-Fit Methods
7.2.3 Buddy-System Methods
7.2.4 Segregated-Storage Methods
7.3.1 Memory Utilization
7.3.2 Fast Allocation and Deallocation8 Controller-Based Animation
8.1 Vertex Morphing
8.2 Keyframe Animation
8.3 Inverse Kinematics
8.4 Skin and Bones
8.5 Particle Systems9 Spatial Sorting
9.1 Spatial Partitioning
9.1.1 Quadtrees and Octrees
9.2 Node-Based Sorting
9.1.2 BSP Trees
9.1.3 User-Defined Maps
9.3 Portals
9.4 Occlusion Culling10 Level of Detail
10.1 Discrete Level of Detail
10.1.1 Sprites and Billboards
10.2 Continuous Level of Detail
10.1.2 Model Switching
10.2.1 General Concepts
10.3 Infinite Level of Detail
10.2.2 Application to Regular Meshes
10.2.3 Application to General Meshes
10.3.1 General Concepts
10.3.2 Application to Parametric Curves
10.3.3 Application to Parametric Surfaces11 Terrain
11.1 Data Representations
11.2 Level of Detail for Height Fields
11.3 Terrain Pages and Memory Management12 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.4 Dynamic Object-Object Intersections
12.3.2 Intersection-Based Approach
12.4.1 Distance-Based Approach
12.5 Path Finding to Avoid Collisions
12.4.2 Intersection-Based Approach13 Physics
13.1 Basic Concepts
13.2 Particle Systems
13.3 Mass-Spring Systems
13.4 Deformable Bodies
13.5 Rigid Bodies14 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 Layer15 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.8 The Curse of Nonuniform Scaling
15.7.2 Quaternions
15.7.3 Euler Angles
15.7.4 Performance IssuesBibliography
Index
商品描述(中文翻譯)
描述
《3D遊戲引擎設計,第二版》是國際暢銷書籍的重大修訂!在過去十年中,圖形硬體已經有了巨大的進步。現在可以通過著色器編程等技術直接控制硬體,這需要程序員完全新的思維方式。《3D遊戲引擎設計,第二版》逐步展示了如何製作基於著色器的圖形引擎以及如何掌握這項新技術。新增了許多新內容,包括對場景圖管理基本技術的覆蓋範圍增加了兩倍以上,以及在新一代遊戲主機和便攜式遊戲機中管理內存使用的新方法。對於開發人員來說,碰撞檢測、碰撞避免和物理等主題的討論也有所擴展。
目錄
前言
1. 簡介
2. 圖形系統
2.1 基礎
2.1.1 坐標系統
2.1.2 右手法則和向量積
2.1.3 點和向量
2.2 變換
2.2.1 線性變換
2.2.2 仿射變換
2.2.3 投影變換
2.2.4 透視投影的特性
2.2.5 齊次點和矩陣
2.3 相機
2.3.1 透視相機模型
2.3.2 模型或物體空間
2.3.3 世界空間
2.3.4 視圖、相機或眼睛空間
2.3.5 裁剪、投影或齊次空間
2.3.6 視窗空間
2.3.7 綜合應用
2.4 裁剪和剪裁
2.4.1 物體裁剪
2.4.2 背面裁剪
2.4.3 裁剪到視圖視錐體
2.5 光柵化
2.5.1 線段
2.5.2 圓
2.5.3 橢圓
2.5.4 三角形
2.6 頂點屬性
2.6.1 顏色
2.6.2 照明和材質
2.6.3 紋理
2.6.4 透明度
2.6.5 霧
2.6.6 其他
2.6.7 光柵化屬性
2.7 軟體、硬體和API的問題
2.7.1 一般討論
2.7.2 可攜性與性能
2.8 API慣例
2.8.1 矩陣表示和存儲
2.8.2 矩陣組合
2.8.3 視圖矩陣
2.8.4 投影矩陣
2.8.5 窗口左右手法則
2.8.6 旋轉
2.8.7 使用圖形API進行快速計算
```