游戲引擎架構(gòu)(第2版) 版權(quán)信息
- ISBN:9787121375293
- 條形碼:9787121375293 ; 978-7-121-37529-3
- 裝幀:平裝-膠訂
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類(lèi):>>
游戲引擎架構(gòu)(第2版) 本書(shū)特色
√ 引擎為游戲科技之大成,而通用游戲引擎經(jīng)常無(wú)法通用,需要因項(xiàng)目而改造、整合、擴(kuò)展及優(yōu)化,因此必須理解其架構(gòu)、機(jī)制和技術(shù) ,才能分析及解決游戲制作中的問(wèn)題(本書(shū)譯者在騰訊游戲即擔(dān)此重任)。
√ 站在*界級(jí)專(zhuān)家的肩上,廣泛了解、宏觀對(duì)比(藝電、頑皮狗)*界游戲名作優(yōu)選方案與實(shí)際采用技術(shù)、工具,覆蓋手游、端游通用的游戲性系統(tǒng)、場(chǎng)景管理、人工智能、物理模擬、前臺(tái)技術(shù)等知識(shí)。
√ 涵蓋游戲開(kāi)發(fā)技術(shù)方方面面:足夠細(xì)節(jié)以使初學(xué)者極易理解;巧妙平衡廣度與深度以幫助經(jīng)驗(yàn)豐富的游戲程序員。架構(gòu)部分細(xì)致描述每個(gè)子系統(tǒng)的需求、相關(guān)技術(shù)及與其他子系統(tǒng)的關(guān)系。
√ 游戲音頻技術(shù)內(nèi)容首度在書(shū)中出現(xiàn),填補(bǔ)領(lǐng)域空白——大篇幅整章講述開(kāi)發(fā)AAA游戲音頻引擎的物理、數(shù)學(xué)及技術(shù)首度曝光;動(dòng)畫(huà)系統(tǒng) 、運(yùn)行時(shí)游戲性基礎(chǔ)系統(tǒng)部分依舊出彩。
《游戲引擎架構(gòu)》廣受歡迎,成為游戲引擎軟件開(kāi)發(fā)理論和實(shí)踐的完整指南。第2版按當(dāng)今游戲引擎架構(gòu)發(fā)展趨勢(shì)更新大量?jī)?nèi)容,進(jìn)一步完善對(duì)典型游戲引擎各主要模塊的講解,重點(diǎn)新內(nèi)容包括:
更新了各個(gè)主題的信息,包括C++編程語(yǔ)言的*新版本C++11、第8代游戲機(jī)Xbox One 和PlayStation 4。
新增了音頻技術(shù)章節(jié),包含AAA游戲音頻引擎所涉及的物理、數(shù)學(xué)和技術(shù)等方面的知識(shí)。
更新了多核編程、流水線CPU架構(gòu)、優(yōu)化、國(guó)際化、贗矢量、格拉斯曼代數(shù)、對(duì)偶四元數(shù)、SIMD矢量數(shù)學(xué)、內(nèi)存對(duì)齊及抗鋸齒等章節(jié)。
深入介紹了頑皮狗*新熱作《*后生還者》的制作過(guò)程。
本書(shū)講解商業(yè)游戲引擎中各個(gè)子系統(tǒng)的理論基礎(chǔ),并論述了實(shí)現(xiàn)這些子系統(tǒng)通常所需的數(shù)據(jù)結(jié)構(gòu)、算法及軟件接口。本書(shū)聚焦在引擎本身,其中包括底層基礎(chǔ)系統(tǒng)、渲染引擎、碰撞系統(tǒng)、物理模擬、角色動(dòng)畫(huà)及音頻。而在“游戲性基礎(chǔ)層”中深入探討游戲?qū)ο竽P汀?界編輯器、事件系統(tǒng)與腳本系統(tǒng)。書(shū)中還涉及一些游戲編程方面的技術(shù),如玩家機(jī)制、攝像頭和人工智能。
《游戲引擎架構(gòu)》(第2版)不僅可作為知識(shí)掃盲的工具,以及延伸學(xué)習(xí)的跳板,更能讓讀者扎實(shí)地理解游戲引擎中每個(gè)工程范疇中的理論與典型實(shí)踐。本書(shū)將助你走過(guò)游戲引擎架構(gòu)那迷人、全方位的難忘之旅。
游戲引擎架構(gòu)(第2版) 內(nèi)容簡(jiǎn)介
《游戲引擎架構(gòu)》(第 2 版)涵蓋游戲引擎軟件開(kāi)發(fā)的理論及實(shí)踐知識(shí),并在第 1 版的基礎(chǔ)上對(duì)多個(gè)主題進(jìn)行了更新。本書(shū)中討論的概念及技巧被實(shí)際應(yīng)用于現(xiàn)實(shí)中的游戲工作室(如藝電及頑皮狗)。雖然書(shū)中采用的例子通常依托于一些專(zhuān)門(mén)的技術(shù),但是討論范圍遠(yuǎn)超某個(gè)引擎或API。另外,書(shū)中提供的參考文獻(xiàn)及引用也很好有價(jià)值,可讓讀者繼續(xù)深入游戲開(kāi)發(fā)的任何特定方向。本書(shū)為大學(xué)程度的游戲編程課程而編寫(xiě),但也適合軟件工程師、游戲開(kāi)發(fā)業(yè)余愛(ài)好者,以及游戲產(chǎn)業(yè)的從業(yè)人員閱讀。通過(guò)閱讀本書(shū),資歷較淺的游戲工程師可以鞏固他們所學(xué)的游戲技術(shù)及引擎架構(gòu)的知識(shí),專(zhuān)注某一領(lǐng)域的程序員也能從本書(shū)全面的介紹中獲益。《游戲引擎架構(gòu)》(第2版)不僅可作為知識(shí)掃盲的工具,以及延伸學(xué)習(xí)的跳板,更能讓讀者扎實(shí)地理解游戲引擎中每個(gè)工程范疇中的理論與典型實(shí)踐。本書(shū)將助你走過(guò)游戲引擎架構(gòu)那迷人、多方面的難忘之旅。本書(shū)講解商業(yè)游戲引擎中各個(gè)子系統(tǒng)的理論基礎(chǔ),并論述了實(shí)現(xiàn)這些子系統(tǒng)通常所需的數(shù)據(jù)結(jié)構(gòu)、算法及軟件接口。本書(shū)聚焦在引擎本身,其中包括底層基礎(chǔ)系統(tǒng)、渲染引擎、碰撞系統(tǒng)、物理模擬、角色動(dòng)畫(huà)及音頻。而在“游戲性基礎(chǔ)層”中深入探討游戲?qū)ο竽P汀⑹澜缇庉嬈鳌⑹录到y(tǒng)與腳本系統(tǒng)。書(shū)中還涉及一些游戲編程方面的技術(shù),如玩家機(jī)制、攝像頭和人工智能。《游戲引擎架構(gòu)》廣受歡迎,成為游戲引擎軟件開(kāi)發(fā)理論和實(shí)踐的完整指南。第2版按當(dāng)今游戲引擎架構(gòu)發(fā)展趨勢(shì)更新大量?jī)?nèi)容,進(jìn)一步完善對(duì)典型游戲引擎各主要模塊的講解,重點(diǎn)新內(nèi)容包括:·更新了各個(gè)主題的信息,包括C++編程語(yǔ)言的近期新版本C++11、第8代游戲機(jī)Xbox One 和PlayStation 4。·新增了音頻技術(shù)章節(jié),包含AAA游戲音頻引擎所涉及的物理、數(shù)學(xué)和技術(shù)等方面的知識(shí)。·更新了多核編程、流水線CPU架構(gòu)、優(yōu)化、靠前化、贗矢量、格拉斯曼代數(shù)、對(duì)偶四元數(shù)、SIMD矢量數(shù)學(xué)、內(nèi)存對(duì)齊及抗鋸齒等章節(jié)。
游戲引擎架構(gòu)(第2版) 目錄
第 2 版序言 .........................................xxxiii
第 1 版序言 .........................................xxxv
第 2 版前言 .........................................xxxvii
第 1 版前言 .........................................xxxviii
致謝 .............................................xl
第 I 部分 基 礎(chǔ)
第 1 章 導(dǎo)論 .......................................3
1.1 典型游戲團(tuán)隊(duì)的結(jié)構(gòu) ................................4
1.1.1 工程師 .....................................5
1.1.2 藝術(shù)家 .....................................5
1.1.3 游戲設(shè)計(jì)師 ...................................6
1.1.4 制作人 .....................................7
1.1.5 其他工作人員 ..................................7
1.1.6 發(fā)行商及工作室 .................................7
1.2 游戲是什么 .....................................8
1.2.1 電子游戲作為軟實(shí)時(shí)模擬.............................8
1.3 游戲引擎是什么 ...................................10
1.4 不同游戲類(lèi)型的引擎差異 ..............................11
1.4.1 **人稱(chēng)射擊游戲 ................................12
1.4.2 平臺(tái)及其他第三人稱(chēng)游戲.............................13
1.4.3 格斗游戲 ....................................15
1.4.4 競(jìng)速游戲 ....................................17
1.4.5 實(shí)時(shí)策略游戲 ..................................18
1.4.6 大型多人在線游戲 ................................20
1.4.7 玩家創(chuàng)作內(nèi)容 ? ..................................21
1.4.8 其他游戲類(lèi)型 ..................................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 專(zhuān)有內(nèi)部引擎 .................................29
1.5.12 開(kāi)源引擎....................................29
1.6 運(yùn)行時(shí)引擎架構(gòu) ...................................30
1.6.1 目標(biāo)硬件 ....................................32
1.6.2 設(shè)備驅(qū)動(dòng)程序 ..................................32
1.6.3 操作系統(tǒng) ....................................32
1.6.4 第三方軟件開(kāi)發(fā)包和中間件............................33
1.6.5 平臺(tái)獨(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 動(dòng)畫(huà) ......................................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 個(gè)別游戲?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ù)庫(kù) ? ...................................55
1.7.5 一些構(gòu)建工具的方法 ...............................55
第 2 章 專(zhuān)業(yè)工具 ....................................58
2.1 版本控制 .......................................58
2.1.1 為何使用版本控制 ................................58
2.1.2 常見(jiàn)的版本控制系統(tǒng) ...............................59
2.1.3 Subversion 和 TortoiseSVN 概覽 .........................60
2.1.4 在 Google 上設(shè)置代碼版本庫(kù)...........................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 程序庫(kù)、可執(zhí)行文件及動(dòng)態(tài)鏈接庫(kù).........................67
2.2.3 項(xiàng)目及解決方案 .................................68
2.2.4 生成配置 ....................................69
2.2.5 調(diào)試代碼 ....................................75
2.3 剖析工具 .......................................81
2.3.1 剖析器列表 ...................................83
2.4 內(nèi)存泄漏和損壞檢測(cè) ................................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 對(duì)象的內(nèi)存布局 .................................121
3.2.6 kilobyte 及 kibibyte ...............................129
3.3 捕捉及處理錯(cuò)誤 ...................................129
3.3.1 錯(cuò)誤類(lèi)型 ....................................129
3.3.2 錯(cuò)誤處理 ....................................130
3.3.3 實(shí)現(xiàn)錯(cuò)誤檢測(cè)及處理 ...............................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 在二維中解決三維問(wèn)題 ...............................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)存中存儲(chǔ)矩陣 ...............................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 等價(jià)的四元數(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 對(duì)偶四元數(shù) ...................................188
4.5.7 旋轉(zhuǎn)和自由度 ..................................188
4.6 其他數(shù)學(xué)對(duì)象 ....................................189
4.6.1 直線、光線及線段 ................................189
4.6.2 球體 ......................................190
4.6.3 平面 ......................................190
4.6.4 軸對(duì)齊包圍盒 ..................................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ù)類(lèi)型 ................................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)的啟動(dòng)和終止 ................................209
5.1.1 C++ 的靜態(tài)初始化次序 (是不可用的) ......................209
5.1.2 行之有效的簡(jiǎn)單方法 ...............................212
5.1.3 一些實(shí)際引擎的例子 ...............................214
5.2 內(nèi)存管理 .......................................218
5.2.1 優(yōu)化動(dòng)態(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 建立自定義的容器類(lèi) ...............................236
5.4 字符串 ........................................248
5.4.1 字符串的使用問(wèn)題 ................................248
5.4.2 字符串類(lèi) ....................................249
5.4.3 唯一標(biāo)識(shí)符 ...................................249
5.4.4 本地化 .....................................253
5.5 引擎配置 .......................................263
5.5.1 讀/寫(xiě)選項(xiàng)....................................263
5.5.2 個(gè)別用戶選項(xiàng) ..................................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)行時(shí)資源管理 .................................289
第 7 章 游戲循環(huán)及實(shí)時(shí)模擬 .............................305
7.1 渲染循環(huán) .......................................305
7.2 游戲循環(huán) .......................................306
7.2.1 簡(jiǎn)單例子: 《乓》 .................................306
7.3 游戲循環(huán)的架構(gòu)風(fēng)格 ................................308
7.3.1 視窗消息泵 ...................................308
7.3.2 回調(diào)驅(qū)動(dòng)框架 ..................................309
7.3.3 基于事件的更新 .................................311
7.4 抽象時(shí)間線 .....................................311
7.4.1 真實(shí)時(shí)間 ....................................311
7.4.2 游戲時(shí)間 ....................................311
7.4.3 局部及全局時(shí)間線 ................................312
7.5 測(cè)量及處理時(shí)間 ...................................313
7.5.1 幀率及時(shí)間增量 .................................313
7.5.2 從幀率到速率 ..................................314
7.5.3 使用高分辨率計(jì)時(shí)器測(cè)量實(shí)時(shí)時(shí)間 ........................317
7.5.4 時(shí)間單位和時(shí)鐘變量 ...............................318
7.5.5 應(yīng)對(duì)斷點(diǎn) ....................................321
7.5.6 一個(gè)簡(jiǎn)單的時(shí)鐘類(lèi) ................................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 每個(gè)子系統(tǒng)運(yùn)行于獨(dú)立線程............................333
7.6.5 作業(yè)模型 ....................................334
7.6.6 異步程序設(shè)計(jì) ..................................334
7.7 網(wǎng)絡(luò)多人游戲循環(huán) ..................................337
7.7.1 主從式模型 ...................................337
7.7.2 點(diǎn)對(duì)點(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 輪詢(xún) ......................................344
8.2.2 中斷 ......................................344
8.2.3 無(wú)線設(shè)備 ....................................345
8.3 輸入類(lèi)型 .......................................345
8.3.1 數(shù)字式按鈕 ...................................345
8.3.2 模擬式軸及按鈕 .................................347
8.3.3 相對(duì)性軸 ....................................348
8.3.4 加速計(jì) .....................................348
8.3.5 以 Wii 遙控器或 DualShock 做三維定向 .....................349
8.3.6 攝像機(jī) .....................................350
8.4 輸出類(lèi)型 .......................................352
8.4.1 震動(dòng)反饋 ....................................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 模擬信號(hào)過(guò)濾 ..................................355
8.5.4 輸入事件檢測(cè) ..................................357
8.5.5 為多位玩家管理多個(gè) HID ............................364
8.5.6 跨平臺(tái)的 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)試及開(kāi)發(fā)工具 ................................370
9.1 日志及跟蹤 .....................................370
9.1.1 使用 OutputDebugString() 做格式化輸出.....................371
9.1.2 冗長(zhǎng)級(jí)別 ....................................372
9.1.3 頻道 ......................................373
9.1.4 把輸出同時(shí)抄寫(xiě)至日志文件............................374
9.1.5 崩潰報(bào)告 ....................................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)置主控臺(tá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)計(jì)和泄漏檢測(cè) ..........................394
第 III 部分 圖形、運(yùn)動(dòng)與聲音
第 10 章 渲染引擎 ...................................401
10.1 采用深度緩沖的三角形光柵化基礎(chǔ) ........................401
10.1.1 場(chǎng)景描述....................................403
10.1.2 描述表面的視覺(jué)性質(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 簡(jiǎn)史 ...................................447
10.2.5 GPU 管道 ...................................448
10.2.6 可編程著色器 .................................452
10.2.7 抗鋸齒 ? ....................................456
10.2.8 應(yīng)用程序階段 .................................459
10.3 高級(jí)光照及全局光照 ................................468
10.3.1 基于圖像的光照 ................................468
10.3.2 高動(dòng)態(tài)范圍光照 ................................472
10.3.3 全局光照....................................473
10.3.4 延遲渲染....................................479
10.3.5 基于物理著色 ? .................................480
10.4 視覺(jué)效果和覆蓋層 .................................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 章 動(dòng)畫(huà)系統(tǒng) ...................................490
11.1 角色動(dòng)畫(huà)的類(lèi)型 ..................................490
11.1.1 賽璐璐動(dòng)畫(huà)...................................490
11.1.2 剛性層階式動(dòng)畫(huà) ................................491
11.1.3 每頂點(diǎn)動(dòng)畫(huà)及變形目標(biāo) .............................492
11.1.4 蒙皮動(dòng)畫(huà)....................................493
11.1.5 把動(dòng)畫(huà)方法視為數(shù)據(jù)壓縮技術(shù) ..........................494
11.2 骨骼 .........................................495
11.2.1 骨骼層階結(jié)構(gòu) .................................496
11.2.2 在內(nèi)存中表示骨骼 ...............................497
11.3 姿勢(shì) .........................................498
11.3.1 綁定姿勢(shì)....................................498
11.3.2 局部姿勢(shì)....................................499
11.3.3 全局姿勢(shì)....................................501
11.4 動(dòng)畫(huà)片段 ......................................502
11.4.1 局部時(shí)間線...................................503
11.4.2 全局時(shí)間線...................................506
11.4.3 比較局部和全局時(shí)鐘 ..............................508
11.4.4 簡(jiǎn)單的動(dòng)畫(huà)數(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é)知識(shí) ..............................515
11.6 動(dòng)畫(huà)混合 ......................................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 程序式動(dòng)畫(huà)...................................536
11.7.2 逆運(yùn)動(dòng)學(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 動(dòng)畫(huà)系統(tǒng)架構(gòu) ....................................544
11.10 動(dòng)畫(huà)管道 .....................................545
11.10.1 數(shù)據(jù)結(jié)構(gòu) ...................................546
11.10.2 扁平的加權(quán)平均混合表示法 ..........................549
11.10.3 混合樹(shù) ....................................552
11.10.4 淡入/淡出架構(gòu) ................................555
11.10.5 動(dòng)畫(huà)管道的優(yōu)化 ................................557
11.11 動(dòng)作狀態(tài)機(jī) ....................................559
11.11.1 動(dòng)畫(huà)狀態(tài) ...................................559
11.11.2 過(guò)渡 .....................................565
11.11.3 狀態(tài)層 ....................................568
11.11.4 控制參數(shù) ...................................570
11.11.5 約束 .....................................571
11.12 動(dòng)畫(huà)控制器 ....................................579
第 12 章 碰撞及剛體動(dòng)力學(xué) ..............................580
12.1 你想在游戲中加入物理嗎 .............................580
12.1.1 物理系統(tǒng)可以做的事情 .............................581
12.1.2 物理好玩嗎...................................582
12.1.3 物理對(duì)游戲的影響 ...............................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 碰撞檢測(cè)系統(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 碰撞測(cè)試及解析幾何 ..............................596
12.3.6 性能優(yōu)化....................................604
12.3.7 碰撞查詢(xún)....................................606
12.3.8 碰撞過(guò)濾....................................610
12.4 剛體動(dòng)力學(xué) .....................................611
12.4.1 基礎(chǔ) ......................................613
12.4.2 線性動(dòng)力學(xué)...................................614
12.4.3 運(yùn)動(dòng)方程求解 .................................616
12.4.4 數(shù)值積分....................................618
12.4.5 二維旋轉(zhuǎn)動(dòng)力學(xué) ................................622
12.4.6 三維旋轉(zhuǎn)動(dòng)力學(xué) ................................625
12.4.7 碰撞響應(yīng)....................................629
12.4.8 約束 ......................................636
12.4.9 控制剛體的運(yùn)動(dòng) ................................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 展望 : 高級(jí)物理功能 ................................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é)知識(shí) .................................668
13.2.1 信號(hào) ......................................669
13.2.2 處理信號(hào)....................................670
13.2.3 線性時(shí)不變系統(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ù)語(yǔ)...................................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 對(duì)游戲混音...................................724
13.5.9 音頻引擎調(diào)查 .................................727
13.6 游戲?qū)S玫囊纛l功能 ................................730
13.6.1 支持切割屏...................................731
13.6.2 角色對(duì)話....................................732
13.6.3 音樂(lè) ......................................744
第 IV 部分 游 戲 性
第 14 章 游戲性系統(tǒng)簡(jiǎn)介 ...............................747
14.1 剖析游戲世界 ....................................748
14.1.1 世界元素....................................748
14.1.2 世界組塊....................................750
14.1.3 高級(jí)游戲流程 .................................751
14.2 實(shí)現(xiàn)動(dòng)態(tài)元素 : 游戲?qū)ο?..............................752
14.2.1 游戲?qū)ο竽P?.................................753
14.2.2 工具方的設(shè)計(jì)和運(yùn)行時(shí)的設(shè)計(jì) ..........................754
14.3 數(shù)據(jù)驅(qū)動(dòng)游戲引擎 .................................754
14.4 游戲世界編輯器 ..................................755
14.4.1 游戲世界編輯器的典型功能 ...........................758
14.4.2 集成的資產(chǎn)管理工具 ..............................763
第 15 章 運(yùn)行時(shí)游戲性基礎(chǔ)系統(tǒng) ...........................766
15.1 游戲性基礎(chǔ)系統(tǒng)的組件 ...............................766
15.2 各種運(yùn)行時(shí)對(duì)象模型架構(gòu) .............................768
15.2.1 以對(duì)象為中心的各種架構(gòu) ............................769
15.2.2 以屬性為中心的各種架構(gòu) ............................781
15.3 世界組塊的數(shù)據(jù)格式 ................................785
15.3.1 二進(jìn)制對(duì)象映像 ................................786
15.3.2 序列化游戲?qū)ο竺枋?..............................786
15.3.3 生成器及類(lèi)型架構(gòu) ...............................788
15.4 游戲世界的加載和串流 ...............................792
15.4.1 簡(jiǎn)單的關(guān)卡加載 ................................792
15.4.2 向無(wú)縫加載進(jìn)發(fā): 阻隔室 ............................792
15.4.3 游戲世界的串流 ................................794
15.4.4 對(duì)象生成的內(nèi)存管理 ..............................796
15.4.5 游戲存檔....................................798
15.5 對(duì)象引用與世界查詢(xún) ................................799
15.5.1 指針 ......................................799
15.5.2 智能指針....................................800
15.5.3 句柄 ......................................802
15.5.4 游戲?qū)ο蟛樵?xún) .................................804
15.6 實(shí)時(shí)更新游戲?qū)ο?.................................806
15.6.1 一個(gè)簡(jiǎn)單 (但不可行) 的方式...........................807
15.6.2 性能限制及批次式更新 .............................809
15.6.3 對(duì)象及子系統(tǒng)的相互依賴(lài) ............................811
15.6.4 為并行設(shè)計(jì)...................................819
15.7 事件與消息泵 ....................................821
15.7.1 靜態(tài)類(lèi)型的函數(shù)綁定帶來(lái)的問(wèn)題 .........................821
15.7.2 把事件封裝成對(duì)象 ...............................822
15.7.3 事件類(lèi)型....................................823
15.7.4 事件參數(shù)....................................824
15.7.5 事件處理器...................................826
15.7.6 取出事件參數(shù) .................................827
15.7.7 職責(zé)鏈.....................................827
15.7.8 登記對(duì)事件的關(guān)注 ...............................829
15.7.9 要排隊(duì)還是不要排隊(duì) ..............................830
15.7.10 即時(shí)傳遞事件帶來(lái)的問(wèn)題............................835
15.7.11 數(shù)據(jù)驅(qū)動(dòng)事件/消息傳遞系統(tǒng) ..........................836
15.8 腳本 .........................................839
15.8.1 運(yùn)行時(shí)與數(shù)據(jù)定義的對(duì)比 ............................839
15.8.2 編程語(yǔ)言特性 .................................839
15.8.3 一些常見(jiàn)的游戲腳本語(yǔ)言 ............................841
15.8.4 腳本所需的架構(gòu) ................................846
15.8.5 運(yùn)行時(shí)游戲腳本語(yǔ)言的功能 ...........................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
展開(kāi)全部
游戲引擎架構(gòu)(第2版) 作者簡(jiǎn)介
[美]杰森·格雷戈瑞(Jason Gregory),在1994年開(kāi)始任職專(zhuān)業(yè)軟件工程師,自1999年3月開(kāi)始在游戲產(chǎn)業(yè)中任職軟件工程師。在圣迭哥Midway Home Entertainment公司開(kāi)始游戲編程的他,為《瘋狂飛行員(Freaky Flyers)》及《Crank the Weasel》開(kāi)發(fā)PlayStation 2/Xbox上的動(dòng)畫(huà)系統(tǒng)。在2003年,他轉(zhuǎn)到洛杉磯藝電,為《榮譽(yù)勛章:血戰(zhàn)太平洋(Medal of Honor: Pacific Assault)》開(kāi)發(fā)游戲引擎及游戲性技術(shù),并在《榮譽(yù)勛章:空降神兵(Medal of Honor: Airborne)》中擔(dān)任首席工程師。他現(xiàn)時(shí)是頑皮狗公司的通才程序員,為《神秘海域:德雷克船長(zhǎng)的寶藏(Uncharted: Drake's Fortune)》及《神秘海域:縱橫四海(Uncharted: Among Thieves)》開(kāi)發(fā)引擎及游戲性軟件。他也在南加州大學(xué)教授游戲技術(shù)的課程。葉勁峰(Milo Yip),從小自習(xí)編程,并愛(ài)好計(jì)算機(jī)圖形學(xué)。上中學(xué)時(shí)兼職開(kāi)發(fā)策略RPG《王子傳奇》,該游戲在1995年于臺(tái)灣發(fā)行。其后他獲取了香港大學(xué)認(rèn)知科學(xué)學(xué)士、香港中文大學(xué)系統(tǒng)工程及工程管理哲學(xué)碩士。畢業(yè)后在香港理工大學(xué)設(shè)計(jì)學(xué)院從事游戲引擎及相關(guān)技術(shù)的研發(fā),職至項(xiàng)目主任。除發(fā)表學(xué)術(shù)文章外,也曾合著《DirectX9游戲編程實(shí)務(wù)》。2008年往上海育碧擔(dān)任引擎工程師開(kāi)發(fā)《美食從天而降(Cloudy with a Chance of Meatballs)》Xbox360/PS3/Wii/PC,2009年起于麻辣馬開(kāi)發(fā)《愛(ài)麗絲:瘋狂回歸(Alice: Madness Returns)》Xbox360/PS3/PC,2011年加入騰訊互動(dòng)娛樂(lè)引擎技術(shù)中心擔(dān)任專(zhuān)家工程師,所研發(fā)的技術(shù)已用于《斗戰(zhàn)神》、《天涯明月刀》、《眾神爭(zhēng)霸》等項(xiàng)目中。