內容簡介
本書為“十二五”
普通高等教育本科國家級規劃教材。 本書著重介紹計算機遊戲程式設計所需的專業領域知識,包括二維圖形圖像技術、三維圖形學基礎、高級圖形學編程、計算機動畫技術、人工智慧技術、音頻處理技術和網路技術、VR/AR遊戲開發等,基本涵蓋了計算機遊戲編程的各個主要方面。全書共12章,取材於國內外的最新資料,強調理論與實踐相結合,通過遊戲實例來啟發性地說明遊戲編程的各種原理和方法。 本書教學資源包括三部分內容:示例代碼、集成示例和繪製引擎(讀者可以通過掃描二維碼進行下載)。 本書面向的讀者對象是那些已掌握基本的程式設計技能,但立志於從事計算機遊戲軟體開發的程式設計師和遊戲開發愛好者。本書既可作為計算機、
數字媒體技術和遊戲專業的本科生(研究生)的教材,也可用於遊戲學院和各類遊戲編程人員培訓班的參考資料,對正在從事遊戲開發和製作的相關人員也具有重要參考價值。
第1章 簡介
1.1 三維遊戲的基礎架構 1
1.1.1 硬體層 2
1.1.2 基礎層(驅動、作業系統及API) 3
1.1.3 遊戲引擎 3
1.2 三維遊戲引擎發展簡史 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章 三維數學基礎
2.1 坐標系 16
2.2 向量及其運算 17
2.3 矩陣、變換及其運算 18
2.4 旋轉 22
2.4.1 四元數 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章 場景表示和組織
3.1 三維場景的表示 32
3.1.1 三角格線模型 33
3.1.2 三維對象參數表示 35
3.1.3 三類常用參數曲面 36
3.2 三維場景的組織和管理 39
3.2.1 基於場景圖的表達和管理 40
3.2.2 基於繪製狀態的場景管理 44
3.2.3 基於景物包圍體的場景組織 45
3.2.4 最佳化場景繪製的幾何剖分技術 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 遊戲場景的幾何最佳化 52
3.4.1 層次細節技術 52
3.4.2 漸進格線和連續多解析度繪製技術 53
小結 55
習題3 55
參考文獻 55
第4章 圖形繪製技術
4.1 高級紋理映射技術 57
4.1.1 凹凸紋理映射 57
4.1.2 位移映射 61
4.1.3 環境映射 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章 特效圖形繪製
5.1 過程式建模和繪製技術 87
5.1.1 粒子系統 87
5.1.2 爆炸與火焰 89
5.1.3 L-系統與植被的模擬 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章 碰撞檢測與計算
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章 動畫編程技術
7.1 三維角色動畫概述 139
7.2 關鍵幀動畫技術 140
7.2.1 關鍵幀的指定 141
7.2.2 “蒙皮”模型的變形 143
7.2.3 中間幀的插值技術 144
7.3 基於動作捕捉的動畫技術 149
7.3.1 動作捕捉系統簡介 150
7.3.2 動作捕捉數據的檔案格式及其解析 152
7.3.3 動作捕捉數據的編輯和重用 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章 音效編程技術
8.1 聲音基礎 177
8.1.1 聲音的表示和存儲 177
8.1.2 聲音的合成 179
8.2 三維音效生成 179
8.2.1 聽覺理論 180
8.2.2 三維音效模擬 180