本書為“十二五”普通高等教育本科國家級規(guī)劃教材。 本書著重介紹計算機游戲程序設計所需的專業(yè)領域知識,包括二維圖形圖像技術、三維圖形學基礎、高級圖形學編程、計算機動畫技術、人工智能技術、音頻處理技術和網(wǎng)絡技術、VR/AR游戲開發(fā)等,基本涵蓋了計算機游戲編程的各個主要方面。全書共12章,取材于國內外的最新資料,強調理論與實踐相結合,通過游戲實例來啟發(fā)性地說明游戲編程的各種原理和方法。 本書教學資源包括三部分內容:示例代碼、集成示例和繪制引擎(讀者可以通過掃描二維碼進行下載)。 本書面向的讀者對象是那些已掌握基本的程序設計技能,但立志于從事計算機游戲軟件開發(fā)的程序員和游戲開發(fā)愛好者。本書既可作為計算機、數(shù)字媒體技術和游戲專業(yè)的本科生(研究生)的教材,也可用于游戲學院和各類游戲編程人員培訓班的參考資料,對正在從事游戲開發(fā)和制作的相關人員也具有重要參考價值。
耿衛(wèi)東,男,浙江大學計算機學院教授,計算機應用技術與數(shù)字化藝術博士生導師。ACM SIGGRAPH會員,中國圖像圖形學會計算機動畫與數(shù)字娛樂專業(yè)委員會委員,數(shù)碼藝術專業(yè)委員會委員,中國動畫學會會員,杭州國家動漫基地特聘專家。
目 錄
第1章 三維游戲引擎技術簡介 1
1.1 三維游戲的基礎架構 1
1.1.1 硬件層 2
1.1.2 基礎層(驅動、操作系統(tǒng)及API) 3
1.1.3 游戲引擎 3
1.2 三維游戲引擎發(fā)展簡史 4
1.3 常用三維游戲引擎 10
1.3.1 虛幻引擎UNREAL 10
1.3.2 CryEngine引擎 11
1.3.3 Unity3D引擎 10
1.3.4 Ogre3D引擎 11
1.3.5 寒霜引擎Frostbite Engine 12
1.3.6 id Tech引擎 13
小結 14
習題1 14
參考文獻 15
第2章 三維數(shù)學基礎 16
2.1 坐標系 16
2.2 向量及其運算 17
2.3 矩陣、變換及其運算 18
2.4 旋轉 22
2.4.1 四元數(shù) 22
2.4.2 歐拉角 23
2.4.3 旋轉變換的不同表達形式之間的轉換 24
2.5 常用的立體幾何算法 25
2.5.1 常用幾何體的表達與生成 26
2.5.2 常用幾何體之間的距離與求交 27
2.5.3 常用幾何體的屬性計算 28
小結 30
習題2 30
參考文獻 30
第3章 三維游戲場景的表示和組織 32
3.1 三維場景的表示 32
3.1.1 三角網(wǎng)格模型 33
3.1.2 三維對象參數(shù)表示 35
3.1.3 三類常用參數(shù)曲面 36
3.2 三維場景的組織和管理 39
3.2.1 基于場景圖的表達和管理 40
3.2.2 基于繪制狀態(tài)的場景管理 44
3.2.3 基于景物包圍體的場景組織 45
3.2.4 優(yōu)化場景繪制的幾何剖分技術 46
3.2.5 景物包圍體與場景剖分技術比較 48
3.3 三維場景的存儲 50
3.3.1 OBJ模型 50
3.3.2 FBX 50
3.3.3 COLLADA 51
3.4 游戲場景的幾何優(yōu)化 52
3.4.1 層次細節(jié)技術 52
3.4.2 漸進網(wǎng)格和連續(xù)多分辨率繪制技術 53
小結 55
習題3 55
參考文獻 55
第4章 高級圖形繪制技術 57
4.1 高級紋理映射技術 57
4.1.1 凹凸紋理映射 57
4.1.2 位移映射 61
4.1.3 環(huán)境映射 62
4.1.4 基于光照映射的快速繪制 64
4.1.5 高級紋理映射技術總結 67
4.2 基于圖像的繪制 68
4.2.1 Billboard技術 68
4.2.2 Impostor技術 71
4.2.3 精靈圖元繪制 73
4.3 表面材質繪制 74
4.3.1 基于物理的表面材質模型 75
4.3.2 基于測量的表面材質模型 77
4.3.3 表面材質模型的真實感繪制 77
4.3.4 表面材質模型的快速繪制 79
4.4 圖像反走樣 83
小結 85
習題4 85
參考文獻 86
第5章 三維特效圖形繪制 87
5.1 過程式建模和繪制技術 87
5.1.1 粒子系統(tǒng) 87
5.1.2 爆炸與火焰 89
5.1.3 L-系統(tǒng)與植被的模擬 90
5.1.4 云的過程式紋理生成 92
5.2 陰影計算 92
5.2.1 平面投影法 93
5.2.2 陰影體 94
5.2.3 陰影圖 99
5.2.4 軟影生成 100
5.2.5 Ambient Occlusion 101
5.3 鏡頭特效模擬 102
5.3.1 透鏡光暈 102
5.3.2 運動模糊和域深 104
5.3.3 色調映射 104
5.4 相互輝映計算與全局光照明 107
5.4.1 預計算輻射傳輸方法 108
5.4.2 基于屏幕空間的相互輝映計算方法 110
小結 111
習題5 111
參考文獻 111
第6章 三維碰撞檢測與動力學計算 113
6.1 動力學基礎 113
6.2 質點動力學 114
6.2.1 力方程 115
6.2.2 動量與速度 116
6.2.3 彈簧質點運動 118
6.3 剛體動力學 119
6.3.1 剛體旋轉 120
6.3.2 角速度、角動量、扭矩和旋轉慣量 120
6.3.3 力方程與積分 122
6.4 碰撞檢測 122
6.4.1 碰撞檢測的基本原理 124
6.4.2 求交算法 124
6.4.3 基于空間剖分結構的碰撞檢測算法 126
6.4.4 層次包圍體樹法 130
6.4.5 基于圖像空間的碰撞檢測算法 135
小結 137
習題6 137
參考文獻 137
第7章 角色動畫基本編程技術 139
7.1 三維角色動畫概述 139
7.2 關鍵幀動畫技術 140
7.2.1 關鍵幀的指定 141
7.2.2 “蒙皮”模型的變形 143
7.2.3 中間幀的插值技術 144
7.3 基于動作捕捉的動畫技術 149
7.3.1 動作捕捉系統(tǒng)簡介 150
7.3.2 動作捕捉數(shù)據(jù)的文件格式及其解析 152
7.3.3 動作捕捉數(shù)據(jù)的編輯和重用 166
7.3.4 在游戲中的應用 168
7.4 角色動畫的壓縮 170
7.4.1 基于關鍵幀提取的壓縮 170
7.4.2 基于幀內容的壓縮 170
7.5 腳本驅動的動畫技術 171
7.5.1 腳本語言的設計及分類 172
7.5.2 腳本語言在游戲中的應用 174
小結 175
習題7 175
參考文獻 176
第8章 三維音效編程技術 177
8.1 聲音基礎 177
8.1.1 聲音的表示和存儲 177
8.1.2 聲音的合成 179
8.2 三維音效生成 179
8.2.1 聽覺理論 180
8.2.2 三維音效模擬 180
8.3 基于OpenAL的三維音效實現(xiàn) 182
8.3.1 OpanAL編程概述 182
8.3.2 OpanAL的三維音效編程 184
8.4 基于DirectX Audio的三維音效實現(xiàn) 186
8.4.1 DirectX Audio概述 186
8.4.2 DirectSound編程概述 187
8.4.3 DirectMusic播放MIDI背景音樂 193
8.4.4 DirectSound的三維音效編程 193
8.5 XAudio2編程概述 194
小結 197
習題8 197
參考文獻 198
第9章 三維交互編程技術 199
9.1 三維交互開發(fā)平臺 199
9.2 任天堂Wiimote應用開發(fā) 201
9.2.1 Wiimote編程接口API說明 202
9.2.2 基于Wiimote獲取運動傳感數(shù)據(jù)的示例代碼 204
9.3 移動平臺應用開發(fā) 205
9.3.1 Unity編程接口API說明 206
9.3.2 Unity使用加速度傳感器的示例代碼 206
9.4 微軟Kinect應用開發(fā) 207
9.4.1 Kinect SDK編程接口API說明 209
9.4.2 Kinect獲取彩色圖像和骨架數(shù)據(jù)的示例代碼 212
9.5 Leap Motion應用開發(fā) 214
9.5.1 Leap Motion編程接口API說明 216
9.5.2 Leap Motion獲取體感數(shù)據(jù)的示例代碼 218
小結 220
習題9 220
參考文獻 220
第10章 AI編程進階 221
10.1 游戲AI簡介 221
10.2 常見的游戲AI技術 223
10.2.1 有限狀態(tài)機 223
10.2.2 基于腳本語言的行為建模 225
10.2.3 模糊邏輯 225
10.2.4 多智能體技術與人工生命 226
10.2.5 決策樹 227
10.2.6 人工神經(jīng)元網(wǎng)絡 228
10.2.7 遺傳算法 229
10.2.8 群體行為的模擬 230
10.3 跟蹤與追逐行為的模擬 232
10.4 有限狀態(tài)機和模糊有限狀態(tài)機的實現(xiàn) 236
10.4.1 有限狀態(tài)機的實現(xiàn) 236
10.4.2 模糊有限狀態(tài)機的實現(xiàn) 244
10.5 A*算法和路徑尋找技術 249
10.5.1 搜索技術及A*算法 249
10.5.2 路徑尋找技術 258
10.6 游戲AI的設計和實現(xiàn)原則 262
10.7 展望 266
小結 268
習題10 269
參考文獻 269
第11章 網(wǎng)絡游戲編程技術 270
11.1 網(wǎng)絡游戲的基本架構 270
11.2 Winsock編程基礎 272
11.2.1 TCP/UDP簡介 272
11.2.2 Socket和Winsocket簡介 273
11.2.3 Winsock編程結構 274
11.2.4 Winsock地址處理 275
11.2.5 Winsock函數(shù)介紹 276
11.2.6 Winsock綜合示例 281
11.3 網(wǎng)絡游戲通信協(xié)議 284
11.4 網(wǎng)絡游戲多線程編程 285
11.5 小型網(wǎng)絡游戲設計與實現(xiàn) 286
11.6 大型多人網(wǎng)絡游戲設計策略 288
11.7 網(wǎng)絡傳輸?shù)膬?yōu)化 291
小結 293
習題11 293
參考文獻 293
第12章 虛擬現(xiàn)實/增強現(xiàn)實游戲開發(fā) 294
12.1 虛擬現(xiàn)實與增強現(xiàn)實概述 294
12.1.1 虛擬現(xiàn)實 294
12.1.2 增強現(xiàn)實 297
12.2 深度感知與三維顯示 298
12.2.1 深度感知 298
12.2.2 基于立體眼鏡的三維顯示 300
12.3 VR游戲開發(fā) 301
12.3.1 視角控制 302
12.3.2 三維自然交互 303
12.3.3 性能優(yōu)化 307
12.4 AR游戲開發(fā) 311
12.4.1 AR游戲中的三維注冊與實時交互 311
12.4.2 代表性AR游戲 313
小結 316
習題12 316
參考文獻 317
附錄A 三維圖形繪制基礎 318
A.1 坐標系概述 318
A.2 顏色空間與模型 319
A.3 圖形繪制流程 323
A.3.1 固定流水線 324
A.3.2 定制流水線與Shaders 325
A.4 照相機模型與投影矩陣 326
A.4.1 照相機模型 326
A.4.2 投影矩陣 327
A.5 頂點與幾何變換 329
A.6 像素計算 330
A.6.1 像素顏色計算 330
A.6.2 片段剔除 332
A.6.3 反走樣 332
A.7 光照明計算 333
A.8 紋理映射 339
A.9 推遲渲染 344
A.10 繪制編程接口 346
參考文獻 348
劉宇廣 (2018/9/25 17:08:00):我愛你湖南科技職業(yè)學院我會愛你一生一世永遠不分離