內容簡介
本書嚴謹翔實地闡述了DirectX的工作機制,詳盡地探討了三維遊戲的開發過程,並用圖示的方法介紹了如何使用D3D SDK。同時通過典型案例分析大部分三維編程的思路與問題,將D3D與3dsMax聯繫起來,讓獨立的美工與程式在遊戲套用上得到完美的結合。
本書可作為高等院校數字媒體技術專業課教材,也可作為套用型本科院校計算機、信息管理與信息系統、電子商務等相關專業的實驗教學用書,還可作為高職院校及企業工程人員的參考用書和對計算機圖形學感興趣的讀者的參考資料。
目錄
第1章 面向對象的遊戲編程原理 1
1.1 面向對象的遊戲設計思想 1
1.1.1 遊戲開發基本流程 1
1.1.2 簡單的遊戲過程模擬程式 1
1.2 面向對象程式設計 4
1.2.1 從C語言到C++ 4
1.2.2 C++ 的類與對象 11
1.2.3 構造函式和析構函式 12
1.2.4 派生方法 13
1.3 STL標準模板庫 14
1.3.1 vector容器 14
1.3.2 iterator疊代器 15
第2章 Windows編程基礎 17
2.1 基於事件和訊息的Windows作業系統 17
2.1.1 Win32訊息機制 17
2.1.2 創建Win32項目 18
2.2 Win32應用程式 19
2.2.1 WinMain()函式 19
2.2.2 設計與註冊視窗類 20
2.2.3 創建視窗 23
2.2.4 顯示和更新視窗 25
2.2.5 訊息循環 25
2.2.6 註銷視窗類 28
2.3 視窗過程 28
2.3.1 視窗過程函式 28
2.3.2 鍵盤訊息 29
2.3.3 滑鼠訊息 31
2.3.4 時間訊息 32
第3章 DirectX簡介 35
3.1 啟動Direct3D 35
3.1.1 Direct3D工作原理 35
3.1.2 Direct3D開發環境配置 36
3.1.3 Direct3D初始化 39
3.1.4 系統回響時間間隔 42
3.2 繪製流水線 43
3.2.1 局部坐標系 44
3.2.2 世界坐標系 44
3.2.3 觀察坐標系 46
3.2.4 背面消隱 47
3.2.5 光照 48
3.2.6 裁剪 48
3.2.7 投影 48
3.2.8 視口變換 49
3.2.9 光柵化 50
3.3 代碼封裝 51
3.3.1 D3DUT模組 51
3.3.2 MyD3D模組 55
3.3.3 主檔案 59
第4章 基本空間變換 62
4.1 三維向量 62
4.1.1 三維向量的定義 62
4.1.2 D3DXVECTOR3類 63
4.1.3 點積 65
4.1.4 叉積 66
4.2 矩陣變換 67
4.2.1 基於三維坐標的三維空間變化 67
4.2.2 齊次坐標的引入 68
4.2.3 基於齊次坐標的矩陣變換 69
第5章 Direct 3D的繪製方法 75
5.1 三維圖形繪製 75
5.1.1 基於頂點快取的圖形繪製 75
5.1.2 基於頂點索引快取的圖形繪製 89
5.2 自由頂點格式 97
5.3 基於顏色頂點的圖形繪製 98
5.3.1 D3D顏色表達 99
5.3.2 顏色頂點的繪製方法 101
5.4 基於紋理頂點的圖形繪製 107
5.4.1 紋理映射原理 108
5.4.2 紋理頂點快取的創建 108
5.4.3 紋理快取的創建 109
5.4.4 紋理頂點的繪製 111
5.4.5 紋理過濾器 111
5.4.6 紋理頂點繪製的案例分析 113
第6章 Alpha融合 118
6.1 基於Alpha通道的像素融合 118
6.1.1 Alpha融合原理 118
6.1.2 設定Alpha融合渲染狀態 119
6.1.3 顏色頂點幾何體的透明渲染案例 120
6.1.4 紋理頂點幾何體的透明渲染案例 124
6.2 紋理記憶體的訪問 128
第7章 光照與材質 131
7.1 光照與光源 131
7.1.1 光照模型 131
7.1.2 常用的光源 132
7.1.3 常用光源案例分析 133
7.2 材質 139
7.3 頂點法向量 140
7.4 Direct3D的光照渲染案例分析 141
7.4.1 自發光立方體類設計 143
7.4.2 材質平面類設計 146
7.4.3 紋理材質平面類設計 149
7.4.4 多光源初始化及渲染 152
第8章 三維格線模型 157
8.1 XFile檔案 157
8.1.1 三維格線ID3DXMESH接口 157
8.1.2 格線子集 158
8.1.3 3dsMax的XFile導出 159
8.1.4 XFile載入與渲染 160
8.1.5 三維格線類D3DXFile設計 162
8.2 XFile的邊界體 166
8.2.1 邊界體計算方法 166
8.2.2 子集邊界體 168
8.2.3 邊界體類封裝 171
8.3 碰撞檢測 176
8.3.1 邊界球的碰撞檢測 176
8.3.2 邊界盒的碰撞檢測 179
8.3.3 基於邊界體碰撞檢測的案例分析 181
第9章 動畫格線模型 187
9.1 骨骼動畫相關技術原理 187
9.2 帶動畫的XFile檔案導出 189
9.3 骨骼動畫類 191
9.3.1 骨骼動畫數據結構 191
9.3.2 分層結構接口 192
9.3.3 骨骼動畫類D3DXAnimation 197
9.3.4 骨骼動畫實例 203