3D Game Engine Architecture: Engineering Real-Time Applications with Wild Magic
暫譯: 3D 遊戲引擎架構:使用 Wild Magic 工程即時應用程式
David H. Eberly
- 出版商: Morgan Kaufmann
- 出版日期: 2004-12-17
- 定價: $3,600
- 售價: 8.0 折 $2,880
- 語言: 英文
- 頁數: 756
- 裝訂: Hardcover
- ISBN: 012229064X
- ISBN-13: 9780122290640
-
相關分類:
遊戲設計 Game-design
立即出貨
買這商品的人也買了...
-
$980$774 -
$780CMMI: Guidelines for Process Integration and Product Improvement (Harcover)
-
$590$466 -
$560$476 -
$480$379 -
$750$593 -
$450$356 -
$780$616 -
$490$387 -
$490$382 -
$890$703 -
$650$514 -
$480$379 -
$650$507 -
$450$383 -
$1,078Operating System Principles, 7/e(IE) (美國版ISBN:0471694665-Operating System Concepts, 7/e) (平裝)
-
$580$452 -
$620$490 -
$880$748 -
$880$695 -
$880$695 -
$780$663 -
$650$507 -
$3,600$3,528 -
$680$578
商品描述
Description:
Dave Eberly's 3D Game Engine Design was the first professional guide to the essential concepts and algorithms of real-time 3D engines and quickly became a classic of game development. Dave's new book 3D Game Engine Architecture continues the tradition with a comprehensive look at the software engineering and programming of 3D engines. This book is a complete guide to the engineering process, starting with a walk-through of the graphics pipeline showing how to construct the core elements of 3D systems, including data structures, the math system, and the object system. Dave explains how to manage data with scene graphs, how to build rendering and camera systems, and how to handle level of detail, terrain, and animation. Advanced rendering effects such as vertex and pixel shaders are also covered as well as collision detection and physics systems. The book concludes with a discussion of application design, development tools, and coding standards for the source code of the new version of the Wild Magic engine included on the CD-ROM. Wild Magic is a commercial-quality game engine used by many companies and is a unique resource for the game development community.
Table of Contents:
About the Author
Preface
Chapter 1 Introduction
1.1 Drawing a Triangle
1.2 Drawing a Triangle Mesh
1.3 Drawing a Complicated Scene
1.4 Abstraction of Systems
Chapter 2 Core Systems
2.1 The Low-Level System
2.1.1 Basic Data Structures
2.1.2 Encapsulating Platform-Specific Concepts
2.1.3 Endianness
2.1.4 System Time
2.1.5 File Handling
2.1.6 Memory Allocation and Deallocation
2.2 The Mathematics System
2.2.1 Basic Mathematics Functions
2.2.2 Fast Functions
2.2.3 Vectors
2.2.4 Matrices
2.2.5 Quaternions
2.2.6 Lines and Planes
2.2.7 Colors
2.3 The Object System
2.3.1 Run-Time Type Information
2.3.2 Names and Unique Identifiers
2.3.3 Sharing and Smart Pointers
2.3.4 Controllers
2.3.5 Streaming
2.3.6 Cloning
2.3.7 String Trees
2.3.8 Initialization and Termination
Chapter 3 Scene Graphs and Renderers
3.1 The Core Classes
3.1.1 Motivation for the Classes
3.1.2 Spatial Hierarchy Design
3.1.3 Instancing
3.2 Geometric State
3.2.1 Transformations
3.2.2 Bounding Volumes
3.2.3 The Core Classes and Geometric Updates
3.3 Geometric Types
3.3.1 Points
3.3.2 Line Segments
3.3.3 Triangle Meshes
3.3.4 Particles
3.4 Render State
3.4.1 Global State
3.4.2 Lights
3.4.3 Textures
3.4.4 Multitexturing
3.4.5 Effects
3.4.6 The Core Classes and Render State Updates
3.5 Renderers and Cameras
3.5.1 Camera Models
3.5.2 Basic Architecture for Rendering
3.5.3 Single-Pass Drawing
3.5.4 The DrawPrimitive Function
3.5.5 Cached Textures and Vertex Attributes
3.5.6 Global Effects and Multipass Support
Chapter 4 Advanced Scene Graph Topics
4.1 Level of Detail
4.1.1 Billboards
4.1.2 Display of Particles
4.1.3 Discrete Level of Detail
4.1.4 Continuous Level of Detail
4.1.5 Infinite Level of Detail
4.2 Sorting
4.2.1 Binary Space Partitioning Trees
4.2.2 Portals
4.2.3 Sorting Children of a Node
4.2.4 Deferred Drawing
4.3 Curves and Surfaces
4.3.1 Parametric Curves
4.3.2 Parametric Surfaces
4.3.3 Curve Tessellation by Subdivision
4.3.4 Surface Tessellation by Subdivision
4.4 Terrain
4.4.1 Data Representations
4.4.2 Level of Detail
4.4.3 Terrain Pages and Memory Management
4.5 Controllers and Animation
4.5.1 Keyframe Animation
4.5.2 Morphing
4.5.3 Points and Particles
4.5.4 Skin and Bones
4.5.5 Inverse Kinematics
Chapter 5 Advanced Rendering Topics
5.1 Special Effects Using the Fixed-Function Pipeline
5.1.1 Vertex Coloring
5.1.2 Single Textures
5.1.3 Dark Maps
5.1.4 Light Maps
5.1.5 Gloss Maps
5.1.6 Bump Maps
5.1.7 Environment Maps
5.1.8 Projected Textures
5.1.9 Planar Shadows
5.1.10 Planar Reflection
5.2 Special Effects Using Vertex and Pixel Shaders
5.2.1 Scene Graph Support
5.2.2 Renderer Support
5.2.3 Automatic Source Code Generation
Chapter 6 Collision Detection
6.1 Distance-Based Methods
6.1.1 A Plan of Attack
6.1.2 Root Finding Using Newton's Method
6.1.3 Root Finding Using Bisection
6.1.4 Hybrid Root Finding
6.1.5 An Abstract Interface for Distance Calculations
6.2 Intersection-Based Methods
6.2.1 An Abstract Interface for Intersection Queries
6.3 Line-Object Intersection
6.3.1 Intersections between Linear Components and Triangles
6.3.2 Intersections between Linear Components and Bounding Volumes
6.3.3 Picking
6.3.4 Staying on Top of Things
6.3.5 Staying Out of Things
6.4 Object-Object Intersection
6.4.1 Collision Groups
6.4.2 Hierarchical Collision Detection
6.4.3 Spatial and Temporal Coherence
Chapter 7 Physics
7.1 Numerical Methods for Solving Differential Equations
7.1.1 Euler's Method
7.1.2 Midpoint Method
7.1.3 Runge-Kutta Fourth-Order Method
7.1.4 Implicit Equations and Methods
7.2 Particle Physics
7.3 Mass-Spring Systems
7.3.1 Curve Masses
7.3.2 Surface Masses
7.3.3 Volume Masses
7.3.4 Arbitrary Configurations
7.4 Deformable Bodies
7.5 Rigid Bodies
7.5.1 The Rigid Body Class
7.5.2 Computing the Inertia Tensor
Chapter 8 Applications
8.1 Abstraction of the Application
8.1.1 Processing Command Line Parameters
8.1.2 The Application Class
8.1.3 The ConsoleApplication Class
8.1.4 TheWindowApplication Class
8.1.5 TheWindowApplication3 Class
8.2 Sample Applications
8.2.1 BillboardNode Sample
8.2.2 BspNode Sample
8.2.3 CachedArray Sample
8.2.4 Castle Sample
8.2.5 ClodMesh Sample
8.2.6 Collision Sample
8.2.7 InverseKinematics Sample
8.2.8 Portals Sample
8.2.9 ScreenPolygon Sample
8.2.10 SkinnedBiped Sample
8.2.11 SortFaces Sample
8.2.12 Terrain Sample
8.3 Sample Tools
8.3.1 3dsToWmof Importer
8.3.2 Maya Exporter
8.3.3 BmpToWmif Converter
8.3.4 WmifToBmp Converter
8.3.5 ScenePrinter Tool
8.3.6 SceneTree Tool
8.3.7 SceneViewer Tool
Appendix A Coding Conventions
A.1 File Naming and Organization
A.2 Comment Preamble and Separators
A.3 White Space
A.3.1 Indentation
A.3.2 Blank Lines
A.3.3 Function Declarators
A.3.4 Constructor Initializers
A.3.5 Function Calls
A.3.6 Conditionals
A.4 Braces
A.5 Pointer Types
A.6 Identifier Names
A.6.1 Variables
A.6.2 Classes and Functions
A.6.3 Enumerations
A.7 C++ Exceptions
A.8 Header File Organization
A.8.1 Include Guards and Nested Header Files
A.8.2 Minimizing Compilation Time
References
Index
About the CD-ROM
商品描述(中文翻譯)
描述:
Dave Eberly 的《3D Game Engine Design》是第一本專業指南,介紹即時 3D 引擎的基本概念和算法,並迅速成為遊戲開發的經典。Dave 的新書《3D Game Engine Architecture》延續了這一傳統,全面探討 3D 引擎的軟體工程和程式設計。本書是工程過程的完整指南,從圖形管線的步驟開始,展示如何構建 3D 系統的核心元素,包括資料結構、數學系統和物件系統。Dave 解釋了如何使用場景圖管理資料,如何構建渲染和相機系統,以及如何處理細節層次、地形和動畫。書中還涵蓋了高級渲染效果,如頂點著色器和像素著色器,以及碰撞檢測和物理系統。最後,書中討論了應用設計、開發工具和新版本 Wild Magic 引擎的源代碼編碼標準,該引擎隨附於 CD-ROM。Wild Magic 是一個商業品質的遊戲引擎,被許多公司使用,並且是遊戲開發社群的獨特資源。
目錄:
關於作者
前言
**第一章 介紹**
1.1 繪製三角形
1.2 繪製三角形網格
1.3 繪製複雜場景
1.4 系統的抽象
**第二章 核心系統**
2.1 低階系統
2.1.1 基本資料結構
2.1.2 封裝平台特定概念
2.1.3 字節序
2.1.4 系統時間
2.1.5 檔案處理
2.1.6 記憶體分配與釋放
2.2 數學系統
2.2.1 基本數學函數
2.2.2 快速函數
2.2.3 向量
2.2.4 矩陣
2.2.5 四元數
2.2.6 線和平面
2.2.7 顏色
2.3 物件系統
2.3.1 執行時類型資訊
2.3.2 名稱和唯一識別碼
2.3.3 共享和智能指標
2.3.4 控制器
2.3.5 流式處理
2.3.6 克隆
2.3.7 字串樹
2.3.8 初始化和終止
**第三章 場景圖和渲染器**
3.1 核心類別
3.1.1 類別的動機
3.1.2 空間層次設計
3.1.3 實例化
3.2 幾何狀態
3.2.1 變換
3.2.2 邊界體積
3.2.3 核心類別和幾何更新
3.3 幾何類型
3.3.1 點
3.3.2 線段
3.3.3 三角形網格
3.3.4 粒子
3.4 渲染狀態
3.4.1 全局狀態
3.4.2 燈光
3.4.3 紋理
3.4.4 多重紋理
3.4.5 效果
3.4.6 核心類別和渲染狀態更新
3.5 渲染器和相機
3.5.1 相機模型
3.5.2 渲染的基本架構
3.5.3 單通道繪製
3.5.4 DrawPrimitive 函數
3.5.5 快取紋理和頂點屬性
3.5.6 全局效果和多通道支持
**第四章 高級場景圖主題**
4.1 細節層次
4.1.1 廣告牌
4.1.2 粒子的顯示
4.1.3 離散細節層次
4.1.4 連續細節層次
4.1.5 無限細節層次
4.2 排序
4.2.1 二元空間劃分樹
4.2.2 門戶
4.2.3 排序節點的子項
4.2.4 延遲繪製
4.3 曲線和表面
4.3.1 參數曲線
4.3.2 參數表面
4.3.3 曲線的細分網格化
4.3.4 表面的細分網格化
4.4 地形
4.4.1 數據表示
4.4.2 細節層次
4.4.3 地形頁面和記憶體管理
4.5 控制器和動畫
4.5.1 關鍵幀動畫
4.5.2 變形
4.5.3 點和粒子
4.5.4 皮膚和骨骼
4.5.5 反向運動學
**第五章 高級渲染主題**
5.1 使用固定功能管線的特殊效果
5.1.1 頂點著色
5.1.2 單一紋理
5.1.3 暗影圖
5.1.4 燈光圖
5.1.5 光澤圖
5.1.6 凹凸圖
5.1.7 環境圖
5.1.8 投影紋理
5.1.9 平面陰影
5.1.10 平面反射
5.2 使用頂點和像素著色器的特殊效果
5.2.1 場景圖支持
5.2.2 渲染器支持
5.2.3 自動源代碼生成
**第六章 碰撞檢測**
6.1 基於距離的方法
6.1.1 攻擊計劃
6.1.2 使用牛頓法尋找根
6.1.3 使用二分法尋找根
6.1.4 混合根尋找
6.1.5 距離計算的抽象介面
6.2 基於交集的方法
6.2.1 交集查詢的抽象介面
6.3 線-物件交集
6.3.1 線性組件與三角形的交集
6.3.2 線性組件與邊界體積的交集
6.3.3 拾取
6.3.4 保持在上面
6.3.5 避免接觸
6.4 物件-物件交集
6.4.1 碰撞組
6.4.2 層次碰撞檢測
6.4.3 空間和時間一致性
**第七章 物理**
7.1 解決微分方程的數值方法
7.1.1 歐拉法
7.1.2 中點法
7.1.3 四階龍格-庫塔法
7.1.4 隱式方程和方法
7.2 粒子物理
7.3 彈簧質量系統
7.3.1 曲線質量
7.3.2 表面質量
7.3.3 體積質量
7.3.4 任意配置
7.4 可變形物體
7.5 剛體
7.5.1 剛體類別
7.5.2 計算慣性張量
**第八章 應用**
8.1 應用的抽象
8.1.1 處理命令行參數
8.1.2 應用類別
8.1.3 ConsoleApplication 類別
8.1.4 WindowApplication 類別
8.1.5 WindowApplication3 類別
8.2 範例應用
8.2.1 BillboardNode 範例
8.2.2 BspNode 範例
8.2.3 CachedArray 範例
8.2.4 Castle 範例
8.2.5 ClodMesh 範例
8.2.6 Collision 範例
8.2.7 InverseKinematics 範例
8.2.8 Portals 範例
8.2.9 ScreenPolygon 範例
8.2.10 SkinnedBiped 範例
8.2.11 SortFaces 範例
8.2.12 Terrain 範例
8.3 範例工具
8.3.1 3dsToWmof 匯入器
8.3.2 Maya 匯出器
8.3.3 BmpToWmif 轉換器
8.3.4 WmifToBmp 轉換器
8.3.5 ScenePrinter 工具
8.3.6 SceneTree 工具
8.3.7 SceneViewer 工具
附錄 A 編碼慣例
A.1 檔案命名和組織
A.2 註解前言和分隔符
A.3 空白字元
A.3.1 縮排
A.3.2 空行
A.3.3 函數聲明
A.3.4 建構子初始化器
A.3.5 函數調用
A.3.6 條件語句
A.4 大括號
A.5 指標類型
A.6 識別符名稱
A.6.1 變數
A.6.2 類別和函數
A.6.3 列舉
A.7 C++ 異常
A.8 標頭檔案組織
A.8.1 包含保護和嵌套標頭檔案
A.8.2 最小化編譯時間
參考文獻
索引
關於 CD-ROM