注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)游戲設(shè)計(jì)3D游戲編程大師技巧

3D游戲編程大師技巧

3D游戲編程大師技巧

定 價(jià):¥118.00

作 者: (美)Andre LaMothe著;李祥瑞,陳武譯;李祥瑞譯
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115133717 出版時(shí)間: 2005-06-01 包裝: 膠版紙
開(kāi)本: 26cm+光盤(pán)1片 頁(yè)數(shù): 922 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  提要本書(shū)是游戲編程暢銷(xiāo)書(shū)作者AndréLaMothe的扛鼎之作,從游戲編程和軟件引擎的角度深入探討了3D圖形學(xué)的各個(gè)重要主題。全書(shū)共分5部分,包括16章的內(nèi)容。第1~3章簡(jiǎn)要地介紹了Windows和DirectX編程,創(chuàng)建了一個(gè)Windows應(yīng)用程序模板,讓讀者能夠?qū)⒕Ψ旁谟螒蜻壿嫼蛨D形實(shí)現(xiàn)中,而不用考慮Windows和DirectX方面的瑣事;第4~5章簡(jiǎn)要地介紹了一些數(shù)學(xué)知識(shí)并實(shí)現(xiàn)了一個(gè)數(shù)學(xué)庫(kù),供以后編寫(xiě)演示程序時(shí)使用;第6章概述了3D圖形學(xué),讓讀者對(duì)本書(shū)將介紹的內(nèi)容有大致的了解;第7~11章分別介紹了光照、明暗處理、仿射紋理映射、3D裁剪和深度緩存等內(nèi)容;第12~14章討論了高級(jí)3D渲染技術(shù),包括透視修正紋理映射、Alpha混合、1/z緩存、紋理濾波、空間劃分和可見(jiàn)性算法、陰影、光照映射等;第15~16章討論了動(dòng)畫(huà)、運(yùn)動(dòng)碰撞檢測(cè)和優(yōu)化技術(shù)。本書(shū)適合于有一定編程經(jīng)驗(yàn)并想從事游戲編程工作或?qū)?D圖形學(xué)感興趣的人員閱讀。

作者簡(jiǎn)介

  AndreLaMothe有25年的計(jì)算行業(yè)從業(yè)經(jīng)驗(yàn),擁有數(shù)學(xué)、計(jì)算機(jī)科學(xué)和電子工程等學(xué)位,是20歲時(shí)就在NASA做研究工作的少數(shù)幾人之一。在30歲之前,他在硅谷的眾多公司中從事過(guò)咨詢工作,了解了公司運(yùn)作,獲得了多種領(lǐng)域的知識(shí),如電信、虛擬現(xiàn)實(shí)、機(jī)器人技術(shù)、編譯器設(shè)計(jì)、3D引擎、人工智能以及計(jì)算和工程的其他領(lǐng)域的知識(shí)。他創(chuàng)辦的公司XTREMEGAME公司一直是自成一體的游戲開(kāi)發(fā)、發(fā)行商。后來(lái)他創(chuàng)辦了XTREMEGAMESDEVELOPERCONFERENCE(XGDC),為游戲開(kāi)發(fā)人員提供了費(fèi)用更低廉的GDC替代品。最近,他參與了多個(gè)項(xiàng)目的開(kāi)發(fā)工作,其中包括EGAMEZONENETWORKS——一個(gè)公平、有趣、沒(méi)有任何廣告的網(wǎng)絡(luò)游戲分發(fā)系統(tǒng)。他還創(chuàng)建了一家新公司——NURVENETWORKS公司,為在乎價(jià)格的消費(fèi)者和業(yè)余愛(ài)好者開(kāi)發(fā)手持設(shè)備上的視頻游戲系統(tǒng)。最后,他還是世界上最龐大的游戲開(kāi)發(fā)系列叢書(shū)的編輯。

圖書(shū)目錄

第一部分 3D游戲編程簡(jiǎn)介
第1章 3D游戲編程入門(mén) 2
1.1 簡(jiǎn)介 2
1.2 2D/3D游戲的元素 3
1.2.1 初始化 3
1.2.2 進(jìn)入游戲循環(huán) 3
1.2.3 讀取玩家輸入 4
1.2.4 執(zhí)行AI和游戲邏輯 4
1.2.5 渲染下一幀 4
1.2.6 同步顯示 4
1.2.7 循環(huán) 4
1.2.8 關(guān)閉 5
1.3 通用游戲編程指南 7
1.4 使用工具 9
1.4.1 3D關(guān)卡編輯器 12
1.4.2 使用編譯器 13
1.5 一個(gè)3D游戲范例:Raiders 3D 15
1.5.1 事件循環(huán) 33
1.5.2 核心3D游戲邏輯 34
1.5.3 3D投影 35
1.5.4 星空 36
1.5.5 激光炮和碰撞檢測(cè) 37
1.5.6 爆炸 37
1.5.7 玩Raiders3D 37
1.6 總結(jié) 37
第2章 Windows和DirectX簡(jiǎn)明教程 38
2.1 Win32編程模型 38
2.2 Windows程序的最小需求 39
2.3 一個(gè)基本的Windows應(yīng)用程序 43
2.3.1 Windows類(lèi) 43
2.3.2 注冊(cè)Windows類(lèi) 47
2.3.3 創(chuàng)建窗口 47
2.3.4 事件處理程序 48
2.3.5 主事件循環(huán) 52
2.3.6 構(gòu)建實(shí)時(shí)事件循環(huán) 55
2.4 DirectX和COM簡(jiǎn)明教程 56
2.4.1 HEL和HAL 57
2.4.2 DirectX基本類(lèi) 58
2.5 COM簡(jiǎn)介 59
2.5.1 什么是COM對(duì)象 60
2.5.2 創(chuàng)建和使用DirectX COM接口 61
2.5.3 查詢接口 62
2.6 總結(jié) 64
第3章 使用虛擬計(jì)算機(jī)進(jìn)行3D游戲編程 65
3.1 虛擬計(jì)算機(jī)接口簡(jiǎn)介 65
3.2 建立虛擬計(jì)算機(jī)接口 66
3.2.1 幀緩存和視頻系統(tǒng) 66
3.2.2 使用顏色 70
3.2.3 緩存交換 71
3.2.4 完整的虛擬圖形系統(tǒng) 73
3.2.5 I/O、聲音和音樂(lè) 73
3.3 T3DLIB游戲控制臺(tái) 74
3.3.1 T3DLIB系統(tǒng)概述 74
3.3.2 基本游戲控制臺(tái) 74
3.4 T3DLIB1庫(kù) 79
3.4.1 DirectX圖形引擎體系結(jié)構(gòu) 79
3.4.2 基本常量 79
3.4.3 工作宏 81
3.4.4 數(shù)據(jù)類(lèi)型和結(jié)構(gòu) 81
3.4.5 函數(shù)原型 84
3.4.6 全局變量 88
3.4.7 DirectDraw接口 89
3.4.8 2D多邊形函數(shù) 92
3.4.9 數(shù)學(xué)函數(shù)和錯(cuò)誤函數(shù) 97
3.4.10 位圖函數(shù) 99
3.4.11 8位調(diào)色板函數(shù) 102
3.4.12 實(shí)用函數(shù) 104
3.4.13 BOB(Blitter對(duì)象)引擎 106
3.5 T3DLIB2 DirectX輸入系統(tǒng) 112
3.6 T3DLIB3聲音和音樂(lè)庫(kù) 116
3.6.1 頭文件 117
3.6.2 類(lèi)型 117
3.6.3 全局變量 117
3.6.4 DirectSound API封裝函數(shù) 118
3.6.5 DirectMusic API封裝函數(shù) 121
3.7 建立最終的T3D游戲控制臺(tái) 124
3.7.1 映射真實(shí)圖形到虛擬接口的非真實(shí)圖形 124
3.7.2 最終的T3DLIB游戲控制臺(tái) 126
3.8 范例T3LIB應(yīng)用程序 134
3.8.1 窗口應(yīng)用程序 134
3.8.2 全屏應(yīng)用程序 135
3.8.3 聲音和音樂(lè) 136
3.8.4 處理輸入 136
3.9 總結(jié) 139
第二部分 3D數(shù)學(xué)和變換
第4章 三角學(xué)、向量、矩陣和四元數(shù) 142
4.1 數(shù)學(xué)表示法 142
4.2 2D坐標(biāo)系 143
4.2.1 2D笛卡爾坐標(biāo) 143
4.2.2 2D極坐標(biāo) 144
4.3 3D坐標(biāo)系 147
4.3.1 3D笛卡爾坐標(biāo) 147
4.3.2 3D柱面坐標(biāo) 149
4.3.3 3D球面坐標(biāo) 150
4.4 三角學(xué) 151
4.4.1 直角三角形 151
4.4.2 反三角函數(shù) 153
4.4.3 三角恒等式 153
4.5 向量 154
4.5.1 向量長(zhǎng)度 155
4.5.2 歸一化 155
4.5.3 向量和標(biāo)量的乘法 155
4.5.4 向量加法 156
4.5.5 向量減法 157
4.5.6 點(diǎn)積 157
4.5.7 叉積 159
4.5.8 零向量 160
4.5.9 位置和位移向量 160
4.5.10 用線性組合表示的向量 161
4.6 矩陣和線性代數(shù) 161
4.6.1 單位矩陣 162
4.6.2 矩陣加法 163
4.6.3 矩陣的轉(zhuǎn)置 163
4.6.4 矩陣乘法 164
4.6.5 矩陣運(yùn)算滿足的定律 165
4.7 逆矩陣和方程組求解 165
4.7.1 克來(lái)姆法則 167
4.7.2 使用矩陣進(jìn)行變換 168
4.7.3 齊次坐標(biāo) 169
4.7.4 應(yīng)用矩陣變換 170
4.8 基本幾何實(shí)體 176
4.8.1 點(diǎn) 176
4.8.2 直線 176
4.8.3 平面 179
4.9 使用參數(shù)化方程 182
4.9.1 2D參數(shù)化直線 182
4.9.2 3D參數(shù)化直線 184
4.10 四元數(shù)簡(jiǎn)介 189
4.10.1 復(fù)數(shù)理論 189
4.10.2 超復(fù)數(shù) 193
4.10.3 四元數(shù)的應(yīng)用 197
4.11 總結(jié) 200
第5章 建立數(shù)學(xué)引擎 201
5.1 數(shù)學(xué)引擎概述 201
5.1.1 數(shù)學(xué)引擎的文件結(jié)構(gòu) 201
5.1.2 命名規(guī)則 202
5.1.3 錯(cuò)誤處理 203
5.1.4 關(guān)于C++的最后說(shuō)明 203
5.2 數(shù)據(jù)結(jié)構(gòu)和類(lèi)型 203
5.2.1 向量和點(diǎn) 203
5.2.2 參數(shù)化直線 204
5.2.3 3D平面 206
5.2.4 矩陣 206
5.2.5 四元數(shù) 209
5.2.6 角坐標(biāo)系支持 210
5.2.7 2D極坐標(biāo) 210
5.2.8 3D柱面坐標(biāo) 211
5.2.9 3D球面坐標(biāo) 211
5.2.10 定點(diǎn)數(shù) 212
5.3 數(shù)學(xué)常量 213
5.4 宏和內(nèi)聯(lián)函數(shù) 214
5.4.1 通用宏 218
5.4.2 點(diǎn)和向量宏 218
5.4.3 矩陣宏 219
5.4.4 四元數(shù) 220
5.4.5 定點(diǎn)數(shù)宏 221
5.5 函數(shù)原型 221
5.6 全局變量 224
5.7 數(shù)學(xué)引擎API清單 225
5.7.1 三角函數(shù) 225
5.7.2 坐標(biāo)系支持函數(shù) 226
5.7.3 向量支持函數(shù) 228
5.7.4 矩陣支持函數(shù) 235
5.7.5 2D和3D參數(shù)化直線支持函數(shù) 245
5.7.6 3D平面支持函數(shù) 248
5.7.7 四元數(shù)支持函數(shù) 252
5.7.8 定點(diǎn)數(shù)支持函數(shù) 259
5.7.9 方程求解支持函數(shù) 263
5.8 浮點(diǎn)單元運(yùn)算初步 265
5.8.1 FPU體系結(jié)構(gòu) 266
5.8.2 FPU堆棧 266
5.8.3 FPU指令集 268
5.8.4 經(jīng)典指令格式 270
5.8.5 內(nèi)存指令格式 271
5.8.6 寄存器指令格式 271
5.8.7 寄存器彈出指令格式 271
5.8.8 FPU范例 271
5.8.9 FLD范例 272
5.8.10 FST范例 272
5.8.11 FADD范例 273
5.8.12 FSUB范例 275
5.8.13 FMUL范例 276
5.8.14 FDIV范例 278
5.9 數(shù)學(xué)引擎使用說(shuō)明 279
5.10 關(guān)于數(shù)學(xué)優(yōu)化的說(shuō)明 280
5.11 總結(jié) 280
第6章 3D圖形學(xué)簡(jiǎn)介 282
6.1 3D引擎原理 282
6.2 3D游戲引擎的結(jié)構(gòu) 282
6.2.1 3D引擎 283
6.2.2 游戲引擎 283
6.2.3 輸入系統(tǒng)和網(wǎng)絡(luò) 284
6.2.4 動(dòng)畫(huà)系統(tǒng) 284
6.2.5 碰撞檢測(cè)和導(dǎo)航系統(tǒng) 287
6.2.6 物理引擎 288
6.2.7 人工智能系統(tǒng) 289
6.2.8 3D模型和圖像數(shù)據(jù)庫(kù) 289
6.3 3D坐標(biāo)系 291
6.3.1 模型(局部)坐標(biāo) 291
6.3.2 世界坐標(biāo) 293
6.3.3 相機(jī)坐標(biāo) 296
6.3.4 有關(guān)相機(jī)坐標(biāo)的說(shuō)明 302
6.3.5 隱藏物體(面)消除和裁剪 303
6.3.6 透視坐標(biāo) 308
6.3.7 流水線終點(diǎn):屏幕坐標(biāo) 315
6.4 基本的3D數(shù)據(jù)結(jié)構(gòu) 321
6.4.1 表示3D多邊形數(shù)據(jù)時(shí)需要考慮的問(wèn)題 322
6.4.2 定義多邊形 323
6.4.3 定義物體 327
6.4.4 表示世界 330
6.5 3D工具 331
6.6 從外部加載數(shù)據(jù) 332
6.6.1 PLG文件 333
6.6.2 NFF文件 335
6.6.3 3D Studio文件 338
6.6.4 Caligari COB文件 343
6.6.5 Microsoft DirectX .X文件 345
6.6.6 3D文件格式小結(jié) 345
6.7 基本剛性變換和動(dòng)畫(huà) 345
6.7.1 3D平移 345
6.7.2 3D旋轉(zhuǎn) 346
6.7.3 3D變形 347
6.8 再看觀察流水線 348
6.9 3D引擎類(lèi)型 349
6.9.1 太空引擎 349
6.9.2 地形引擎 350
6.9.3 FPS室內(nèi)引擎 351
6.9.4 光線投射和體素引擎 352
6.9.5 混合引擎 353
6.10 將各種功能集成到引擎中 353
6.11 總結(jié) 353
第7章 渲染3D線框世界 354
7.1 線框引擎的總體體系結(jié)構(gòu) 354
7.1.1 數(shù)據(jù)結(jié)構(gòu)和3D流水線 355
7.1.2 主多邊形列表 357
7.1.3 新的軟件模塊 359
7.2 編寫(xiě)3D文件加載器 359
7.3 構(gòu)建3D流水線 367
7.3.1 通用變換函數(shù) 367
7.3.2 局部坐標(biāo)到世界坐標(biāo)變換 372
7.3.3 歐拉相機(jī)模型 375
7.3.4 UVN相機(jī)模型 377
7.3.5 世界坐標(biāo)到相機(jī)坐標(biāo)變換 387
7.3.6 物體剔除 390
7.3.7 背面消除 393
7.3.8 相機(jī)坐標(biāo)到透視坐標(biāo)變換 395
7.3.9 透視坐標(biāo)到屏幕(視口)坐標(biāo)變換 399
7.3.10 合并透視變換和屏幕變換 403
7.4 渲染3D世界 405
7.5 3D演示程序 408
7.5.1 單個(gè)3D三角形 408
7.5.2 3D線框立方體 411
7.5.3 消除了背面的3D線框立方體 413
7.5.4 3D坦克演示程序 414
7.5.5 相機(jī)移動(dòng)的3D坦克演示程序 416
7.5.6 戰(zhàn)區(qū)漫步演示程序 418
7.6 總結(jié) 421
第三部分 基本3D渲染
第8章 基本光照和實(shí)體造型 424
8.1 計(jì)算機(jī)圖形學(xué)的基本光照模型 424
8.1.1 顏色模型和材質(zhì) 426
8.1.2 光源類(lèi)型 432
8.2 三角形的光照計(jì)算和光柵化 437
8.2.1 為光照做準(zhǔn)備 441
8.2.2 定義材質(zhì) 442
8.2.3 定義光源 445
8.3 真實(shí)世界中的著色 449
8.3.1 16位著色 449
8.3.2 8位著色 450
8.3.3 一個(gè)健壯的用于8位模式的RGB模型 450
8.3.4 一個(gè)簡(jiǎn)化的用于8位模式的強(qiáng)度模型 453
8.3.5 固定著色 457
8.3.6 恒定著色 459
8.3.7 Gouraud著色概述 472
8.3.8 Phong著色概述 474
8.4 深度排序和畫(huà)家算法 475
8.5 使用新的模型格式 479
8.5.1 分析器類(lèi) 479
8.5.2 輔助函數(shù) 482
8.5.3 3D Studio MAX ASCII格式.ASC 484
8.5.4 TrueSpace ASCII.COB格式 486
8.5.5 Quake II二進(jìn)制.MD2格式概述 494
8.6 3D建模工具簡(jiǎn)介 495
8.7 總結(jié) 497
第9章 插值著色技術(shù)和仿射紋理映射 498
9.1 新T3D引擎的特性 498
9.2 更新T3D數(shù)據(jù)結(jié)構(gòu)和設(shè)計(jì) 499
9.2.1 新的#defines 499
9.2.2 新增的數(shù)學(xué)結(jié)構(gòu) 501
9.2.3 實(shí)用宏 502
9.2.4 添加表示3D網(wǎng)格數(shù)據(jù)的特性 503
9.2.5 更新物體結(jié)構(gòu)和渲染列表結(jié)構(gòu) 508
9.2.6 函數(shù)清單和原型 511
9.3 重新編寫(xiě)物體加載函數(shù) 517
9.3.1 更新.PLG/PLX加載函數(shù) 517
9.3.2 更新3D Studio .ASC加載函數(shù) 527
9.3.3 更新Caligari .COB加載函數(shù) 528
9.4 回顧多邊形的光柵化 532
9.4.1 三角形的光柵化 532
9.4.2 填充規(guī)則 535
9.4.3 裁剪 537
9.4.4 新的三角形渲染函數(shù) 538
9.4.5 優(yōu)化 542
9.5 實(shí)現(xiàn)Gouraud著色處理 543
9.5.1 沒(méi)有光照時(shí)的Gouraud著色 544
9.5.2 對(duì)使用Gouraud Shader的多邊形執(zhí)行光照計(jì)算 553
9.6 基本采樣理論 560
9.6.1 一維空間中的采樣 560
9.6.2 雙線性插值 561
9.6.3 u和v的插值 563
9.6.4 實(shí)現(xiàn)仿射紋理映射 564
9.7 更新光照/光柵化引擎以支持紋理 566
9.8 對(duì)8位和16位模式下優(yōu)化策略的最后思考 571
9.8.1 查找表 571
9.8.2 網(wǎng)格的頂點(diǎn)結(jié)合性 572
9.8.3 存儲(chǔ)計(jì)算結(jié)果 572
9.8.4 SIMD 573
9.9 最后的演示程序 573
9.10 總結(jié) 576
第10章 3D裁剪 577
10.1 裁剪簡(jiǎn)介 577
10.1.1 物體空間裁剪 577
10.1.2 圖像空間裁剪 580
10.2 裁剪算法 581
10.2.1 有關(guān)裁剪的基本知識(shí) 581
10.2.2 Cohen-Sutherland裁剪算法 585
10.2.3 Cyrus-Beck/梁友棟-Barsky裁剪算法 586
10.2.4 Weiler-Atherton裁剪算法 588
10.2.5 深入學(xué)習(xí)裁剪算法 590
10.3 實(shí)現(xiàn)視景體裁剪 591
10.3.1 幾何流水線和數(shù)據(jù)結(jié)構(gòu) 592
10.3.2 在引擎中加入裁剪功能 593
10.4 地形小議 611
10.4.1 地形生成函數(shù) 612
10.4.2 生成地形數(shù)據(jù) 619
10.4.3 沙地汽車(chē)演示程序 619
10.5 總結(jié) 623
第11章 深度緩存和可見(jiàn)性 624
11.1 深度緩存和可見(jiàn)性簡(jiǎn)介 624
11.2 z緩存基礎(chǔ) 626
11.2.1 z緩存存在的問(wèn)題 627
11.2.2 z緩存范例 627
11.2.3 平面方程法 630
11.2.4 z坐標(biāo)插值 631
11.2.5 z緩存中的問(wèn)題和1/z緩存 632
11.2.6 一個(gè)通過(guò)插值計(jì)算z和1/z的例子 633
11.3 創(chuàng)建z緩存系統(tǒng) 635
11.4 可能的z緩存優(yōu)化 649
11.4.1 使用更少的內(nèi)存 649
11.4.2 降低清空z緩存的頻率 650
11.4.3 混合z緩存 651
11.5 z緩存存在的問(wèn)題 651
11.6 軟件和z緩存演示程序 652
11.6.1 演示程序I:z緩存可視化 652
11.6.2 演示程序II:Wave Raider 653
11.7 總結(jié) 658
第四部分 高級(jí)3D渲染
第12章 高級(jí)紋理映射技術(shù) 660
12.1 紋理映射——第二波 660
12.2 新的光柵化函數(shù) 667
12.2.1 最終決定使用定點(diǎn)數(shù) 667
12.2.2 不使用z緩存的新光柵化函數(shù) 668
12.2.3 支持z緩存的新光柵化函數(shù) 670
12.3 使用Gouruad著色的紋理映射 671
12.4 透明度和alpha混合 677
12.4.1 使用查找表來(lái)進(jìn)行alpha混合 678
12.4.2 在物體級(jí)支持alpha混合功能 688
12.4.3 在地形生成函數(shù)中加入
    alpha支持 694
12.5 透視修正紋理映射和1/z緩存 696
12.5.1 透視紋理映射的數(shù)學(xué)基礎(chǔ) 696
12.5.2 在光柵化函數(shù)中加入1/z緩存功能 702
12.5.3 實(shí)現(xiàn)完美透視修正紋理映射 707
12.5.4 實(shí)現(xiàn)線性分段透視修正紋理映射 710
12.5.5 透視修正紋理映射的二次近似 714
12.5.6 使用混合方法優(yōu)化紋理映射 718
12.6 雙線性紋理濾波 719
12.7 Mipmapping和三線性紋理濾波 724
12.7.1 傅立葉分析和走樣簡(jiǎn)介 725
12.7.2 創(chuàng)建Mip紋理鏈 727
12.7.3 選擇mip紋理 734
12.7.4 三線性濾波 739
12.8 多次渲染和紋理映射 740
12.9 使用單個(gè)函數(shù)來(lái)完成渲染工作 741
12.9.1 新的渲染場(chǎng)境 741
12.9.2 設(shè)置渲染場(chǎng)境 743
12.9.3 調(diào)用對(duì)渲染場(chǎng)境進(jìn)行渲染的函數(shù) 745
12.10 總結(jié) 753
第13章 空間劃分和可見(jiàn)性算法 754
13.1 新的游戲引擎模塊 754
13.2 空間劃分和可見(jiàn)面判定簡(jiǎn)介 754
13.3 二元空間劃分 757
13.3.1 平行于坐標(biāo)軸的二元空間劃分 758
13.3.2 任意平面空間劃分 759
13.3.3 使用多邊形所在的平面來(lái)劃分空間 760
13.3.4 顯示/訪問(wèn)BSP樹(shù)中的每個(gè)節(jié)點(diǎn) 762
13.3.5 BSP樹(shù)數(shù)據(jù)結(jié)構(gòu)和支持函數(shù) 763
13.3.6 創(chuàng)建BSP樹(shù) 765
13.3.7 分割策略 767
13.3.8 遍歷和顯示BSP樹(shù) 775
13.3.9 將BSP樹(shù)集成到圖形流水線中 784
13.3.10 BSP關(guān)卡編輯器 785
13.3.11 BSP的局限性 793
13.3.12 使用BSP樹(shù)的零重繪策略 794
13.3.13 將BSP樹(shù)用于剔除 795
13.3.14 將BSP樹(shù)用于碰撞檢測(cè) 802
13.3.15 集成BSP樹(shù)和標(biāo)準(zhǔn)渲染 802
13.4 潛在可見(jiàn)集 807
13.4.1 使用潛在可見(jiàn)集 808
13.4.2 潛在可見(jiàn)集的其他編碼方法 809
13.4.3 流行的PVS計(jì)算方法 810
13.5 入口 811
13.6 包圍體層次結(jié)構(gòu)和八叉樹(shù) 813
13.6.1 使用BHV樹(shù) 815
13.6.2 運(yùn)行性能 816
13.6.3 選擇策略 817
13.6.4 實(shí)現(xiàn)BHV 818
13.6.5 八叉樹(shù) 825
13.7 遮掩剔除 825
13.7.1 遮掩體 826
13.7.2 選擇遮掩物 826
13.7.3 混合型遮掩物選擇方法 827
13.8 總結(jié) 827
第14章 陰影和光照映射 828
14.1 新的游戲引擎模塊 828
14.2 概述 828
14.3 簡(jiǎn)化的陰影物理學(xué) 829
14.4 使用透視圖像和廣告牌來(lái)模擬陰影 832
14.4.1 編寫(xiě)支持透明功能的光柵化函數(shù) 833
14.4.2 新的庫(kù)模塊 835
14.4.3 簡(jiǎn)單陰影 837
14.4.4 縮放陰影 839
14.4.5 跟蹤光源 841
14.4.6 有關(guān)模擬陰影的最后思考 844
14.5 平面網(wǎng)格陰影映射 845
14.5.1 計(jì)算投影變換 845
14.5.2 優(yōu)化平面陰影 848
14.6 光照映射和面緩存技術(shù)簡(jiǎn)介 848
14.6.1 面緩存技術(shù) 850
14.6.2 生成光照?qǐng)D 850
14.6.3 實(shí)現(xiàn)光照映射函數(shù) 851
14.6.4 暗映射(dark mapping) 853
14.6.5 光照?qǐng)D特效 854
14.6.6 優(yōu)化光照映射代碼 854
14.7 整理思路 854
14.8 總結(jié) 854
第五部分 高級(jí)動(dòng)畫(huà)、物理建模和優(yōu)化
第15章 3D角色動(dòng)畫(huà)、運(yùn)動(dòng)和碰撞檢測(cè) 858
15.1 新的游戲引擎模塊 858
15.2 3D動(dòng)畫(huà)簡(jiǎn)介 858
15.3 Quake II .MD2文件格式 859
15.3.1 .MD2文件頭 861
15.3.2 加載Quake II .MD2文件 868
15.3.3 使用.MD2文件實(shí)現(xiàn)動(dòng)畫(huà) 874
15.3.4 .MD2演示程序 882
15.4 不基于角色的簡(jiǎn)單動(dòng)畫(huà) 883
15.4.1 旋轉(zhuǎn)運(yùn)動(dòng)和平移運(yùn)動(dòng) 883
15.4.2 復(fù)雜的參數(shù)化曲線移動(dòng) 885
15.4.3 使用腳本來(lái)實(shí)現(xiàn)運(yùn)動(dòng) 885
15.5 3D碰撞檢測(cè) 887
15.5.1 包圍球和包圍圓柱 887
15.5.2 使用數(shù)據(jù)結(jié)構(gòu)來(lái)提高碰撞檢測(cè)的速度 888
15.5.3 地形跟蹤技術(shù) 889
15.6 總結(jié) 890
第16章 優(yōu)化技術(shù) 891
16.1 優(yōu)化技術(shù)簡(jiǎn)介 891
16.2 使用Microsoft Visual C++和Intel VTune剖析代碼 892
16.2.1 使用Visual C++進(jìn)行剖析 892
16.2.2 分析剖析數(shù)據(jù) 893
16.2.3 使用VTune進(jìn)行優(yōu)化 894
16.3 使用Intel C++編譯器 899
16.3.1 下載Intel的優(yōu)化編譯器 900
16.3.2 使用Intel編譯器 900
16.3.3 使用編譯器選項(xiàng) 901
16.3.4 手工為源文件選擇編譯器 901
16.3.5 優(yōu)化策略 902
16.4 SIMD編程初步 902
16.4.1 SIMD基本體系結(jié)構(gòu) 903
16.4.2 使用SIMD 903
16.4.3 一個(gè)SIMD 3D向量類(lèi) 912
16.5 通用優(yōu)化技巧 918
16.5.1 技巧1:消除_ftol() 918
16.5.2 技巧2:設(shè)置FPU控制字 918
16.5.3 技巧3:快速將浮點(diǎn)變量設(shè)置為零 919
16.5.4 技巧4:快速計(jì)算平方根 919
16.5.5 技巧5:分段線性反正切 920
16.5.6 技巧6:指針遞增運(yùn)算 920
16.5.7 技巧7:盡可能將if語(yǔ)句放在循環(huán)外面 921
16.5.8 技巧8:支化(branching)流水線 921
16.5.9 技巧9:數(shù)據(jù)對(duì)齊 921
16.5.10 技巧10:將所有簡(jiǎn)短函數(shù)都聲明為內(nèi)聯(lián)的 922
16.5.11 參考文獻(xiàn) 922
16.6 總結(jié) 922
第六部分 附錄
附錄A 光盤(pán)內(nèi)容簡(jiǎn)介 CD: 924
附錄B 安裝DirectX和使用Visual C/C++ CD: 925
B.1 安裝DirectX CD: 925
B.2 使用Visual C/C++編譯器 CD: 925
B.3 編譯提示 CD: 926
附錄C 三角學(xué)和向量參考 CD: 927
C.1 三角學(xué) CD: 927
C.2 向量 CD: 929
C.2.1 向量長(zhǎng)度 CD: 930
C.2.2 歸一化 CD: 930
C.2.3 標(biāo)量乘法 CD: 930
C.2.4 向量加法 CD: 931
C.2.5 向量減法 CD: 931
C.2.6 點(diǎn)積 CD: 932
C.2.7 叉積 CD: 933
C.2.8 零向量 CD: 934
C.2.9 位置向量 CD: 934
C.2.10 向量的線性組合 CD: 934
附錄D C++入門(mén) CD: 935
D.1 C++是什么 CD: 935
D.2 必須掌握的C++知識(shí) CD: 937
D.3 新的類(lèi)型、關(guān)鍵字和約定 CD: 937
D.3.1 注釋符 CD: 937
D.3.2 常量 CD: 937
D.3.3 引用型變量 CD: 938
D.3.4 即時(shí)創(chuàng)建變量 CD: 938
D.4 內(nèi)存管理 CD: 939
D.5 流式輸入/輸出 CD: 939
D.6 類(lèi) CD: 941
D.6.1 新結(jié)構(gòu) CD: 941
D.6.2 一個(gè)簡(jiǎn)單的類(lèi) CD: 942
D.6.3 公有和私有 CD: 942
D.6.4 類(lèi)的成員函數(shù)(方法) CD: 943
D.6.5 構(gòu)造函數(shù)和析構(gòu)函數(shù) CD: 944
D.6.6 編寫(xiě)構(gòu)造函數(shù) CD: 945
D.6.7 編寫(xiě)析構(gòu)函數(shù) CD: 946
D.7 域運(yùn)算符 CD: 947
D.8 函數(shù)和運(yùn)算符重載 CD: 948
D.9 基本模板 CD: 950
D.10 異常處理簡(jiǎn)介 CD: 951
D.11 總結(jié) CD: 954
附錄E 游戲編程資源 CD: 955
E.1 游戲編程和新聞網(wǎng)站 CD: 955
E.2 下載站點(diǎn) CD: 955
E.3 2D/3D引擎 CD: 956
E.4 游戲編程書(shū)籍 CD: 956
E.5 微軟公司的Direct X 多媒體展示 CD: 956
E.6 新聞組 CD: 957
E.7 跟上行業(yè)的步伐 CD: 957
E.8 游戲開(kāi)發(fā)雜志 CD: 957
E.9 Quake資料 CD: 957
E.10 免費(fèi)模型和紋理 CD: 957
E.11 游戲網(wǎng)站開(kāi)發(fā)者 CD: 957
附錄F ASCII碼表 CD: 959

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)