目錄
第1章 關於Windows 1
1.1 關於Windows 1
1.2 匈牙利命名法 2
1.3 Windows的一般概念 3
1.4 Windows中的消息處理 4
1.5 Hello World——Windows風格 6
1.6 對窗口幾何參數的操作 17
1.7 重要的窗口消息 19
1.8 類的封裝 23
1.9 COM:組件對象模型 30
1.10 小結 32
第2章 DirectX 10入門 33
2.1 什麼是DirectX 33
2.2 安裝 33
2.3 VC++的環境設置 34
2.4 DirectDraw發展史 36
2.5 Direct3D簡介 37
2.5.1 2D圖形學基礎 38
2.5.2 紋理 41
2.5.3 用cGraphicsLayer啓動Direct3D 50
2.5.4 Direct3D的初始化 56
2.5.5 關閉Direct3D 63
2.6 例程:Direct3D Sample 63
2.7 小結 65
第3章 輸入與音效 67
3.1 DirectInput 67
3.1.1 設備 68
3.1.2 應用程序的焦點和設備 73
3.1.3 DirectInput對象 74
3.2 音效 90
3.2.1 音效的本質 90
3.2.2 DirectSound的概念 91
3.3 加載WAV文件 98
3.4 應用程序:DirectSound Sample 118
3.5 小結 123
第4章 3D數學基礎 125
4.1 點 125
4.1.1 point3結構 128
4.1.2 基本的point3函數 129
4.1.3 point3運算符 130
4.2 多邊形 137
4.3 三角形 140
4.4 平麵 142
4.4.1 確定與平麵的位置關係 145
4.4.2 背麵剔除 148
4.4.3 綫段裁剪 149
4.4.4 裁剪多邊形 150
4.5 物體錶示法 154
4.6 變換 156
4.6.1 矩陣 157
4.6.2 外接球的碰撞檢測 176
4.7 光照 178
4.7.1 顔色的錶示 179
4.7.2 光照模型 181
4.7.3 鏡麵反射 183
4.7.4 光源類型 184
4.7.5 明暗模型 186
4.8 BSP樹 189
4.8.1 BSP樹相關理論 190
4.8.2 BSP樹的構建 190
4.8.3 BSP樹相關算法 195
4.8.4 BSP樹相關代碼 197
4.9 小結 209
第5章 人工智能 211
5.1 起點 212
5.2 操控——基本算法 212
5.2.1 追趕 213
5.2.2 躲避 213
5.2.3 基於模式的AI 214
5.3 操控——高級算法 215
5.3.1 勢函數 215
5.3.2 路徑跟蹤 219
5.4 動機 230
5.4.1 不確定有限自動機 230
5.4.2 遺傳算法 232
5.4.3 基於規則的AI 234
5.4.4 神經網絡 235
5.4.5 應用程序:NeutralNet 240
5.5 係統擴展 253
第6章 基於UDP的多玩傢Internet網絡遊戲 255
6.1 術語 255
6.1.1 字節序 255
6.1.2 網絡模型 257
6.1.3 協議 258
6.1.4 包 258
6.2 實現1:MTUDP 259
6.2.1 設計思路 259
6.2.2 要注意的事情 259
6.2.3 互斥 261
6.2.4 綫程、監視器和try/throw/catch結構問題 263
6.2.5 早年的MTUDP 264
6.3 實現2:流暢的網絡遊戲 294
6.3.1 地理和時域獨立 294
6.3.2 時間就是一切 295
6.3.3 仔細挑選 296
6.3.4 預測和推測 296
6.4 小結 298
第7章 Direct3D基礎 299
7.1 D3D簡介 299
7.2 開始使用Direct3D 300
7.2.1 步驟1:創建ID3D10Device對象和交換鏈 300
7.2.2 步驟2:創建深度-模緩存 302
7.2.3 步驟3:創建視區 309
7.2.4 步驟4:創建默認著色器 310
7.2.5 關於深度緩存的更多討論 323
7.2.6 模闆緩存 326
7.2.7 頂點緩存 326
7.3 用著色器進行光照計算 329
7.4 應用程序:D3D View 331
7.4.1 .o3d格式 331
7.4.2 cModel類 332
第8章 高級3D技術 343
8.1 使用層次化對象的動畫處理 343
8.1.1 正嚮運動學 345
8.1.2 反嚮運動學 347
8.1.3 應用:InvKim 350
8.2 帶參數的麯綫和麯麵 356
8.2.1 貝塞爾麯綫和麯麵 356
8.2.2 求基礎矩陣 361
8.2.3 計算貝塞爾麯綫 362
8.2.4 前嚮差分 363
8.2.5 繪製麯綫 367
8.2.6 繪製麯麵 368
8.2.7 應用程序:茶壺 369
8.2.8 B樣條麯綫 377
8.3 細分麯麵 380
8.3.1 細分要素 381
8.3.2 改進的蝴蝶法細分方案 383
8.3.3 應用程序:SubDiv 387
8.4 漸進網格 401
8.4.1 漸進網格基礎知識 402
8.4.2 選擇邊 403
8.4.3 實現漸進網格渲染器 406
8.5 輻射度 407
8.5.1 輻射度基本原理 408
8.5.2 漸進輻射度 410
8.5.3 形狀因子 411
8.5.4 應用程序:Radiosity 412
8.6 小結 416
第9章 Direct3D高級主題 417
9.1 alpha融閤 417
9.1.1 alpha融閤方程 417
9.1.2 深度排序的說明 418
9.1.3 激活alpha融閤 418
9.2 紋理貼圖入門 423
9.2.1 基本原則 423
9.2.2 仿射與透視貼圖 424
9.2.3 紋理尋址模式 425
9.2.4 紋理外包 427
9.2.5 紋理走樣 428
9.2.6 MIP多級紋理鏈 429
9.2.7 紋理過濾 430
9.2.8 Direct3D中的紋理 433
9.2.9 加載紋理 434
9.2.10 激活紋理 437
9.3 高級紋理貼圖 440
9.3.1 紋理數組 440
9.3.2 多層紋理效果 440
9.3.3 光照貼圖(或黑暗貼圖) 441
9.3.4 環境貼圖 443
9.3.5 鏡麵貼圖 448
9.3.6 細節貼圖 448
9.3.7 應用程序:Detail 450
9.3.8 發光貼圖 458
9.3.9 光澤度貼圖 459
9.3.10 其他效果 460
9.3.11 應用程序:MultiTex 460
9.4 使用模闆緩存 480
9.4.1 透支計數器 481
9.4.2 溶解和擦除 481
9.5 小結 482
第10章 場景管理 483
10.1 場景管理問題和解決方案 483
10.1.1 四叉樹/八叉樹 484
10.1.2 入口渲染 485
10.1.3 入口效果 494
10.1.4 入口生成 498
10.1.5 預先計算的入口渲染(用PVS) 499
10.2 應用程序:Mobots Attack! 500
10.2.1 對象間通信 501
10.2.2 網絡通信 505
10.2.3 代碼結構 508
10.3 結束感想 508
附錄 STL入門 509
A.1 模闆 509
A.2 容器 510
A.3 迭代器 512
A.4 仿函數 513
· · · · · · (
收起)