內容簡介
   
 3D遊戲編程大師技巧(套裝共2冊)+遊戲人工智能編程案例精粹(修訂版)2本
 9787115282798 
 9787115291134
  
 3D遊戲編程大師技巧(套裝共2冊)
     - 齣版社: 人民郵電齣版社; 第1版 (2012年7月13日)
- 外文書名: 
- 叢書名: 
- 平裝: 1086頁
- 語種: 簡體中文
- 開本: 16
- ISBN: 9787115282798
- 條形碼: 9787115282798
- 商品尺寸: 23.8 x 18.8 x 4.8 cm
- 商品重量: 1.6 Kg
目錄
     (上冊)    
第一部分 3D遊戲編程簡介    
第1章 3D遊戲編程入門 2    
1.1 簡介 2    
1.2 2D/3D遊戲的元素 3    
1.2.1 初始化 4    
1.2.2 進入遊戲循環 4    
1.2.3 讀取玩傢輸入 4    
1.2.4 執行AI和遊戲邏輯 4    
1.2.5 渲染下一幀 4    
1.2.6 同步顯示 5    
1.2.7 循環 5    
1.2.8 關閉 5    
1.3 通用遊戲編程指南 7    
1.4 使用工具 11    
1.4.1 3D關卡編輯器 14    
1.4.2 使用編譯器 15    
1.5 一個3D遊戲範例:Raiders 3D 17    
1.5.1 事件循環 37    
1.5.2 核心3D遊戲邏輯 38    
1.5.3 3D投影 39    
1.5.4 星空 41    
1.5.5 激光炮和碰撞檢測 41    
1.5.6 爆炸 41    
1.5.7 玩Raiders3D 41    
1.6 總結 41    
第2章 Windows和DirectX 簡明教程 43    
2.1 Win32編程模型 43    
2.2 Windows程序的最小需求 44    
2.3 一個基本的Windows應用程序 48    
2.3.1 Windows類 49    
2.3.2 注冊Windows類 53    
2.3.3 創建窗口 53    
2.3.4 事件處理程序 55    
2.3.5 主事件循環 59    
2.3.6 構建實時事件循環 63    
2.4 DirectX和COM簡明教程 64    
2.4.1 HEL和HAL 65    
2.4.2 DirectX基本類 66    
2.5 COM簡介 67    
2.5.1 什麼是COM對象 68    
2.5.2 創建和使用DirectX COM接口 70    
2.5.3 查詢接口 70    
2.6 總結 72    
第3章 使用虛擬計算機進行3D遊戲編程 73    
3.1 虛擬計算機接口簡介 73    
3.2 建立虛擬計算機接口 75    
3.2.1 幀緩存和視頻係統 75    
3.2.2 使用顔色 78    
3.2.3 緩存交換 80    
3.2.4 完整的虛擬圖形係統 82    
3.2.5 I/O、聲音和音樂 82    
3.3 T3DLIB遊戲控製颱 83    
3.3.1 T3DLIB係統概述 83    
3.3.2 基本遊戲控製颱 83    
3.4 T3DLIB1庫 89    
3.4.1 DirectX圖形引擎體係結構 89    
3.4.2 基本常量 89    
3.4.3 工作宏 91    
3.4.4 數據類型和結構 92    
3.4.5 函數原型 95    
3.4.6 全局變量 99    
3.4.7 DirectDraw接口 100    
3.4.8 2D多邊形函數 103    
3.4.9 數學函數和錯誤函數 110    
3.4.10 位圖函數 111    
3.4.11 8位調色闆函數 115    
3.4.12 實用函數 118    
3.4.13 BOB(Blitter對象)引擎 119    
3.5 T3DLIB2 DirectX輸入係統 126    
3.6 T3DLIB3聲音和音樂庫 131    
3.6.1 頭文件 132    
3.6.2 類型 132    
3.6.3 全局變量 133    
3.6.4 DirectSound API封裝函數 133    
3.6.5 DirectMusic API封裝函數 138    
3.7 建立最終的T3D遊戲控製颱 140    
3.7.1 映射真實圖形到虛擬接口的非真實圖形 141    
3.7.2 最終的T3DLIB遊戲控製颱 143    
3.8 範例T3LIB應用程序 152    
3.8.1 窗口應用程序 152    
3.8.2 全屏應用程序 153    
3.8.3 聲音和音樂 154    
3.8.4 處理輸入 154    
3.9 總結 157     
第二部分 3D數學和變換    
第4章 三角學、嚮量、矩陣和四元數 160    
4.1 數學錶示法 160    
4.2 2D坐標係 161    
4.2.1 2D笛卡爾坐標 161    
4.2.2 2D極坐標 163    
4.3 3D坐標係 165    
4.3.1 3D笛卡爾坐標 165    
4.3.2 3D柱麵坐標 168    
4.3.3 3D球麵坐標 168    
4.4 三角學 170    
4.4.1 直角三角形 171    
4.4.2 反三角函數 172    
4.4.3 三角恒等式 173    
4.5 嚮量 173    
4.5.1 嚮量長度 174    
4.5.2 歸一化 174    
4.5.3 嚮量和標量的乘法 175    
4.5.4 嚮量加法 176    
4.5.5 嚮量減法 176    
4.5.6 點積 177    
4.5.7 叉積 179    
4.5.8 零嚮量 180    
4.5.9 位置和位移嚮量 180    
4.5.10 用綫性組閤錶示的嚮量 181    
4.6 矩陣和綫性代數 182    
4.6.1 單位矩陣 183    
4.6.2 矩陣加法 184    
4.6.3 矩陣的轉置 184    
4.6.4 矩陣乘法 184    
4.6.5 矩陣運算滿足的定律 186    
4.7 逆矩陣和方程組求解 186    
4.7.1 剋來姆法則 188    
4.7.2 使用矩陣進行變換 190    
4.7.3 齊次坐標 191    
4.7.4 應用矩陣變換 192    
4.8 基本幾何實體 198    
4.8.1 點 198    
4.8.2 直綫 199    
4.8.3 平麵 202    
4.9 使用參數化方程 206    
4.9.1 2D參數化直綫 206    
4.9.2 3D參數化直綫 208    
4.10 四元數簡介 213    
4.10.1 復數理論 213    
4.10.2 超復數 218    
4.10.3 四元數的應用 223    
4.11 總結 226    
第5章 建立數學引擎 227    
5.1 數學引擎概述 227    
5.1.1 數學引擎的文件結構 228    
5.1.2 命名規則 228    
5.1.3 錯誤處理 229    
5.1.4 關於C++的最後說明 229    
5.2 數據結構和類型 229    
5.2.1 嚮量和點 230    
5.2.2 參數化直綫 231    
5.2.3 3D平麵 232    
5.2.4 矩陣 233    
5.2.5 四元數 236    
5.2.6 角坐標係支持 237    
5.2.7 2D極坐標 237    
5.2.8 3D柱麵坐標 238    
5.2.9 3D球麵坐標 239    
5.2.10 定點數 239    
5.3 數學常量 240    
5.4 宏和內聯函數 242    
5.4.1 通用宏 246    
5.4.2 點和嚮量宏 246    
5.4.3 矩陣宏 247    
5.4.4 四元數 249    
5.4.5 定點數宏 249    
5.5 函數原型 250    
5.6 全局變量 253    
5.7 數學引擎API清單 253    
5.7.1 三角函數 254    
5.7.2 坐標係支持函數 255    
5.7.3 嚮量支持函數 258    
5.7.4 矩陣支持函數 266    
5.7.5 2D和3D參數化直綫支持函數 277    
5.7.6 3D平麵支持函數 281    
5.7.7 四元數支持函數 285    
5.7.8 定點數支持函數 293    
5.7.9 方程求解支持函數 298    
5.8 浮點單元運算初步 300    
5.8.1 FPU體係結構 301    
5.8.2 FPU堆棧 302    
5.8.3 FPU指令集 303    
5.8.4 經典指令格式 306    
5.8.5 內存指令格式 306    
5.8.6 寄存器指令格式 307    
5.8.7 寄存器彈齣指令格式 307    
5.8.8 FPU範例 307    
5.8.9 FLD範例 308    
5.8.10 FST範例 308    
5.8.11 FADD範例 310    
5.8.12 FSUB範例 312    
5.8.13 FMUL範例 313    
5.8.14 FDIV範例 314    
5.9 數學引擎使用說明 315    
遊戲控製颱 317    
5.10 關於數學優化的說明 317    
5.11 總結 317    
第6章 3D圖形學簡介 318    
6.1 3D引擎原理 318    
6.2 3D遊戲引擎的結構 319    
6.2.1 3D引擎 319    
6.2.2 遊戲引擎 320    
6.2.3 輸入係統和網絡 320    
6.2.4 動畫係統 321    
6.2.5 碰撞檢測和導航係統 324    
6.2.6 物理引擎 325    
6.2.7 人工智能係統 326    
6.2.8 3D模型和圖像數據庫 327    
6.3 3D坐標係 328    
6.3.1 模型(局部)坐標 328    
6.3.2 世界坐標 331    
6.3.3 相機坐標 334    
6.3.4 有關相機坐標的說明 341    
6.3.5 隱藏物體(麵)消除和裁剪 342    
6.3.6 透視坐標 347    
6.3.7 流水綫終點:屏幕坐標 356    
6.4 基本的3D數據結構 363    
6.4.1 錶示3D多邊形數據時需要考慮的問題 363    
6.4.2 定義多邊形 365    
6.4.3 定義物體 369    
6.4.4 錶示世界 373    
6.5 3D工具 374    
動畫數據和運動數據 375    
6.6 從外部加載數據 375    
6.6.1 PLG文件 375    
6.6.2 NFF文件 378    
6.6.3 3D Studio文件 381    
6.6.4 Caligari COB文件 387    
6.6.5 Microsoft DirectX .X文件 389    
6.6.6 3D文件格式小結 389    
6.7 基本剛性變換和動畫 389    
6.7.1 3D平移 389    
6.7.2 3D鏇轉 390    
6.7.3 3D變形 392    
6.8 再看觀察流水綫 393    
6.9 3D引擎類型 394    
6.9.1 太空引擎 394    
6.9.2 地形引擎 395    
6.9.3 FPS室內引擎 396    
6.9.4 光綫投射和體素引擎 397    
6.9.5 混閤引擎 398    
6.10 將各種功能集成到引擎中 399    
6.11 總結 399    
第7章 渲染3D綫框世界 400    
7.1 綫框引擎的總體體係結構 400    
7.1.1 數據結構和3D流水綫 401    
7.1.2 主多邊形列錶 403    
7.1.3 新的軟件模塊 406    
7.2 編寫3D文件加載器 406    
7.3 構建3D流水綫 414    
7.3.1 通用變換函數 414    
7.3.2 局部坐標到世界坐標變換 420    
7.3.3 歐拉相機模型 423    
7.3.4 UVN相機模型 426    
7.3.5 世界坐標到相機坐標變換 437    
7.3.6 物體剔除 440    
7.3.7 背麵消除 444    
7.3.8 相機坐標到透視坐標變換 446    
7.3.9 透視坐標到屏幕(視口)坐標變換 451    
7.3.10 閤並透視變換和屏幕變換 455    
7.4 渲染3D世界 457    
7.5 3D演示程序 461    
7.5.1 單個3D三角形 461    
7.5.2 3D綫框立方體 464    
7.5.3 消除瞭背麵的3D綫框立方體 466    
7.5.4 3D坦剋演示程序 467    
7.5.5 相機移動的3D坦剋演示程序 470    
7.5.6 戰區漫步演示程序 472    
7.6 總結 476     
(下冊)    
第三部分 基本3D渲染    
第8章 基本光照和實體造型 478    
8.1 計算機圖形學的基本光照模型 478    
8.1.1 顔色模型和材質 480    
8.1.2 光源類型 487    
8.2 三角形的光照計算和光柵化 493    
8.2.1 為光照做準備 497    
8.2.2 定義材質 498    
8.2.3 定義光源 502    
8.3 真實世界中的著色 507    
8.3.1 16位著色 507    
8.3.2 8位著色 507    
8.3.3 一個健壯的用於8位模式的RGB模型 508    
8.3.4 一個簡化的用於8位模式的強度模型 511    
8.3.5 固定著色 515    
8.3.6 恒定著色 517    
8.3.7 Gouraud著色概述 533    
8.3.8 Phong著色概述 535    
8.4 深度排序和畫傢算法 535    
8.5 使用新的模型格式 540    
8.5.1 分析器類 540    
8.5.2 輔助函數 543    
8.5.3 3D Studio MAX ASCII格式.ASC 546    
8.5.4 TrueSpace ASCII.COB格式 548    
8.5.5 Quake II二進製.MD2格式概述 557    
8.6 3D建模工具簡介 558    
8.7 總結 561    
第9章 插值著色技術和仿射紋理映射 562    
9.1 新T3D引擎的特性 562    
9.2 更新T3D數據結構和設計 563    
9.2.1 新的#defines 564    
9.2.2 新增的數學結構 566    
9.2.3 實用宏 567    
9.2.4 添加錶示3D網格數據的特性 568    
9.2.5 更新物體結構和渲染列錶結構 574    
9.2.6 函數清單和原型 577    
9.3 重新編寫物體加載函數 583    
9.3.1 更新.PLG/PLX加載函數 584    
9.3.2 更新3D Studio .ASC加載函數 595    
9.3.3 更新Caligari .COB加載函數 596    
9.4 迴顧多邊形的光柵化 601    
9.4.1 三角形的光柵化 601    
9.4.2 填充規則 604    
9.4.3 裁剪 606    
9.4.4 新的三角形渲染函數 607    
9.4.5 優化 612    
9.5 實現Gouraud著色處理 613    
9.5.1 沒有光照時的Gouraud著色 614    
9.5.2 對使用Gouraud Shader的多邊形執行光照計算 624    
9.6 基本采樣理論 632    
9.6.1 一維空間中的采樣 632    
9.6.2 雙綫性插值 634    
9.6.3 u和v的插值 635    
9.6.4 實現仿射紋理映射 637    
9.7 更新光照/光柵化引擎以支持紋理 640    
9.8 對8位和16位模式下優化策略的最後思考 645    
9.8.1 查找錶 645    
9.8.2 網格的頂點結閤性 646    
9.8.3 存儲計算結果 646    
9.8.4 SIMD 647    
9.9 最後的演示程序 647    
Raider 3D II 648    
9.10 總結 651    
第10章 3D裁剪 652    
10.1 裁剪簡介 652    
10.1.1 物體空間裁剪 652    
10.1.2 圖像空間裁剪 655    
10.2 裁剪算法 656    
10.2.1 有關裁剪的基本知識 657    
10.2.2 Cohen-Sutherland裁剪算法 661    
10.2.3 Cyrus-Beck/梁友棟-Barsky裁剪算法 662    
10.2.4 Weiler-Atherton裁剪算法 665    
10.2.5 深入學習裁剪算法 667    
10.3 實現視景體裁剪 667    
10.3.1 幾何流水綫和數據結構 669    
10.3.2 在引擎中加入裁剪功能 670    
10.4 地形小議 691    
10.4.1 地形生成函數 692    
10.4.2 生成地形數據 700    
10.4.3 沙地汽車演示程序 700    
10.5 總結 704    
第11章 深度緩存和可見性 705    
11.1 深度緩存和可見性簡介 705    
11.2 z緩存基礎 708    
11.2.1 z緩存存在的問題 709    
11.2.2 z緩存範例 709    
11.2.3 平麵方程法 711    
11.2.4 z坐標插值 713    
11.2.5 z緩存中的問題和1/Z緩存 714    
11.2.6 一個通過插值計算z和1/z的例子 715    
11.3 創建z緩存係統 718    
11.4 可能的z緩存優化 734    
11.4.1 使用更少的內存 734    
11.4.2 降低清空z緩存的頻率 734    
11.4.3 混閤z緩存 736    
11.5 z緩存存在的問題 736    
11.6 軟件和z緩存演示程序 736    
11.6.1 演示程序I:z緩存可視化 737    
11.6.2 演示程序II:Wave Raider 738    
11.7 總結 743     
第四部分 高級3D渲染    
第12章 高級紋理映射技術 746    
12.1 紋理映射——第二波 746    
12.2 新的光柵化函數 754    
12.2.1 最終決定使用定點數 754    
12.2.2 不使用z緩存的新光柵化函數 755    
12.2.3 支持z緩存的新光柵化函數 758    
12.3 使用Gouruad著色的紋理映射 759    
12.4 透明度和alpha混閤 765    
12.4.1 使用查找錶來進行alpha混閤 766    
12.4.2 在物體級支持alpha混閤功能 778    
12.4.3 在地形生成函數中加入alpha支持 784    
12.5 透視修正紋理映射和1/z緩存 786    
12.5.1 透視紋理映射的數學基礎 787    
12.5.2 在光柵化函數中加入1/z緩存功能 793    
12.5.3 實現完美透視修正紋理映射 799    
12.5.4 實現綫性分段透視修正紋理映射 803    
12.5.5 透視修正紋理映射的二次近似 808    
12.5.6 使用混閤方法優化紋理映射 812    
12.6 雙綫性紋理濾波 814    
12.7 mipmapping和三綫性紋理濾波 819    
12.7.1 傅立葉分析和走樣簡介 819    
12.7.2 創建mip紋理鏈 822    
12.7.3 選擇mip紋理 830    
12.7.4 三綫性濾波 836    
12.8 多次渲染和紋理映射 837    
12.9 使用單個函數來完成渲染工作 837    
12.9.1 新的渲染場境 838    
12.9.2 設置渲染場境 840    
12.9.3 調用對渲染場境進行渲染的函數 842    
12.10 總結 851    
第13章 空間劃分和可見性算法 852    
13.1 新的遊戲引擎模塊 852    
13.2 空間劃分和可見麵判定簡介 852    
13.3 二元空間劃分 856    
13.3.1 平行於坐標軸的二元空間劃分 857    
13.3.2 任意平麵空間劃分 858    
13.3.3 使用多邊形所在的平麵來劃分空間 858    
13.3.4 顯示/訪問BSP樹中的每個節點 861    
13.3.5 BSP樹數據結構和支持函數 863    
13.3.6 創建BSP樹 865    
13.3.7 分割策略 868    
13.3.8 遍曆和顯示BSP樹 876    
13.3.9 將BSP樹集成到圖形流水綫中 886    
13.3.10 BSP關卡編輯器 887    
13.3.11 BSP的局限性 897    
13.3.12 使用BSP樹的零重繪策略 897    
13.3.13 將BSP樹用於剔除 899    
13.3.14 將BSP樹用於碰撞檢測 906    
13.3.15 集成BSP樹和標準渲染 907    
13.4 潛在可見集 912    
13.4.1 使用潛在可見集 913    
13.4.2 潛在可見集的其他編碼方法 914    
13.4.3 流行的PVS計算方法 915    
13.5 入口 917    
13.6 包圍體層次結構和八叉樹 919    
13.6.1 使用BHV樹 921    
13.6.2 運行性能 922    
13.6.3 選擇策略 923    
13.6.4 實現BHV 924    
13.6.5 八叉樹 931    
13.7 遮掩剔除 932    
13.7.1 遮掩體 933    
13.7.2 選擇遮掩物 934    
13.7.3 混閤型遮掩物選擇方法 934    
13.8 總結 934    
第14章 陰影和光照映射 935    
14.1 新的遊戲引擎模塊 935    
14.2 概述 935    
14.3 簡化的陰影物理學 936    
14.4 使用透視圖像和廣告牌來模擬陰影 939    
14.4.1 編寫支持透明功能的光柵化函數 941    
14.4.2 新的庫模塊 944    
14.4.3 簡單陰影 945    
14.4.4 縮放陰影 947    
14.4.5 跟蹤光源 950    
14.4.6 有關模擬陰影的最後思考 953    
14.5 平麵網格陰影映射 954    
14.5.1 計算投影變換 954    
14.5.2 優化平麵陰影 957    
14.6 光照映射和麵緩存技術簡介 958    
14.6.1 麵緩存技術 960    
14.6.2 生成光照圖 960    
14.6.3 實現光照映射函數 961    
14.6.4 暗映射(dark mapping) 963    
14.6.5 光照圖特效 964    
14.6.6 優化光照映射代碼 964    
14.7 整理思路 965    
14.8 總結 965     
第五部分 高級動畫、物理建模和優化    
第15章 3D角色動畫、運動和碰撞檢測 968    
15.1 新的遊戲引擎模塊 968    
15.2 3D動畫簡介 968    
15.3 Quake II .MD2文件格式 969    
15.3.1 .MD2文件頭 971    
15.3.2 加載Quake II .MD2文件 979    
15.3.3 使用.MD2文件實現動畫 987    
15.3.4 .MD2演示程序 995    
15.4 不基於角色的簡單動畫 996    
15.4.1 鏇轉運動和平移運動 997    
15.4.2 復雜的參數化麯綫移動 998    
15.4.3 使用腳本來實現運動 999    
15.5 3D碰撞檢測 1001    
15.5.1 包圍球和包圍圓柱 1001    
15.5.2 使用數據結構來提高碰撞檢測的速度 1003    
15.5.3 地形跟蹤技術 1003    
15.6 總結 1004    
第16章 優化技術 1005    
16.1 優化技術簡介 1005    
16.2 使用Microsoft Visual C++和Intel VTune剖析代碼 1006    
16.2.1 使用Visual C++進行剖析 1006    
16.2.2 分析剖析數據 1008    
16.2.3 使用VTune進行優化 1009    
16.3 使用Intel C++編譯器 1015    
16.3.1 下載Intel的優化編譯器 1015    
16.3.2 使用Intel編譯器 1015    
16.3.3 使用編譯器選項 1016    
16.3.4 手工為源文件選擇編譯器 1017    
16.3.5 優化策略 1017    
16.4 SIMD編程初步 1017    
16.4.1 SIMD基本體係結構 1019    
16.4.2 使用SIMD 1019    
16.4.3 一個SIMD 3D嚮量類 1030    
16.5 通用優化技巧 1036    
16.5.1 技巧1:消除_ftol() 1036    
16.5.2 技巧2:設置FPU控製字 1036    
16.5.3 技巧3:快速將浮點變量設置為零 1037    
16.5.4 技巧4:快速計算平方根 1038    
16.5.5 技巧5:分段綫性反正切 1038    
16.5.6 技巧6:指針遞增運算 1039    
16.5.7 技巧7:盡可能將if語句放在循環外麵 1039    
16.5.8 技巧8:支化(branching)流水綫 1040    
16.5.9 技巧9:數據對齊 1040    
16.5.10 技巧10:將所有簡短函數都聲明為內聯的 1040    
16.5.11 參考文獻 1040    
16.6 總結 1040     
第六部分 附錄    
附錄A 光盤內容簡介 1042    
附錄B 安裝DirectX和使用Visual C/C++ 1044    
B.1 安裝DirectX 1044    
B.2 使用Visual C/C++編譯器 1044    
B.3 編譯提示 1045    
附錄C 三角學和嚮量參考 1047    
C.1 三角學 1047    
C.2 嚮量 1049    
C.2.1 嚮量長度 1050    
C.2.2 歸一化 1050    
C.2.3 標量乘法 1051    
C.2.4 嚮量加法 1052    
C.2.5 嚮量減法 1052    
C.2.6 點積 1053    
C.2.7 叉積 1054    
C.2.8 零嚮量 1055    
C.2.9 位置嚮量 1055    
C.2.10 嚮量的綫性組閤 1056    
附錄D C++入門 1057    
D.1 C++是什麼 1057    
D.2 必須掌握的C++知識 1059    
D.3 新的類型、關鍵字和約定 1059    
D.3.1 注釋符 1059    
D.3.2 常量 1060    
D.3.3 引用型變量 1060    
D.3.4 即時創建變量 1061    
D.4 內存管理 1062    
D.5 流式輸入/輸齣 1062    
D.6 類 1064    
D.6.1 新結構 1064    
D.6.2 一個簡單的類 1065    
D.6.3 公有和私有 1065    
D.6.4 類的成員函數(方法) 1066    
D.6.5 構造函數和析構函數 1067    
D.6.6 編寫構造函數 1068    
D.6.7 編寫析構函數 1070    
D.7 域運算符 1071    
在類外部定義成員函數 1071    
D.8 函數和運算符重載 1072    
D.9 基本模闆 1074    
D.10 異常處理簡介 1075    
異常處理的組成部分 1076    
D.11 總結 1078    
附錄E 遊戲編程資源 1079    
E.1 遊戲編程和新聞網站 1079    
E.2 下載站點 1079    
E.3 2D/3D引擎 1080    
E.4 遊戲編程書籍 1080    
E.5 微軟公司的Direct X 多媒體展示 1081    
E.6 新聞組 1081    
E.7 跟上行業的步伐 1081    
E.8 遊戲開發雜誌 1081    
E.9 Quake資料 1082    
E.10 免費模型和紋理 1082    
E.11 遊戲網站開發者 1082    
附錄F ASCII碼錶 1083       
遊戲人工智能編程案例精粹(修訂版)
     - 齣版社: 人民郵電齣版社; 第2版 (2012年9月1日)
- 外文書名: 
- 叢書名: 
- 平裝: 362頁
- 語種: 簡體中文
- 開本: 16
- ISBN: 9787115291134
- 條形碼: 9787115291134
- 商品尺寸: 23.2 x 18.4 x 2.2 cm
- 商品重量: 640 g
編輯推薦
     亞馬遜連續多年遊戲開發暢銷圖書    
遊戲開發圖書的經典之作    
AI技術在遊戲中應用的經典案例閤集    
針對實際難題提供權威的專業解決方案    
引導讀者學習使用C++變成語言設計、編程和實現遊戲人工智能的過程    
讀者可以從http://www.jblearning.com/catalog/9781556220784/下載本書的配套示例代碼。      
名人推薦
     “本書不僅是一本適閤遊戲編程初學者的入門教材,對於高級程序員或專傢也是一個不錯的選擇。本書簡潔明瞭,內容幾乎覆蓋AI方麵所有重要學科,從基礎數學和物理到圖論和Lua腳本編寫,再到為程序員創建一些極為精妙的代理行為所需的工具,等等。本書在軟件工程方麵的內容同樣也值得藉鑒。演示遊戲在代碼實例中使用瞭我們極為熟悉的設計模式。我要將此書推薦給所有遊戲程序員。這是一本很值得一讀的書,它傳播著奇思妙想!”     
——Chris Keegan 英國Climax Studios公司技術總監,《惡靈騎士》開發者之一     
“本書的問世,為許多難題提供瞭權威的專業解決方案,比如移動和朝嚮問題。Mat引導讀者為真實的遊戲構建堅實的基石。本書對於初涉AI領域的人來說是必備之選,對於經驗豐富的專傢,書中也提供瞭很多技巧。我要是在8年前就能讀到這本書就好瞭。”     
——Jeff Orkin 英國Monollth Productions公司AI架構師,《無人永生2》、《恐懼》開發者之一     
“……將許多真正有用的信息以一種讓我不感到頭昏的方式美妙地組閤在瞭一起。”     
——Gareth Lewis 英國Lionhead Studios公司項目主管,《黑與自2》開發者之一     
“本書的每一章都是由淺入深地介紹一項遊戲人工智能技術,並圍繞該技術給齣大量的代碼和文字實例。本書通俗易懂,通過將理論知識應用於自己的係統開發,或者通過擴展並理解某環境下的代碼實例,你可以加深對遊戲人工智能編程的理解。本書把每個獨立的技術點組閤在一起,形成各種各樣的完整遊戲環境。在這些環境下,你可以很好地理解一個龐大的遊戲架構下的各個互動係統之間的關係。”     
——Mike Ducker 英國Lionhead Studios公司AI架構師,《神鬼寓言》開發者之一     
“通過一些容易模仿且描述得很好的實例,Mat嚮我們展示瞭如何使用大部分隻有專業AI程序員纔會使用的技術。對於初學者來說,這正是一本很棒的導論;而如果你是經驗豐富的程序員,它同樣也是一本極佳的參考手冊。     
——Eric Martel 法國育碧遊戲公司Al程序師,《孤島驚魂》(XBox)開發者之一        
  
				 
				
				
					深度探索遊戲開發前沿:技術精粹與智能實戰  第一冊:3D遊戲編程大師技巧 (套裝)  本套叢書第一部分,3D遊戲編程大師技巧,將帶領您深入3D遊戲開發的每一個核心環節。我們精選最實用、最前沿的技術,旨在幫助您從入門到精通,掌握打造齣令人驚嘆的3D遊戲所需的關鍵技能。  核心引擎技術深度解析:     渲染管綫與圖形學基礎: 您將學習到現代3D渲染管綫的運作機製,從頂點數據到最終像素的每一個階段。我們將詳細講解光照模型(如PBR物理渲染)、著色器編程(HLSL/GLSL)、紋理映射、法綫貼圖、環境光遮蔽(AO)等核心概念,並輔以大量實例,幫助您理解並實現逼真的視覺效果。    幾何體處理與優化: 高效的幾何體處理是3D遊戲性能的關鍵。我們將深入探討模型加載、網格優化(如LOD級彆)、碰撞檢測算法(如AABB、OBB、球體包圍等)、以及布綫(Meshing)技術,確保您的遊戲能夠流暢運行,即使在復雜場景下也能保持高幀率。    動畫係統與骨骼綁定: 栩栩如生的角色動畫是遊戲沉浸感的基石。本部分將詳細講解骨骼動畫的原理、濛皮(Skinning)技術、IK(逆運動學)與FK(前嚮運動學)的應用,以及如何使用狀態機(State Machines)管理復雜的角色動畫切換。您還將學習到如何實現程序化動畫,賦予角色更強的動態生命力。    物理引擎集成與應用: 真實的遊戲物理是提升交互性和沉浸感的關鍵。我們將詳細介紹物理引擎(如PhysX、Bullet)的工作原理,包括剛體動力學、碰撞響應、關節約束、以及如何對遊戲世界施加重力、摩擦力等物理效果。通過實例,您將學會如何精細控製物理模擬,實現各種遊戲機製。    場景管理與優化: 隨著遊戲場景的復雜化,高效的場景管理至關重要。本部分將深入探討各種場景管理技術,如八叉樹(Octree)、BSP樹(Binary Space Partitioning)等,以及視錐體剔除(Frustum Culling)和遮擋剔除(Occlusion Culling)等優化策略,最大限度地減少渲染開銷。  高級編程技巧與架構設計:     麵嚮對象設計與設計模式: 良好的代碼結構是可維護和可擴展遊戲的基礎。我們將重點講解麵嚮對象編程(OOP)的思想,並引入遊戲開發中常用的設計模式,如單例模式(Singleton)、工廠模式(Factory)、觀察者模式(Observer)、狀態模式(State)等,幫助您編寫齣更加優雅、高效的代碼。    內存管理與性能調優: 內存是寶貴的資源,尤其是在大型3D遊戲中。本部分將深入探討內存分配與迴收機製,以及各種性能調優技巧,包括CPU與GPU的協同優化、數據結構的選用、算法的復雜度分析、以及如何使用性能分析工具(Profiler)定位和解決性能瓶頸。    多綫程與並發編程: 為瞭充分利用現代多核處理器的性能,多綫程編程是必不可少的。我們將講解綫程同步、互斥鎖、信號量等概念,以及如何在遊戲邏輯、AI計算、網絡通信等多個方麵實現並發處理,大幅提升遊戲響應速度和整體性能。    跨平颱開發與工具鏈: 掌握跨平颱開發技術,能夠讓您的遊戲觸達更廣泛的玩傢群體。我們將介紹主流遊戲引擎(如Unity、Unreal Engine)在不同平颱(PC、主機、移動端)的開發流程與適配技巧,並講解如何有效地利用各種開發工具鏈,提高開發效率。    網絡編程與多人遊戲架構: 構建穩定、流暢的多人遊戲是許多開發者的終極目標。本部分將詳細講解網絡通信協議(TCP/UDP)、客戶端/服務器架構、同步機製、以及常見的網絡同步問題(如延遲、丟包)的解決方案。您將學會如何設計和實現 robust 的多人遊戲網絡係統。  實戰案例與項目驅動學習:  本套叢書並非紙上談兵,而是將理論與實踐緊密結閤。每一個章節都配有精心設計的代碼示例,從簡單的功能實現,到復雜的係統集成,都力求貼近真實的遊戲開發場景。通過跟隨這些案例進行編碼實踐,您將能夠:     構建一個完整的3D場景渲染器: 從零開始,一步步實現自定義的渲染管綫,理解光照、材質、紋理如何協同工作。    實現一個基礎的物理模擬係統: 體驗碰撞檢測、剛體動力學在遊戲中的應用,讓物體具有真實的物理反應。    設計並實現一個角色動畫控製器: 賦予角色生命力,處理不同動作間的平滑過渡,以及響應玩傢的輸入。    開發一個簡單的多人聯機 demo: 學習網絡通信的基本原理,實現玩傢間的實時互動。  通過這些循序漸進的實戰項目,您將不僅僅是學習理論,更是將理論轉化為解決實際問題的能力,逐步構建起屬於自己的3D遊戲開發技術體係。  ---  第二冊:遊戲人工智能編程案例精粹 (修訂版)  在精彩的視覺效果和流暢的操作體驗之外,賦予遊戲角色智能,是提升遊戲深度與趣味性的關鍵。遊戲人工智能編程案例精粹 (修訂版) 專注於遊戲AI的實戰應用,將帶您領略如何讓遊戲中的NPC(非玩傢角色)變得聰明、有邏輯、有策略,從而為玩傢提供更具挑戰性和沉浸感的遊戲體驗。  核心AI算法與技術深度解析:     路徑查找與尋路算法: 智能的NPC需要能夠有效地在復雜的遊戲環境中穿梭。本部分將詳細講解各種經典的尋路算法,包括:        A 尋路算法: 學習其核心思想、啓發式函數的設計,以及如何通過網格(Grid)、導航網格(NavMesh)等數據結構來實現高效的路徑規劃。        Dijkstra 算法: 理解其尋找最短路徑的原理,以及在特定場景下的適用性。        其他尋路技術: 探討如局部避障(Local Avoidance)算法,解決NPC在動態環境中規避障礙物的問題,以及基於行為樹(Behavior Tree)的組閤尋路策略。    決策與行為控製: 如何讓NPC根據不同的情況做齣閤理的決策?我們將深入探討:        有限狀態機(FSM): 學習如何通過狀態和轉換來管理NPC的簡單行為,如巡邏、追逐、逃跑等。        行為樹(Behavior Trees): 掌握行為樹的強大之處,如何通過組閤節點(Sequences, Selectors, Decorators)構建齣復雜而靈活的AI邏輯,實現高度模塊化和可擴展的AI係統。        效用係統(Utility Systems): 瞭解如何為NPC的不同行為賦予“效用值”,從而在多個潛在行動中選擇最優解,實現更動態和智能的決策。        決策樹(Decision Trees): 學習如何通過一係列的問題和分支來引導NPC做齣決策,適用於需要明確邏輯判斷的場景。    感知與目標管理: NPC如何“看見”和“聽見”遊戲世界?如何設定和管理他們的目標?        感知係統: 講解如何實現NPC的視覺、聽覺等感知能力,如視野(Field of View)、聽覺範圍、以及如何處理目標鎖定、目標丟失等情況。        目標導嚮行為(Goal-Oriented Behavior): 探討如何設計NPC的長期和短期目標,以及如何讓NPC動態地調整其行為以達成目標,如覓食、守衛、執行任務等。        感知過濾與優先級: 學習如何根據重要性來過濾感知到的信息,確保NPC能夠優先響應最關鍵的威脅或機遇。    博弈論與策略AI: 在需要玩傢與AI進行智力較量的遊戲中,博弈論和策略AI是核心。        策略搜索算法: 介紹如Minimax算法及其Alpha-Beta剪枝優化,用於構建下棋、棋盤遊戲等AI的決策能力。        濛特卡洛樹搜索(MCTS): 學習這種強大的搜索算法,尤其在處理狀態空間巨大的遊戲中,如實時戰略(RTS)遊戲。        學習型AI(Machine Learning for AI): 盡管不深入講解復雜的ML算法,但會介紹其在遊戲AI中的應用,如強化學習(Reinforcement Learning)用於訓練AI玩傢,以及通過數據驅動的方式優化NPC行為。    群體AI與湧現行為: 如何讓一群NPC協同工作,産生齣乎意料的智能?        群體模擬: 講解如Boids模型(領航、聚閤、分離),用於模擬鳥群、魚群等生物的群體行為。        決策協同: 探討如何設計NPC之間的溝通機製,以及如何通過簡單的規則實現復雜的群體決策和協作。        湧現行為(Emergent Behavior): 強調如何通過精心設計的個體AI和環境互動,讓復雜的、不可預知的群體行為自然湧現。  實戰案例精粹,全麵覆蓋遊戲類型:  本部分的核心在於其豐富的實戰案例,每個案例都聚焦於一種具體的遊戲類型或AI技術應用:     動作角色扮演遊戲(ARPG)中的智能敵人: 演示如何設計具有不同攻擊模式、走位策略、以及對玩傢行為做齣響應的敵人。    策略遊戲(RTS/TBS)中的戰術AI: 講解如何構建能夠進行資源管理、單位生産、戰術部署、以及有效作戰的AI指揮官。    冒險解謎遊戲中的NPC互動: 演示如何設計具有對話邏輯、任務引導、以及對玩傢行為産生反饋的NPC。    射擊遊戲(FPS/TPS)中的AI小隊: 學習如何實現AI隊友的協同作戰,提供掩護,以及AI敵人的團隊配閤與戰術執行。    模擬經營遊戲中的智能居民/管理: 講解如何模擬居民的日常行為、需求,以及管理係統中的各種決策。    平颱跳躍遊戲中的動態障礙與敵人: 演示如何設計具有復雜巡邏路徑、攻擊模式,以及與玩傢互動産生反饋的障礙和敵人。  修訂版亮點:  本次修訂版不僅更新瞭部分過時的技術講解,更增加瞭大量新的前沿案例和更優化的算法實現。我們重點關注:     現代導航網格(NavMesh)的高級用法: 包含動態NavMesh的構建、更新,以及在復雜地形上的路徑規劃優化。    與遊戲引擎深度集成: 講解如何在Unity、Unreal Engine等主流引擎中更高效地實現和部署AI係統。    AI性能優化: 針對大規模AI係統,提供實用的性能分析和優化技巧。    AI的可調試性與可視化: 強調如何通過可視化工具來調試和理解AI的決策過程,加速開發迭代。  學以緻用,打造鮮活的遊戲世界:  通過學習本書中的案例,您將能夠:     為您的遊戲注入生命力: 讓您的NPC不再是呆闆的木偶,而是能夠思考、行動、並與玩傢産生真實互動的角色。    提升遊戲的可玩性與挑戰性: 通過設計更智能的敵人和對手,為玩傢提供更具深度和樂趣的遊戲體驗。    掌握遊戲AI的底層邏輯: 理解從簡單的尋路到復雜的策略決策,AI的實現原理。    加速您的AI開發進程: 直接應用書中提供的成熟框架和案例,快速實現高質量的遊戲AI。  無論您是遊戲開發新手,還是有經驗的開發者,遊戲人工智能編程案例精粹 (修訂版) 都將是您手中寶貴的AI開發指南,助您在創造引人入勝的遊戲世界的道路上,更進一步。