當前位置:編程學習大全網 - 編程語言 - DirectX 9.0 3D遊戲開發編程基礎 讀後感

DirectX 9.0 3D遊戲開發編程基礎 讀後感

DirectX 9.0 3D遊戲開發編程基礎 內容提要:

本書主要介紹如何使用DirectX 9.0開發交互式3D圖形程序,重點是遊戲開發。全書首先介紹了必要的數學工具,然後講解了相關的3D概念。其他主題幾乎涵蓋了Direct3D中的所有基本運算,例如圖元的繪制、光照、紋理、Alpha融合、模板,以及如何使用Direct3D實現遊戲中所需的技術。介紹頂定點著色器和像素著色器的章節(包含了效果框架和新的高級著色語言的內容)對這些關鍵運算進行了較為集中的討論。

本書內容深入淺出,內容廣泛,可供從事3D遊戲程序設計、可視化系統設計或其他圖形應用程序開發的開發人員和大中專院校學生參考,也極適合各種遊戲開發培訓機構作為Direct3D編程的培訓教程。

DirectX 9.0 3D遊戲開發編程基礎 讀後感:

第Ⅰ部分 基礎知識

必備的數學知識 3

3D空間中的向量 3

向量相等 7

計算向量的長度 7

向量的規範化 8

向量加法 9

向量減法 9

數乘 10

點積 11

叉積 11

矩陣 12

矩陣相等、矩陣數乘和矩陣加法 13

矩陣乘法 14

單位矩陣 15

逆矩陣 15

矩陣的轉置 16

D3DX矩陣 16

基本變換 19

平移矩陣 20

旋轉矩陣 21

比例變換矩陣 23

幾何變換的組合 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

  • 上一篇:池州職業技術學院專業有哪些
  • 下一篇:暴雪公司在哪裏成立
  • copyright 2024編程學習大全網