DirectX9.03D遊戲開發變成基礎

DirectX9.03D遊戲開發變成基礎

《DirectX9.03D遊戲開發變成基礎》是清華大學出版社出版的圖書,ISBN是9787302130253

基本介紹

  • 中文名:DirectX9.03D遊戲開發變成基礎
  • 出版社清華大學出版社
  • 作/譯者:(美)Frank D.Luna|譯者:段菲
  • 出版日期:2007年04月
圖書簡介,內容提要,圖書目錄,

圖書簡介

ISBN:9787302130253
[十位:7302130256]
頁數:373 重約:0.530KG

內容提要

本書主要介紹如何使用DirectX 9.0開發互動式3D圖形程式,重點是遊戲開發。全書首先介紹了必要的數學工具,然後講解了相關的3D概念。其它主題幾乎涵蓋了Direct3D中的所有基本運算,例如圖元的繪製、光照、紋理、Alpha融合、模板,以及如何使用Direct3D實現遊戲中所需的技術。介紹頂定點著色器和像素著色器的章節(包含了效果框架和新的高級著色語言的內容)對這些關鍵運算進行了較為集中的討論。
本書內容深入淺出,內容廣泛,可供從事3D遊戲程式設計、可視化系統設計或其他圖形應用程式開發的開發人員和大中專院校學生參考,也極適合各種遊戲開發培訓機構作為Direct3D編程的培訓教程。

圖書目錄

第Ⅰ部分 基礎知識
必備的數學知識 3
3D空間中的向量 3
向量相等 7
計算向量的長度 7
向量的規範化 8
向量加法 9
向量減法 9
數乘 10
點積 11
叉積 11
矩陣 12
矩陣相等、矩陣數乘和矩陣加法 13
矩陣乘法 14
單位矩陣 15
逆矩陣 15
矩陣的轉置 16
D3DX矩陣 16
基本變換 19
平移矩陣 20
旋轉矩陣 21
比例變換矩陣
幾何變換的組合 24
向量變換的一些函式 25
平面(選讀) 26
D3DXPLANE 27
點和平面的空間關係 27
平面的創建 28
平面的規範化 29
平面的變換 29
平面中到某一點的最近點 30
射線(選讀) 31
射線 31
射線與平面的相交 32
小結 32
第Ⅱ部分 Direct3D基礎
第1章 初始化Direct3D 37
1.1 Direct3D概述 37
1.1.1 REF設備 38
1.1.2 D3DDEVTYPE 38
1.2 COM(組件對象模型) 38
1.3 預備知識 39
1.3.1 表面 39
1.3.2 多重採樣 41
1.3.3 像素格式 42
1.3.4 記憶體池 42
1.3.5 交換鏈和頁面置換 43
1.3.6 深度快取 44
1.3.7 頂點運算 45
1.3.8 設備性能 45
1.4 Direct3D的初始化 46
1.4.1 獲取接口IDirect3D9的指針 47
1.4.2 校驗硬體頂點運算 47
1.4.3 填充D3DPRESENT_
PARAMETER結構 48
1.4.4 創建IDirect3DDevice9
接口 50
1.5 例程:Direct3D的初始化 51
1.5.1 d3dUtility.h/cpp 52
1.5.2 例程框架 53
1.5.3 例程:D3D初始化 54
1.6 小結 56
第2章 繪製流水線 58
2.1 模型表示 59
2.1.1 頂點格式 60
2.1.2 三角形單元 60
2.1.3 索引 61
2.2 虛擬攝像機 62
2.3 繪製流水線 63
2.3.1 局部坐標系 64
2.3.2 世界坐標系 64
2.3.3 觀察坐標系 65
2.3.4 背面消隱 67
2.3.5 光照 68
2.3.6 裁剪 68
2.3.7 投影 69
2.3.8 視口變換 70
2.3.9 光柵化 72
2.4 小結 72
第3章 Direct3D中的繪製 73
3.1 頂點快取與索引快取 73
3.1.1 創建頂點快取和索引快取 73
3.1.2 訪問快取內容 76
3.1.3 獲取頂點快取和
索引快取的信息 77
3.2 繪製狀態 78
3.3 繪製的準備工作 78
3.4 使用頂點快取和索引快取進行繪製 79
3.4.1 IDirect3DDevice9::
DrawPrimitive 79
3.4.2 IDirect3DDevice9::
DrawIndexedPrimitive 80
3.4.3 Begin/End Scene 81
3.5 D3DX幾何體 81
3.6 例程:三角形、立方體、
茶壺、D3DXCreate* 83
3.7 小結 87
第4章 顏色 89
4.1 顏色表示 89
4.2 頂點顏色 92
4.3 著色 92
4.4 例程:具有顏色的三角形 93
4.5 小結 95
第5章 光照 97
5.1 光照的組成 97
5.2 材質 98
5.3 頂點法線 100
5.4 光源 102
5.5 例程:光照 105
5.6 一些附加例程 108
5.7 小結 108
第6章 紋理映射 109
6.1 紋理坐標 110
6.2 創建並啟用紋理 111
6.3 紋理過濾器 112
6.4 多級漸進紋理 113
6.4.1 多級漸進紋理過濾器 114
6.4.2 使用多級漸進紋理 114
6.5 定址模式 114
6.6 例程:紋理四邊形 116
6.7 小結 118
第7章 融合技術 119
7.1 融合方程 119
7.2 融合因子 121
7.3 透明度 122
7.3.1 Alpha通道 122
7.3.2 指定Alpha來源 123
7.4 用DirectX Texture Tool
創建Alpha通道 123
7.5 例程:透明效果 125
7.6 小結 127
第8章 模板 128
8.1 模板快取的使用 129
8.1.1 模板快取格式的查詢 129
8.1.2 模板測試 130
8.1.3 模板測試的控制 130
8.1.4 模板快取的更新 132
8.1.5 模板寫掩碼 132
8.2 例程:鏡面效果 133
8.2.1 成像中的數學問題 133
8.2.2 鏡面效果實現概述 134
8.2.3 代碼解析 135
8.3 例程:Planer Shadows 139
8.3.1 平行光陰影 139
8.3.2 點光源產生的陰影 140
8.3.3 陰影矩陣 141
8.3.4 使用模板快取
防止二次融合 142
8.3.5 代碼解析 143
8.4 小結 144
第Ⅲ部分 Direct3D的套用
第9章 字型 149
9.1 ID3DXFont接口 149
9.1.1 創建一個ID3DXFont
接口對象 149
9.1.2 繪製文本 150
9.1.3 計算每秒繪製的幀數 151
9.2 CD3DFont 152
9.2.1 創建CD3DFont類的實例 152
9.2.2 繪製文本 152
9.2.3 清理 153
9.3 D3DXCreateText函式 153
9.4 小結 155
第10章 格線(一) 156
10.1 幾何信息 156
10.2 子集和屬性快取 157
10.3 繪製 159
10.4 格線最佳化 159
10.5 屬性表 161
10.6 鄰接信息 163
10.7 克隆 164
10.8 創建格線(D3DXCreateMeshFVF) 165
10.9 例程:格線的創建與繪製 167
10.10 小結 172
第11章 格線(二) 174
11.1 ID3DXBuffer 174
11.2 XFile 175
11.2.1 載入XFile檔案 175
11.2.2 XFile材質 176
11.2.3 例程:XFile 177
11.2.4 生成頂點法線 180
11.3 漸進格線 181
11.3.1 生成漸進格線 182
11.3.2 頂點屬性權值 183
11.3.3 ID3DXPMesh接口方法 183
11.3.4 例程:Progressive Mesh 184
11.4 外接體 187
11.4.1 一些新的特殊常量 189
11.4.2 外接體的類型 189
11.4.3 例程:Bounding Volumes 190
11.5 小結 192
第12章 設計一個靈活的Camera類 193
12.1 Camera類的設計 193
12.2 實現細節 195
12.2.1 觀察矩陣(取景變換矩陣,
View Matrix)的計算 195
12.2.2 繞任意軸的旋轉 198
12.2.3 俯仰、偏航和滾動 199
12.2.4 行走、掃視和升降 201
12.3 例程:Camera 202
12.4 小結 205
第13章 地形繪製基礎 206
13.1 高度圖 207
13.1.1 創建高度圖 207
13.1.2 載入RAW檔案 208
13.1.3 訪問和修改高度圖 209
13.2 創建地形幾何信息 210
13.2.1 頂點的計算 212
13.2.2 索引的計算 214
13.3 紋理映射 216
13.4 光照 219
13.4.1 概述 219
13.4.2 坐標方格的明暗度計算 220
13.4.3 對地形進行著色 222
13.5 在地形中“行走” 222
13.6 例程:Terrain 226
13.7 一些改進 228
13.8 小結 229
第14章 粒子系統 230
14.1 粒子和點精靈 230
14.1.1 結構格式 230
14.1.2 點精靈的繪製狀態 231
14.1.3 粒子及其屬性 233
14.2 粒子系統的組成 234
14.2.1 繪製一個粒子系統 238
14.2.2 隨機性 243
14.3 具體的粒子系統 243
14.3.1 例程:Snow System 244
14.3.2 例程:Firework 246
14.3.3 例程:Particle Gun 248
14.4 小結 250
第15章 拾取 251
15.1 螢幕到投影視窗的變換 253
15.2 拾取射線的計算 254
15.3 對射線進行變換 255
15.4 射線/物體相交判定 256
15.5 例程:Picking 258
15.6 小結 259
第Ⅳ部分 著色器和效果
第16章 高級著色語言(HLSL)入門 263
16.1 HLSL著色器程式的編制 264
16.1.1 全局變數 266
16.1.2 輸入和輸出結構 266
16.1.3 入口函式 267
16.2 HLSL著色器程式的編譯 268
16.2.1 常量表 268
16.2.2 HLSL著色器程式的編譯 272
16.3 變數類型 274
16.3.1 標量類型 274
16.3.2 向量類型 274
16.3.3 矩陣類型 275
16.3.4 數組 277
16.3.5 結構體 277
16.3.6 關鍵字typedef 277
16.3.7 變數的前綴 278
16.4 關鍵字、語句及類型轉換 279
16.4.1 關鍵字 279
16.4.2 基本程式流程 279
16.4.3 類型轉換 280
16.5 運算符 281
16.6 用戶自定義函式 282
16.7 內置函式 284
16.8 小結 286
第17章 頂點著色器入門 287
17.1 頂點聲明 288
17.1.1 頂點聲明的描述 288
17.1.2 頂點聲明的創建 291
17.1.3 頂點聲明的啟用 291
17.2 頂點數據的使用 291
17.3 使用頂點著色器的步驟 293
17.3.1 頂點著色器的編寫與編譯 294
17.3.2 頂點著色器的創建 294
17.3.3 頂點著色器的設定 294
17.3.4 頂點著色器的銷毀 295
17.4 例程:Diffuse Lighting 295
17.5 例程:Cartoon Rendering 302
17.5.1 卡通著色 303
17.5.2 卡通著色的頂點
著色器代碼 304
17.5.3 輪廓的勾勒 307
17.5.4 實現輪廓勾勒的
頂點著色器代碼 310
17.6 小結 312
第18章 像素著色器入門 313
18.1 多重紋理概述 313
18.1.1 啟用多重紋理 315
18.1.2 多重紋理坐標 316
18.2 像素著色器的輸入和輸出 317
18.3 使用像素著色器的步驟 318
18.3.1 像素著色器的編寫和編譯 318
18.3.2 像素著色器的創建 318
18.3.3 像素著色器的設定 319
18.3.4 像素著色器的銷毀 319
18.4 HLSL採樣器對象 319
18.5 例程:像素著色器中的多重紋理 321
18.6 小結 329
第19章 效果框架 331
19.1 手法與路徑 331
19.2 更多HLSL的內置對象 333
19.2.1 紋理對象 333
19.2.2 採樣器對象與採樣器狀態 333
19.2.3 頂點著色器對象和
像素著色器對象 334
19.2.4 字元串 335
19.2.5 注釋 335
19.3 效果檔案中的設備狀態 336
19.4 創建一種效果 337
19.5 常量的設定 338
19.6 使用一種效果 340
19.6.1 效果句柄的獲取 341
19.6.2 效果的激活 341
19.6.3 效果的啟用 341
19.6.4 當前繪製路徑的設定 342
19.6.5 效果的終止 342
19.6.6 一個例子 342
19.7 例程:效果檔案中的光照和紋理 343
19.8 例程:霧效 349
19.9 例程:卡通效果 352
19.10 EffectEdit 353
19.11 小結 354
附錄 Windows編程入門 355

相關詞條

熱門詞條

聯絡我們