游戲引擎架構(gòu)(第2版) 版權(quán)信息
- ISBN:9787121375293
- 條形碼:9787121375293 ; 978-7-121-37529-3
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
游戲引擎架構(gòu)(第2版) 本書特色
√ 引擎為游戲科技之大成,而通用游戲引擎經(jīng)常無法通用,需要因項目而改造、整合、擴(kuò)展及優(yōu)化,因此必須理解其架構(gòu)、機(jī)制和技術(shù) ,才能分析及解決游戲制作中的問題(本書譯者在騰訊游戲即擔(dān)此重任)。
√ 站在*界級專家的肩上,廣泛了解、宏觀對比(藝電、頑皮狗)*界游戲名作優(yōu)選方案與實(shí)際采用技術(shù)、工具,覆蓋手游、端游通用的游戲性系統(tǒng)、場景管理、人工智能、物理模擬、前臺技術(shù)等知識。
√ 涵蓋游戲開發(fā)技術(shù)方方面面:足夠細(xì)節(jié)以使初學(xué)者極易理解;巧妙平衡廣度與深度以幫助經(jīng)驗豐富的游戲程序員。架構(gòu)部分細(xì)致描述每個子系統(tǒng)的需求、相關(guān)技術(shù)及與其他子系統(tǒng)的關(guān)系。
√ 游戲音頻技術(shù)內(nèi)容首度在書中出現(xiàn),填補(bǔ)領(lǐng)域空白——大篇幅整章講述開發(fā)AAA游戲音頻引擎的物理、數(shù)學(xué)及技術(shù)首度曝光;動畫系統(tǒng) 、運(yùn)行時游戲性基礎(chǔ)系統(tǒng)部分依舊出彩。
《游戲引擎架構(gòu)》廣受歡迎,成為游戲引擎軟件開發(fā)理論和實(shí)踐的完整指南。第2版按當(dāng)今游戲引擎架構(gòu)發(fā)展趨勢更新大量內(nèi)容,進(jìn)一步完善對典型游戲引擎各主要模塊的講解,重點(diǎn)新內(nèi)容包括:
更新了各個主題的信息,包括C++編程語言的*新版本C++11、第8代游戲機(jī)Xbox One 和PlayStation 4。
新增了音頻技術(shù)章節(jié),包含AAA游戲音頻引擎所涉及的物理、數(shù)學(xué)和技術(shù)等方面的知識。
更新了多核編程、流水線CPU架構(gòu)、優(yōu)化、國際化、贗矢量、格拉斯曼代數(shù)、對偶四元數(shù)、SIMD矢量數(shù)學(xué)、內(nèi)存對齊及抗鋸齒等章節(jié)。
深入介紹了頑皮狗*新熱作《*后生還者》的制作過程。
本書講解商業(yè)游戲引擎中各個子系統(tǒng)的理論基礎(chǔ),并論述了實(shí)現(xiàn)這些子系統(tǒng)通常所需的數(shù)據(jù)結(jié)構(gòu)、算法及軟件接口。本書聚焦在引擎本身,其中包括底層基礎(chǔ)系統(tǒng)、渲染引擎、碰撞系統(tǒng)、物理模擬、角色動畫及音頻。而在“游戲性基礎(chǔ)層”中深入探討游戲?qū)ο竽P汀?界編輯器、事件系統(tǒng)與腳本系統(tǒng)。書中還涉及一些游戲編程方面的技術(shù),如玩家機(jī)制、攝像頭和人工智能。
《游戲引擎架構(gòu)》(第2版)不僅可作為知識掃盲的工具,以及延伸學(xué)習(xí)的跳板,更能讓讀者扎實(shí)地理解游戲引擎中每個工程范疇中的理論與典型實(shí)踐。本書將助你走過游戲引擎架構(gòu)那迷人、全方位的難忘之旅。
游戲引擎架構(gòu)(第2版) 內(nèi)容簡介
《游戲引擎架構(gòu)》(第 2 版)涵蓋游戲引擎軟件開發(fā)的理論及實(shí)踐知識,并在第 1 版的基礎(chǔ)上對多個主題進(jìn)行了更新。本書中討論的概念及技巧被實(shí)際應(yīng)用于現(xiàn)實(shí)中的游戲工作室(如藝電及頑皮狗)。雖然書中采用的例子通常依托于一些專門的技術(shù),但是討論范圍遠(yuǎn)超某個引擎或API。另外,書中提供的參考文獻(xiàn)及引用也很好有價值,可讓讀者繼續(xù)深入游戲開發(fā)的任何特定方向。本書為大學(xué)程度的游戲編程課程而編寫,但也適合軟件工程師、游戲開發(fā)業(yè)余愛好者,以及游戲產(chǎn)業(yè)的從業(yè)人員閱讀。通過閱讀本書,資歷較淺的游戲工程師可以鞏固他們所學(xué)的游戲技術(shù)及引擎架構(gòu)的知識,專注某一領(lǐng)域的程序員也能從本書全面的介紹中獲益。《游戲引擎架構(gòu)》(第2版)不僅可作為知識掃盲的工具,以及延伸學(xué)習(xí)的跳板,更能讓讀者扎實(shí)地理解游戲引擎中每個工程范疇中的理論與典型實(shí)踐。本書將助你走過游戲引擎架構(gòu)那迷人、多方面的難忘之旅。本書講解商業(yè)游戲引擎中各個子系統(tǒng)的理論基礎(chǔ),并論述了實(shí)現(xiàn)這些子系統(tǒng)通常所需的數(shù)據(jù)結(jié)構(gòu)、算法及軟件接口。本書聚焦在引擎本身,其中包括底層基礎(chǔ)系統(tǒng)、渲染引擎、碰撞系統(tǒng)、物理模擬、角色動畫及音頻。而在“游戲性基礎(chǔ)層”中深入探討游戲?qū)ο竽P汀⑹澜缇庉嬈鳌⑹录到y(tǒng)與腳本系統(tǒng)。書中還涉及一些游戲編程方面的技術(shù),如玩家機(jī)制、攝像頭和人工智能。《游戲引擎架構(gòu)》廣受歡迎,成為游戲引擎軟件開發(fā)理論和實(shí)踐的完整指南。第2版按當(dāng)今游戲引擎架構(gòu)發(fā)展趨勢更新大量內(nèi)容,進(jìn)一步完善對典型游戲引擎各主要模塊的講解,重點(diǎn)新內(nèi)容包括:·更新了各個主題的信息,包括C++編程語言的近期新版本C++11、第8代游戲機(jī)Xbox One 和PlayStation 4。·新增了音頻技術(shù)章節(jié),包含AAA游戲音頻引擎所涉及的物理、數(shù)學(xué)和技術(shù)等方面的知識。·更新了多核編程、流水線CPU架構(gòu)、優(yōu)化、靠前化、贗矢量、格拉斯曼代數(shù)、對偶四元數(shù)、SIMD矢量數(shù)學(xué)、內(nèi)存對齊及抗鋸齒等章節(jié)。
游戲引擎架構(gòu)(第2版) 目錄
第 2 版序言 .........................................xxxiii
第 1 版序言 .........................................xxxv
第 2 版前言 .........................................xxxvii
第 1 版前言 .........................................xxxviii
致謝 .............................................xl
第 I 部分 基 礎(chǔ)
第 1 章 導(dǎo)論 .......................................3
1.1 典型游戲團(tuán)隊的結(jié)構(gòu) ................................4
1.1.1 工程師 .....................................5
1.1.2 藝術(shù)家 .....................................5
1.1.3 游戲設(shè)計師 ...................................6
1.1.4 制作人 .....................................7
1.1.5 其他工作人員 ..................................7
1.1.6 發(fā)行商及工作室 .................................7
1.2 游戲是什么 .....................................8
1.2.1 電子游戲作為軟實(shí)時模擬.............................8
1.3 游戲引擎是什么 ...................................10
1.4 不同游戲類型的引擎差異 ..............................11
1.4.1 **人稱射擊游戲 ................................12
1.4.2 平臺及其他第三人稱游戲.............................13
1.4.3 格斗游戲 ....................................15
1.4.4 競速游戲 ....................................17
1.4.5 實(shí)時策略游戲 ..................................18
1.4.6 大型多人在線游戲 ................................20
1.4.7 玩家創(chuàng)作內(nèi)容 ? ..................................21
1.4.8 其他游戲類型 ..................................23
1.5 游戲引擎概覽 ....................................24
1.5.1 雷神之錘引擎家族 ................................24
1.5.2 虛幻引擎 ....................................25
1.5.3 Source 引擎 ...................................26
1.5.4 DICE 的寒霜引擎 ? ...............................26
1.5.5 CryEngine ? ...................................26
1.5.6 索尼的 PhyreEngine ? ..............................27
1.5.7 微軟的 XNA Game Studio............................27
1.5.8 Unity ? .....................................27
1.5.9 供非程序員使用的二維游戲引擎 ? .........................28
1.5.10 其他商業(yè)引擎 .................................29
1.5.11 專有內(nèi)部引擎 .................................29
1.5.12 開源引擎....................................29
1.6 運(yùn)行時引擎架構(gòu) ...................................30
1.6.1 目標(biāo)硬件 ....................................32
1.6.2 設(shè)備驅(qū)動程序 ..................................32
1.6.3 操作系統(tǒng) ....................................32
1.6.4 第三方軟件開發(fā)包和中間件............................33
1.6.5 平臺獨(dú)立層 ...................................36
1.6.6 核心系統(tǒng) ....................................36
1.6.7 資源管理器 ...................................37
1.6.8 渲染引擎 ....................................37
1.6.9 剖析和調(diào)試工具 .................................41
1.6.10 碰撞和物理...................................42
1.6.11 動畫 ......................................43
1.6.12 人體學(xué)接口設(shè)備 ................................44
1.6.13 音頻 ......................................45
1.6.14 在線多人/網(wǎng)絡(luò)游戲 ...............................46
1.6.15 游戲性基礎(chǔ)系統(tǒng) ................................47
1.6.16 個別游戲?qū)S米酉到y(tǒng) ..............................50
1.7 工具及資產(chǎn)管道 ...................................50
1.7.1 數(shù)字內(nèi)容創(chuàng)作工具 ................................50
1.7.2 資產(chǎn)調(diào)節(jié)管道 ..................................52
1.7.3 世界編輯器 ...................................54
1.7.4 資源數(shù)據(jù)庫 ? ...................................55
1.7.5 一些構(gòu)建工具的方法 ...............................55
第 2 章 專業(yè)工具 ....................................58
2.1 版本控制 .......................................58
2.1.1 為何使用版本控制 ................................58
2.1.2 常見的版本控制系統(tǒng) ...............................59
2.1.3 Subversion 和 TortoiseSVN 概覽 .........................60
2.1.4 在 Google 上設(shè)置代碼版本庫...........................61
2.1.5 安裝 TortoiseSVN ................................61
2.1.6 文件版本、更新和提交 ..............................63
2.1.7 多人簽出、分支及合并 ..............................64
2.1.8 刪除 ......................................66
2.2 微軟 Visual Studio..................................66
2.2.1 源文件、頭文件及翻譯單元 ............................67
2.2.2 程序庫、可執(zhí)行文件及動態(tài)鏈接庫.........................67
2.2.3 項目及解決方案 .................................68
2.2.4 生成配置 ....................................69
2.2.5 調(diào)試代碼 ....................................75
2.3 剖析工具 .......................................81
2.3.1 剖析器列表 ...................................83
2.4 內(nèi)存泄漏和損壞檢測 ................................83
2.5 其他工具 .......................................84
第 3 章 游戲軟件工程基礎(chǔ) ..............................85
3.1 重溫 C++ 及*佳實(shí)踐 ...............................85
3.1.1 扼要重溫面向?qū)ο缶幊?.............................85
3.1.2 編碼標(biāo)準(zhǔn): 為什么及需要多少 ...........................91
3.1.3 C++11 ? ....................................92
3.2 C/C++ 的數(shù)據(jù)、代碼及內(nèi)存 ............................99
3.2.1 數(shù)值表達(dá)形式 ..................................99
3.2.2 聲明、定義及鏈接規(guī)范 ..............................109
3.2.3 C/C++ 內(nèi)存布局 ................................115
3.2.4 成員變量 ....................................119
3.2.5 對象的內(nèi)存布局 .................................121
3.2.6 kilobyte 及 kibibyte ...............................129
3.3 捕捉及處理錯誤 ...................................129
3.3.1 錯誤類型 ....................................129
3.3.2 錯誤處理 ....................................130
3.3.3 實(shí)現(xiàn)錯誤檢測及處理 ...............................132
3.4 流水線、緩存及優(yōu)化 .................................136
3.4.1 并行范式轉(zhuǎn)移 ..................................136
3.4.2 內(nèi)存緩存 ....................................137
3.4.3 指令流水線及超純量 CPU ............................142
第 4 章 游戲所需的三維數(shù)學(xué) .............................146
4.1 在二維中解決三維問題 ...............................146
4.2 點(diǎn)和矢量 .......................................146
4.2.1 點(diǎn)和笛卡兒坐標(biāo) .................................147
4.2.2 左手坐標(biāo)系與右手坐標(biāo)系的比較 .........................148
4.2.3 矢量 ......................................149
4.2.4 矢量運(yùn)算 ....................................150
4.2.5 點(diǎn)和矢量的線性插值 ...............................160
4.3 矩陣 .........................................160
4.3.1 矩陣乘法 ....................................161
4.3.2 以矩陣表示點(diǎn)和矢量 ...............................162
4.3.3 單位矩陣 ....................................163
4.3.4 逆矩陣 .....................................163
4.3.5 轉(zhuǎn)置矩陣 ....................................163
4.3.6 齊次坐標(biāo) ....................................164
4.3.7 基礎(chǔ)變換矩陣 ..................................165
4.3.8 4 × 3 矩陣 ...................................168
4.3.9 坐標(biāo)空間 ....................................168
4.3.10 基的變更....................................171
4.3.11 變換法矢量...................................175
4.3.12 在內(nèi)存中存儲矩陣 ...............................175
4.4 四元數(shù) ........................................177
4.4.1 把單位四元數(shù)視為三維旋轉(zhuǎn)............................178
4.4.2 四元數(shù)運(yùn)算 ...................................178
4.4.3 以四元數(shù)旋轉(zhuǎn)矢量 ................................180
4.4.4 等價的四元數(shù)和矩陣 ...............................181
4.4.5 旋轉(zhuǎn)性的線性插值 ................................183
4.5 比較各種旋轉(zhuǎn)表達(dá)方式 ...............................185
4.5.1 歐拉角 .....................................185
4.5.2 3 × 3 矩陣 ...................................186
4.5.3 軸角 ......................................186
4.5.4 四元數(shù) .....................................187
4.5.5 SQT 變換....................................187
4.5.6 對偶四元數(shù) ...................................188
4.5.7 旋轉(zhuǎn)和自由度 ..................................188
4.6 其他數(shù)學(xué)對象 ....................................189
4.6.1 直線、光線及線段 ................................189
4.6.2 球體 ......................................190
4.6.3 平面 ......................................190
4.6.4 軸對齊包圍盒 ..................................192
4.6.5 定向包圍盒 ...................................193
4.6.6 平截頭體 ....................................193
4.6.7 凸多面體區(qū)域 ..................................194
4.7 硬件加速的 SIMD 運(yùn)算 ...............................194
4.7.1 SSE 寄存器 ...................................195
4.7.2 __m128 數(shù)據(jù)類型 ................................196
4.7.3 用 SSE 內(nèi)部函數(shù)編碼 ..............................197
4.7.4 用 SSE 實(shí)現(xiàn)矢量與矩陣的相乘 ..........................199
4.8 產(chǎn)生隨機(jī)數(shù) .....................................203
4.8.1 線性同余產(chǎn)生器 .................................204
4.8.2 梅森旋轉(zhuǎn) ....................................204
4.8.3 所有偽隨機(jī)數(shù)產(chǎn)生器之母及 Xorshift .......................205
第 II 部分 底層引擎系統(tǒng)
第 5 章 游戲支持系統(tǒng) .................................209
5.1 子系統(tǒng)的啟動和終止 ................................209
5.1.1 C++ 的靜態(tài)初始化次序 (是不可用的) ......................209
5.1.2 行之有效的簡單方法 ...............................212
5.1.3 一些實(shí)際引擎的例子 ...............................214
5.2 內(nèi)存管理 .......................................218
5.2.1 優(yōu)化動態(tài)內(nèi)存分配 ................................218
5.2.2 內(nèi)存碎片 ....................................227
5.3 容器 .........................................231
5.3.1 容器操作 ....................................232
5.3.2 迭代器 .....................................233
5.3.3 算法復(fù)雜度 ...................................234
5.3.4 建立自定義的容器類 ...............................236
5.4 字符串 ........................................248
5.4.1 字符串的使用問題 ................................248
5.4.2 字符串類 ....................................249
5.4.3 唯一標(biāo)識符 ...................................249
5.4.4 本地化 .....................................253
5.5 引擎配置 .......................................263
5.5.1 讀/寫選項....................................263
5.5.2 個別用戶選項 ..................................264
5.5.3 真實(shí)引擎中的配置管理..............................265
第 6 章 資源及文件系統(tǒng) ................................270
6.1 文件系統(tǒng) .......................................270
6.1.1 文件名和路徑 ..................................271
6.1.2 基本文件 I/O ..................................274
6.1.3 異步文件 I/O ..................................277
6.2 資源管理器 .....................................281
6.2.1 離線資源管理及工具鏈..............................281
6.2.2 運(yùn)行時資源管理 .................................289
第 7 章 游戲循環(huán)及實(shí)時模擬 .............................305
7.1 渲染循環(huán) .......................................305
7.2 游戲循環(huán) .......................................306
7.2.1 簡單例子: 《乓》 .................................306
7.3 游戲循環(huán)的架構(gòu)風(fēng)格 ................................308
7.3.1 視窗消息泵 ...................................308
7.3.2 回調(diào)驅(qū)動框架 ..................................309
7.3.3 基于事件的更新 .................................311
7.4 抽象時間線 .....................................311
7.4.1 真實(shí)時間 ....................................311
7.4.2 游戲時間 ....................................311
7.4.3 局部及全局時間線 ................................312
7.5 測量及處理時間 ...................................313
7.5.1 幀率及時間增量 .................................313
7.5.2 從幀率到速率 ..................................314
7.5.3 使用高分辨率計時器測量實(shí)時時間 ........................317
7.5.4 時間單位和時鐘變量 ...............................318
7.5.5 應(yīng)對斷點(diǎn) ....................................321
7.5.6 一個簡單的時鐘類 ................................322
7.6 多處理器的游戲循環(huán) ................................325
7.6.1 多處理器游戲機(jī)的架構(gòu)..............................326
7.6.2 SIMD......................................331
7.6.3 分叉及匯合 ...................................331
7.6.4 每個子系統(tǒng)運(yùn)行于獨(dú)立線程............................333
7.6.5 作業(yè)模型 ....................................334
7.6.6 異步程序設(shè)計 ..................................334
7.7 網(wǎng)絡(luò)多人游戲循環(huán) ..................................337
7.7.1 主從式模型 ...................................337
7.7.2 點(diǎn)對點(diǎn)模型 ...................................339
7.7.3 案例分析: 《雷神之錘 II》.............................339
第 8 章 人體學(xué)接口設(shè)備 ................................342
8.1 各種人體學(xué)接口設(shè)備 ................................342
8.2 人體學(xué)接口設(shè)備的接口技術(shù) .............................344
8.2.1 輪詢 ......................................344
8.2.2 中斷 ......................................344
8.2.3 無線設(shè)備 ....................................345
8.3 輸入類型 .......................................345
8.3.1 數(shù)字式按鈕 ...................................345
8.3.2 模擬式軸及按鈕 .................................347
8.3.3 相對性軸 ....................................348
8.3.4 加速計 .....................................348
8.3.5 以 Wii 遙控器或 DualShock 做三維定向 .....................349
8.3.6 攝像機(jī) .....................................350
8.4 輸出類型 .......................................352
8.4.1 震動反饋 ....................................352
8.4.2 力反饋 .....................................353
8.4.3 音頻 ......................................353
8.4.4 其他輸入/輸出 .................................353
8.5 游戲引擎的人體學(xué)接口設(shè)備系統(tǒng) ..........................353
8.5.1 典型需求 ....................................354
8.5.2 死區(qū) ......................................354
8.5.3 模擬信號過濾 ..................................355
8.5.4 輸入事件檢測 ..................................357
8.5.5 為多位玩家管理多個 HID ............................364
8.5.6 跨平臺的 HID 系統(tǒng) ...............................364
8.5.7 輸入的重新映射 .................................366
8.5.8 上下文相關(guān)控制 .................................367
8.5.9 禁用輸入 ....................................368
8.6 人體學(xué)接口設(shè)備使用實(shí)踐 ..............................368
第 9 章 調(diào)試及開發(fā)工具 ................................370
9.1 日志及跟蹤 .....................................370
9.1.1 使用 OutputDebugString() 做格式化輸出.....................371
9.1.2 冗長級別 ....................................372
9.1.3 頻道 ......................................373
9.1.4 把輸出同時抄寫至日志文件............................374
9.1.5 崩潰報告 ....................................374
9.2 調(diào)試用的繪圖功能 ..................................375
9.2.1 調(diào)試?yán)L圖 API ..................................378
9.3 游戲內(nèi)置菜單 ....................................382
9.4 游戲內(nèi)置主控臺 ...................................385
9.5 調(diào)試用攝像機(jī)和游戲暫停 ..............................386
9.6 作弊 .........................................386
9.7 屏幕截圖及錄像 ...................................387
9.8 游戲內(nèi)置性能剖析 ..................................387
9.8.1 層階式剖析 ...................................389
9.8.2 導(dǎo)出至 Excel ..................................394
9.9 游戲內(nèi)置的內(nèi)存統(tǒng)計和泄漏檢測 ..........................394
第 III 部分 圖形、運(yùn)動與聲音
第 10 章 渲染引擎 ...................................401
10.1 采用深度緩沖的三角形光柵化基礎(chǔ) ........................401
10.1.1 場景描述....................................403
10.1.2 描述表面的視覺性質(zhì) ..............................410
10.1.3 光照基礎(chǔ)....................................423
10.1.4 虛擬攝像機(jī)...................................432
10.2 渲染管道 ......................................442
10.2.1 渲染管道概覽 .................................443
10.2.2 工具階段....................................444
10.2.3 資產(chǎn)調(diào)節(jié)階段 .................................446
10.2.4 GPU 簡史 ...................................447
10.2.5 GPU 管道 ...................................448
10.2.6 可編程著色器 .................................452
10.2.7 抗鋸齒 ? ....................................456
10.2.8 應(yīng)用程序階段 .................................459
10.3 高級光照及全局光照 ................................468
10.3.1 基于圖像的光照 ................................468
10.3.2 高動態(tài)范圍光照 ................................472
10.3.3 全局光照....................................473
10.3.4 延遲渲染....................................479
10.3.5 基于物理著色 ? .................................480
10.4 視覺效果和覆蓋層 .................................481
10.4.1 粒子效果....................................481
10.4.2 貼花 ......................................482
10.4.3 環(huán)境效果....................................483
10.4.4 覆蓋層.....................................486
10.4.5 伽馬校正....................................487
10.4.6 全屏后期處理效果 ...............................488
10.5 延伸閱讀 ......................................489
第 11 章 動畫系統(tǒng) ...................................490
11.1 角色動畫的類型 ..................................490
11.1.1 賽璐璐動畫...................................490
11.1.2 剛性層階式動畫 ................................491
11.1.3 每頂點(diǎn)動畫及變形目標(biāo) .............................492
11.1.4 蒙皮動畫....................................493
11.1.5 把動畫方法視為數(shù)據(jù)壓縮技術(shù) ..........................494
11.2 骨骼 .........................................495
11.2.1 骨骼層階結(jié)構(gòu) .................................496
11.2.2 在內(nèi)存中表示骨骼 ...............................497
11.3 姿勢 .........................................498
11.3.1 綁定姿勢....................................498
11.3.2 局部姿勢....................................499
11.3.3 全局姿勢....................................501
11.4 動畫片段 ......................................502
11.4.1 局部時間線...................................503
11.4.2 全局時間線...................................506
11.4.3 比較局部和全局時鐘 ..............................508
11.4.4 簡單的動畫數(shù)據(jù)格式 ..............................511
11.4.5 連續(xù)的通道函數(shù) ................................512
11.4.6 元通道.....................................513
11.5 蒙皮及生成矩陣調(diào)色板 ...............................514
11.5.1 每頂點(diǎn)的蒙皮信息 ...............................515
11.5.2 蒙皮涉及的數(shù)學(xué)知識 ..............................515
11.6 動畫混合 ......................................519
11.6.1 線性插值混合 .................................519
11.6.2 線性插值混合的應(yīng)用 ..............................521
11.6.3 復(fù)雜的線性插值混合 ..............................526
11.6.4 骨骼分部混合 .................................529
11.6.5 加法混合....................................531
11.6.6 加法混合的應(yīng)用 ................................533
11.7 后期處理 ......................................536
11.7.1 程序式動畫...................................536
11.7.2 逆運(yùn)動學(xué)....................................537
11.7.3 布娃娃.....................................538
11.8 壓縮技術(shù) ......................................538
11.8.1 通道省略....................................539
11.8.2 量化 ......................................539
11.8.3 采樣頻率及鍵省略 ...............................543
11.8.4 基于曲線的壓縮 ................................543
11.8.5 選擇性載入及串流 ...............................544
11.9 動畫系統(tǒng)架構(gòu) ....................................544
11.10 動畫管道 .....................................545
11.10.1 數(shù)據(jù)結(jié)構(gòu) ...................................546
11.10.2 扁平的加權(quán)平均混合表示法 ..........................549
11.10.3 混合樹 ....................................552
11.10.4 淡入/淡出架構(gòu) ................................555
11.10.5 動畫管道的優(yōu)化 ................................557
11.11 動作狀態(tài)機(jī) ....................................559
11.11.1 動畫狀態(tài) ...................................559
11.11.2 過渡 .....................................565
11.11.3 狀態(tài)層 ....................................568
11.11.4 控制參數(shù) ...................................570
11.11.5 約束 .....................................571
11.12 動畫控制器 ....................................579
第 12 章 碰撞及剛體動力學(xué) ..............................580
12.1 你想在游戲中加入物理嗎 .............................580
12.1.1 物理系統(tǒng)可以做的事情 .............................581
12.1.2 物理好玩嗎...................................582
12.1.3 物理對游戲的影響 ...............................583
12.2 碰撞 / 物理中間件 ..................................585
12.2.1 I-Collide、SWIFT、V-Collide 及 RAPID ....................585
12.2.2 ODE .....................................585
12.2.3 Bullet .....................................586
12.2.4 TrueAxis ...................................586
12.2.5 PhysX.....................................586
12.2.6 Havok .....................................587
12.2.7 PAL......................................587
12.2.8 DMM .....................................587
12.3 碰撞檢測系統(tǒng) ....................................588
12.3.1 可碰撞的實(shí)體 .................................588
12.3.2 碰撞/物理世界 .................................589
12.3.3 關(guān)于形狀的概念 ................................590
12.3.4 碰撞原型....................................592
12.3.5 碰撞測試及解析幾何 ..............................596
12.3.6 性能優(yōu)化....................................604
12.3.7 碰撞查詢....................................606
12.3.8 碰撞過濾....................................610
12.4 剛體動力學(xué) .....................................611
12.4.1 基礎(chǔ) ......................................613
12.4.2 線性動力學(xué)...................................614
12.4.3 運(yùn)動方程求解 .................................616
12.4.4 數(shù)值積分....................................618
12.4.5 二維旋轉(zhuǎn)動力學(xué) ................................622
12.4.6 三維旋轉(zhuǎn)動力學(xué) ................................625
12.4.7 碰撞響應(yīng)....................................629
12.4.8 約束 ......................................636
12.4.9 控制剛體的運(yùn)動 ................................640
12.4.10 碰撞/物理步 .................................641
12.5 將物理引擎整合至游戲 ...............................643
12.5.1 連接游戲?qū)ο蠛蛣傮w ..............................643
12.5.2 更新模擬....................................646
12.5.3 游戲中碰撞及物理的應(yīng)用例子 ..........................649
12.6 展望 : 高級物理功能 ................................656
第 13 章 音頻 ? ......................................658
13.1 聲音的物理 .....................................658
13.1.1 聲波的屬性...................................659
13.1.2 感知響度及分貝 ................................660
13.1.3 聲波的傳播...................................663
13.1.4 位置的感知...................................668
13.2 聲音中的數(shù)學(xué)知識 .................................668
13.2.1 信號 ......................................669
13.2.2 處理信號....................................670
13.2.3 線性時不變系統(tǒng) ................................671
13.2.4 LTI 系統(tǒng)的脈沖響應(yīng) ..............................672
13.2.5 頻域與傅里葉變換 ...............................677
13.3 聲音技術(shù) ......................................685
13.3.1 模擬音頻技術(shù) .................................685
13.3.2 數(shù)字音頻技術(shù) .................................690
13.4 三維音頻渲染 ....................................696
13.4.1 三維聲音渲染概覽 ...............................697
13.4.2 為音頻世界建模 ................................698
13.4.3 基于距離的衰減 ................................698
13.4.4 偏移 ......................................700
13.4.5 傳播、混響及聲學(xué)................................705
13.4.6 多普勒頻移...................................712
13.5 音頻引擎架構(gòu) ....................................712
13.5.1 音頻處理管道 .................................714
13.5.2 概念及術(shù)語...................................714
13.5.3 音總線.....................................715
13.5.4 主控混音器...................................718
13.5.5 主控輸出總線 .................................719
13.5.6 實(shí)現(xiàn)總線....................................720
13.5.7 資產(chǎn)管理....................................722
13.5.8 對游戲混音...................................724
13.5.9 音頻引擎調(diào)查 .................................727
13.6 游戲?qū)S玫囊纛l功能 ................................730
13.6.1 支持切割屏...................................731
13.6.2 角色對話....................................732
13.6.3 音樂 ......................................744
第 IV 部分 游 戲 性
第 14 章 游戲性系統(tǒng)簡介 ...............................747
14.1 剖析游戲世界 ....................................748
14.1.1 世界元素....................................748
14.1.2 世界組塊....................................750
14.1.3 高級游戲流程 .................................751
14.2 實(shí)現(xiàn)動態(tài)元素 : 游戲?qū)ο?..............................752
14.2.1 游戲?qū)ο竽P?.................................753
14.2.2 工具方的設(shè)計和運(yùn)行時的設(shè)計 ..........................754
14.3 數(shù)據(jù)驅(qū)動游戲引擎 .................................754
14.4 游戲世界編輯器 ..................................755
14.4.1 游戲世界編輯器的典型功能 ...........................758
14.4.2 集成的資產(chǎn)管理工具 ..............................763
第 15 章 運(yùn)行時游戲性基礎(chǔ)系統(tǒng) ...........................766
15.1 游戲性基礎(chǔ)系統(tǒng)的組件 ...............................766
15.2 各種運(yùn)行時對象模型架構(gòu) .............................768
15.2.1 以對象為中心的各種架構(gòu) ............................769
15.2.2 以屬性為中心的各種架構(gòu) ............................781
15.3 世界組塊的數(shù)據(jù)格式 ................................785
15.3.1 二進(jìn)制對象映像 ................................786
15.3.2 序列化游戲?qū)ο竺枋?..............................786
15.3.3 生成器及類型架構(gòu) ...............................788
15.4 游戲世界的加載和串流 ...............................792
15.4.1 簡單的關(guān)卡加載 ................................792
15.4.2 向無縫加載進(jìn)發(fā): 阻隔室 ............................792
15.4.3 游戲世界的串流 ................................794
15.4.4 對象生成的內(nèi)存管理 ..............................796
15.4.5 游戲存檔....................................798
15.5 對象引用與世界查詢 ................................799
15.5.1 指針 ......................................799
15.5.2 智能指針....................................800
15.5.3 句柄 ......................................802
15.5.4 游戲?qū)ο蟛樵?.................................804
15.6 實(shí)時更新游戲?qū)ο?.................................806
15.6.1 一個簡單 (但不可行) 的方式...........................807
15.6.2 性能限制及批次式更新 .............................809
15.6.3 對象及子系統(tǒng)的相互依賴 ............................811
15.6.4 為并行設(shè)計...................................819
15.7 事件與消息泵 ....................................821
15.7.1 靜態(tài)類型的函數(shù)綁定帶來的問題 .........................821
15.7.2 把事件封裝成對象 ...............................822
15.7.3 事件類型....................................823
15.7.4 事件參數(shù)....................................824
15.7.5 事件處理器...................................826
15.7.6 取出事件參數(shù) .................................827
15.7.7 職責(zé)鏈.....................................827
15.7.8 登記對事件的關(guān)注 ...............................829
15.7.9 要排隊還是不要排隊 ..............................830
15.7.10 即時傳遞事件帶來的問題............................835
15.7.11 數(shù)據(jù)驅(qū)動事件/消息傳遞系統(tǒng) ..........................836
15.8 腳本 .........................................839
15.8.1 運(yùn)行時與數(shù)據(jù)定義的對比 ............................839
15.8.2 編程語言特性 .................................839
15.8.3 一些常見的游戲腳本語言 ............................841
15.8.4 腳本所需的架構(gòu) ................................846
15.8.5 運(yùn)行時游戲腳本語言的功能 ...........................847
15.9 高層次的游戲流程 .................................858
第 V 部分 總 結(jié)
第 16 章 還有更多內(nèi)容嗎 ...............................863
16.1 一些未談及的引擎系統(tǒng) ...............................863
16.1.1 影片播放器...................................863
16.1.2 多人網(wǎng)絡(luò)....................................864
16.2 游戲性系統(tǒng) .....................................864
16.2.1 玩家機(jī)制....................................864
16.2.2 攝像機(jī).....................................864
16.2.3 人工智能....................................865
16.2.4 其他游戲性系統(tǒng) ................................866
參考文獻(xiàn) ..........................................867
中文索引 ..........................................871
英文索引 ..........................................900
展開全部
游戲引擎架構(gòu)(第2版) 作者簡介
[美]杰森·格雷戈瑞(Jason Gregory),在1994年開始任職專業(yè)軟件工程師,自1999年3月開始在游戲產(chǎn)業(yè)中任職軟件工程師。在圣迭哥Midway Home Entertainment公司開始游戲編程的他,為《瘋狂飛行員(Freaky Flyers)》及《Crank the Weasel》開發(fā)PlayStation 2/Xbox上的動畫系統(tǒng)。在2003年,他轉(zhuǎn)到洛杉磯藝電,為《榮譽(yù)勛章:血戰(zhàn)太平洋(Medal of Honor: Pacific Assault)》開發(fā)游戲引擎及游戲性技術(shù),并在《榮譽(yù)勛章:空降神兵(Medal of Honor: Airborne)》中擔(dān)任首席工程師。他現(xiàn)時是頑皮狗公司的通才程序員,為《神秘海域:德雷克船長的寶藏(Uncharted: Drake's Fortune)》及《神秘海域:縱橫四海(Uncharted: Among Thieves)》開發(fā)引擎及游戲性軟件。他也在南加州大學(xué)教授游戲技術(shù)的課程。葉勁峰(Milo Yip),從小自習(xí)編程,并愛好計算機(jī)圖形學(xué)。上中學(xué)時兼職開發(fā)策略RPG《王子傳奇》,該游戲在1995年于臺灣發(fā)行。其后他獲取了香港大學(xué)認(rèn)知科學(xué)學(xué)士、香港中文大學(xué)系統(tǒng)工程及工程管理哲學(xué)碩士。畢業(yè)后在香港理工大學(xué)設(shè)計學(xué)院從事游戲引擎及相關(guān)技術(shù)的研發(fā),職至項目主任。除發(fā)表學(xué)術(shù)文章外,也曾合著《DirectX9游戲編程實(shí)務(wù)》。2008年往上海育碧擔(dān)任引擎工程師開發(fā)《美食從天而降(Cloudy with a Chance of Meatballs)》Xbox360/PS3/Wii/PC,2009年起于麻辣馬開發(fā)《愛麗絲:瘋狂回歸(Alice: Madness Returns)》Xbox360/PS3/PC,2011年加入騰訊互動娛樂引擎技術(shù)中心擔(dān)任專家工程師,所研發(fā)的技術(shù)已用于《斗戰(zhàn)神》、《天涯明月刀》、《眾神爭霸》等項目中。