3D游戲編程大師技巧

出版時間:2005-6  出版社:人民郵電出版社  作者:[美] 拉莫澤  頁數(shù):922  字?jǐn)?shù):1921000  譯者:李祥瑞,陳武  
Tag標(biāo)簽:無  

內(nèi)容概要

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

作者簡介

Andre LaMothe 有25年的計(jì)算行業(yè)從業(yè)經(jīng)驗(yàn),擁有數(shù)學(xué)、計(jì)算機(jī)科學(xué)和電子工程等學(xué)位,是20歲時就在NASA做研究工作的少數(shù)幾人之一。在30歲之前,他在硅谷的眾多公司中從事過咨詢工作,了解了公司運(yùn)作,獲得了多種領(lǐng)域的知識,如電信、虛擬現(xiàn)實(shí)、機(jī)器人技術(shù)、編譯器設(shè)計(jì)、3D引擎

書籍目錄

第一部分 3D游戲編程簡介第1章 3D游戲編程入門 21.1 簡介 21.2 2D/3D游戲的元素 31.2.1 初始化 31.2.2 進(jìn)入游戲循環(huán) 31.2.3 讀取玩家輸入 41.2.4 執(zhí)行AI和游戲邏輯 41.2.5 渲染下一幀 41.2.6 同步顯示 41.2.7 循環(huán) 41.2.8 關(guān)閉 51.3 通用游戲編程指南 71.4 使用工具 91.4.1 3D關(guān)卡編輯器 121.4.2 使用編譯器 131.5 一個3D游戲范例:Raiders 3D 151.5.1 事件循環(huán) 331.5.2 核心3D游戲邏輯 341.5.3 3D投影 351.5.4 星空 361.5.5 激光炮和碰撞檢測 371.5.6 爆炸 371.5.7 玩Raiders3D 371.6 總結(jié) 37第2章 Windows和DirectX簡明教程 382.1 Win32編程模型 382.2 Windows程序的最小需求 392.3 一個基本的Windows應(yīng)用程序 432.3.1 Windows類 432.3.2 注冊Windows類 472.3.3 創(chuàng)建窗口 472.3.4 事件處理程序 482.3.5 主事件循環(huán) 522.3.6 構(gòu)建實(shí)時事件循環(huán) 552.4 DirectX和COM簡明教程 562.4.1 HEL和HAL 572.4.2 DirectX基本類 582.5 COM簡介 592.5.1 什么是COM對象 602.5.2 創(chuàng)建和使用DirectX COM接口 612.5.3 查詢接口 622.6 總結(jié) 64第3章 使用虛擬計(jì)算機(jī)進(jìn)行3D游戲編程 653.1 虛擬計(jì)算機(jī)接口簡介 653.2 建立虛擬計(jì)算機(jī)接口 663.2.1 幀緩存和視頻系統(tǒng) 663.2.2 使用顏色 703.2.3 緩存交換 713.2.4 完整的虛擬圖形系統(tǒng) 733.2.5 I/O、聲音和音樂 733.3 T3DLIB游戲控制臺 743.3.1 T3DLIB系統(tǒng)概述 743.3.2 基本游戲控制臺 743.4 T3DLIB1庫 793.4.1 DirectX圖形引擎體系結(jié)構(gòu) 793.4.2 基本常量 793.4.3 工作宏 813.4.4 數(shù)據(jù)類型和結(jié)構(gòu) 813.4.5 函數(shù)原型 843.4.6 全局變量 883.4.7 DirectDraw接口 893.4.8 2D多邊形函數(shù) 923.4.9 數(shù)學(xué)函數(shù)和錯誤函數(shù) 973.4.10 位圖函數(shù) 993.4.11 8位調(diào)色板函數(shù) 1023.4.12 實(shí)用函數(shù) 1043.4.13 BOB(Blitter對象)引擎 1063.5 T3DLIB2 DirectX輸入系統(tǒng) 1123.6 T3DLIB3聲音和音樂庫 1163.6.1 頭文件 1173.6.2 類型 1173.6.3 全局變量 1173.6.4 DirectSound API封裝函數(shù) 1183.6.5 DirectMusic API封裝函數(shù) 1213.7 建立最終的T3D游戲控制臺 1243.7.1 映射真實(shí)圖形到虛擬接口的非真實(shí)圖形 1243.7.2 最終的T3DLIB游戲控制臺 1263.8 范例T3LIB應(yīng)用程序 1343.8.1 窗口應(yīng)用程序 1343.8.2 全屏應(yīng)用程序 1353.8.3 聲音和音樂 1363.8.4 處理輸入 1363.9 總結(jié) 139第二部分 3D數(shù)學(xué)和變換第4章 三角學(xué)、向量、矩陣和四元數(shù) 1424.1 數(shù)學(xué)表示法 1424.2 2D坐標(biāo)系 1434.2.1 2D笛卡爾坐標(biāo) 1434.2.2 2D極坐標(biāo) 1444.3 3D坐標(biāo)系 1474.3.1 3D笛卡爾坐標(biāo) 1474.3.2 3D柱面坐標(biāo) 1494.3.3 3D球面坐標(biāo) 1504.4 三角學(xué) 1514.4.1 直角三角形 1514.4.2 反三角函數(shù) 1534.4.3 三角恒等式 1534.5 向量 1544.5.1 向量長度 1554.5.2 歸一化 1554.5.3 向量和標(biāo)量的乘法 1554.5.4 向量加法 1564.5.5 向量減法 1574.5.6 點(diǎn)積 1574.5.7 叉積 1594.5.8 零向量 1604.5.9 位置和位移向量 1604.5.10 用線性組合表示的向量 1614.6 矩陣和線性代數(shù) 1614.6.1 單位矩陣 1624.6.2 矩陣加法 1634.6.3 矩陣的轉(zhuǎn)置 1634.6.4 矩陣乘法 1644.6.5 矩陣運(yùn)算滿足的定律 1654.7 逆矩陣和方程組求解 1654.7.1 克來姆法則 1674.7.2 使用矩陣進(jìn)行變換 1684.7.3 齊次坐標(biāo) 1694.7.4 應(yīng)用矩陣變換 1704.8 基本幾何實(shí)體 1764.8.1 點(diǎn) 1764.8.2 直線 1764.8.3 平面 1794.9 使用參數(shù)化方程 1824.9.1 2D參數(shù)化直線 1824.9.2 3D參數(shù)化直線 1844.10 四元數(shù)簡介 1894.10.1 復(fù)數(shù)理論 1894.10.2 超復(fù)數(shù) 1934.10.3 四元數(shù)的應(yīng)用 1974.11 總結(jié) 200第5章 建立數(shù)學(xué)引擎 2015.1 數(shù)學(xué)引擎概述 2015.1.1 數(shù)學(xué)引擎的文件結(jié)構(gòu) 2015.1.2 命名規(guī)則 2025.1.3 錯誤處理 2035.1.4 關(guān)于C++的最后說明 2035.2 數(shù)據(jù)結(jié)構(gòu)和類型 2035.2.1 向量和點(diǎn) 2035.2.2 參數(shù)化直線 2045.2.3 3D平面 2065.2.4 矩陣 2065.2.5 四元數(shù) 2095.2.6 角坐標(biāo)系支持 2105.2.7 2D極坐標(biāo) 2105.2.8 3D柱面坐標(biāo) 2115.2.9 3D球面坐標(biāo) 2115.2.10 定點(diǎn)數(shù) 2125.3 數(shù)學(xué)常量 2135.4 宏和內(nèi)聯(lián)函數(shù) 2145.4.1 通用宏 2185.4.2 點(diǎn)和向量宏 2185.4.3 矩陣宏 2195.4.4 四元數(shù) 2205.4.5 定點(diǎn)數(shù)宏 2215.5 函數(shù)原型 2215.6 全局變量 2245.7 數(shù)學(xué)引擎API清單 2255.7.1 三角函數(shù) 2255.7.2 坐標(biāo)系支持函數(shù) 2265.7.3 向量支持函數(shù) 2285.7.4 矩陣支持函數(shù) 2355.7.5 2D和3D參數(shù)化直線支持函數(shù) 2455.7.6 3D平面支持函數(shù) 2485.7.7 四元數(shù)支持函數(shù) 2525.7.8 定點(diǎn)數(shù)支持函數(shù) 2595.7.9 方程求解支持函數(shù) 2635.8 浮點(diǎn)單元運(yùn)算初步 2655.8.1 FPU體系結(jié)構(gòu) 2665.8.2 FPU堆?!?665.8.3 FPU指令集 2685.8.4 經(jīng)典指令格式 2705.8.5 內(nèi)存指令格式 2715.8.6 寄存器指令格式 2715.8.7 寄存器彈出指令格式 2715.8.8 FPU范例 2715.8.9 FLD范例 2725.8.10 FST范例 2725.8.11 FADD范例 2735.8.12 FSUB范例 2755.8.13 FMUL范例 2765.8.14 FDIV范例 2785.9 數(shù)學(xué)引擎使用說明 2795.10 關(guān)于數(shù)學(xué)優(yōu)化的說明 2805.11 總結(jié) 280第6章 3D圖形學(xué)簡介 2826.1 3D引擎原理 2826.2 3D游戲引擎的結(jié)構(gòu) 2826.2.1 3D引擎 2836.2.2 游戲引擎 2836.2.3 輸入系統(tǒng)和網(wǎng)絡(luò) 2846.2.4 動畫系統(tǒng) 2846.2.5 碰撞檢測和導(dǎo)航系統(tǒng) 2876.2.6 物理引擎 2886.2.7 人工智能系統(tǒng) 2896.2.8 3D模型和圖像數(shù)據(jù)庫 2896.3 3D坐標(biāo)系 2916.3.1 模型(局部)坐標(biāo) 2916.3.2 世界坐標(biāo) 2936.3.3 相機(jī)坐標(biāo) 2966.3.4 有關(guān)相機(jī)坐標(biāo)的說明 3026.3.5 隱藏物體(面)消除和裁剪 3036.3.6 透視坐標(biāo) 3086.3.7 流水線終點(diǎn):屏幕坐標(biāo) 3156.4 基本的3D數(shù)據(jù)結(jié)構(gòu) 3216.4.1 表示3D多邊形數(shù)據(jù)時需要考慮的問題 3226.4.2 定義多邊形 3236.4.3 定義物體 3276.4.4 表示世界 3306.5 3D工具 3316.6 從外部加載數(shù)據(jù) 3326.6.1 PLG文件 3336.6.2 NFF文件 3356.6.3 3D Studio文件 3386.6.4 Caligari COB文件 3436.6.5 Microsoft DirectX .X文件 3456.6.6 3D文件格式小結(jié) 3456.7 基本剛性變換和動畫 3456.7.1 3D平移 3456.7.2 3D旋轉(zhuǎn) 3466.7.3 3D變形 3476.8 再看觀察流水線 3486.9 3D引擎類型 3496.9.1 太空引擎 3496.9.2 地形引擎 3506.9.3 FPS室內(nèi)引擎 3516.9.4 光線投射和體素引擎 3526.9.5 混合引擎 3536.10 將各種功能集成到引擎中 3536.11 總結(jié) 353第7章 渲染3D線框世界 3547.1 線框引擎的總體體系結(jié)構(gòu) 3547.1.1 數(shù)據(jù)結(jié)構(gòu)和3D流水線 3557.1.2 主多邊形列表 3577.1.3 新的軟件模塊 3597.2 編寫3D文件加載器 3597.3 構(gòu)建3D流水線 3677.3.1 通用變換函數(shù) 3677.3.2 局部坐標(biāo)到世界坐標(biāo)變換 3727.3.3 歐拉相機(jī)模型 3757.3.4 UVN相機(jī)模型 3777.3.5 世界坐標(biāo)到相機(jī)坐標(biāo)變換 3877.3.6 物體剔除 3907.3.7 背面消除 3937.3.8 相機(jī)坐標(biāo)到透視坐標(biāo)變換 3957.3.9 透視坐標(biāo)到屏幕(視口)坐標(biāo)變換 3997.3.10 合并透視變換和屏幕變換 4037.4 渲染3D世界 4057.5 3D演示程序 4087.5.1 單個3D三角形 4087.5.2 3D線框立方體 4117.5.3 消除了背面的3D線框立方體 4137.5.4 3D坦克演示程序 4147.5.5 相機(jī)移動的3D坦克演示程序 4167.5.6 戰(zhàn)區(qū)漫步演示程序 4187.6 總結(jié) 421第三部分 基本3D渲染第8章 基本光照和實(shí)體造型 4248.1 計(jì)算機(jī)圖形學(xué)的基本光照模型 4248.1.1 顏色模型和材質(zhì) 4268.1.2 光源類型 4328.2 三角形的光照計(jì)算和光柵化 4378.2.1 為光照做準(zhǔn)備 4418.2.2 定義材質(zhì) 4428.2.3 定義光源 4458.3 真實(shí)世界中的著色 4498.3.1 16位著色 4498.3.2 8位著色 4508.3.3 一個健壯的用于8位模式的RGB模型 4508.3.4 一個簡化的用于8位模式的強(qiáng)度模型 4538.3.5 固定著色 4578.3.6 恒定著色 4598.3.7 Gouraud著色概述 4728.3.8 Phong著色概述 4748.4 深度排序和畫家算法 4758.5 使用新的模型格式 4798.5.1 分析器類 4798.5.2 輔助函數(shù) 4828.5.3 3D Studio MAX ASCII格式.ASC 4848.5.4 TrueSpace ASCII.COB格式 4868.5.5 Quake II二進(jìn)制.MD2格式概述 4948.6 3D建模工具簡介 4958.7 總結(jié) 497第9章 插值著色技術(shù)和仿射紋理映射 4989.1 新T3D引擎的特性 4989.2 更新T3D數(shù)據(jù)結(jié)構(gòu)和設(shè)計(jì) 4999.2.1 新的#defines 4999.2.2 新增的數(shù)學(xué)結(jié)構(gòu) 5019.2.3 實(shí)用宏 5029.2.4 添加表示3D網(wǎng)格數(shù)據(jù)的特性 5039.2.5 更新物體結(jié)構(gòu)和渲染列表結(jié)構(gòu) 5089.2.6 函數(shù)清單和原型 5119.3 重新編寫物體加載函數(shù) 5179.3.1 更新.PLG/PLX加載函數(shù) 5179.3.2 更新3D Studio .ASC加載函數(shù) 5279.3.3 更新Caligari .COB加載函數(shù) 5289.4 回顧多邊形的光柵化 5329.4.1 三角形的光柵化 5329.4.2 填充規(guī)則 5359.4.3 裁剪 5379.4.4 新的三角形渲染函數(shù) 5389.4.5 優(yōu)化 5429.5 實(shí)現(xiàn)Gouraud著色處理 5439.5.1 沒有光照時的Gouraud著色 5449.5.2 對使用Gouraud Shader的多邊形執(zhí)行光照計(jì)算 5539.6 基本采樣理論 5609.6.1 一維空間中的采樣 5609.6.2 雙線性插值 5619.6.3 u和v的插值 5639.6.4 實(shí)現(xiàn)仿射紋理映射 5649.7 更新光照/光柵化引擎以支持紋理 5669.8 對8位和16位模式下優(yōu)化策略的最后思考 5719.8.1 查找表 5719.8.2 網(wǎng)格的頂點(diǎn)結(jié)合性 5729.8.3 存儲計(jì)算結(jié)果 5729.8.4 SIMD 5739.9 最后的演示程序 5739.10 總結(jié) 576第10章 3D裁剪 57710.1 裁剪簡介 57710.1.1 物體空間裁剪 57710.1.2 圖像空間裁剪 58010.2 裁剪算法 58110.2.1 有關(guān)裁剪的基本知識 58110.2.2 Cohen-Sutherland裁剪算法 58510.2.3 Cyrus-Beck/梁友棟-Barsky裁剪算法 58610.2.4 Weiler-Atherton裁剪算法 58810.2.5 深入學(xué)習(xí)裁剪算法 59010.3 實(shí)現(xiàn)視景體裁剪 59110.3.1 幾何流水線和數(shù)據(jù)結(jié)構(gòu) 59210.3.2 在引擎中加入裁剪功能 59310.4 地形小議 61110.4.1 地形生成函數(shù) 61210.4.2 生成地形數(shù)據(jù) 61910.4.3 沙地汽車演示程序 61910.5 總結(jié) 623第11章 深度緩存和可見性 62411.1 深度緩存和可見性簡介 62411.2 z緩存基礎(chǔ) 62611.2.1 z緩存存在的問題 62711.2.2 z緩存范例 62711.2.3 平面方程法 63011.2.4 z坐標(biāo)插值 63111.2.5 z緩存中的問題和1/z緩存 63211.2.6 一個通過插值計(jì)算z和1/z的例子 63311.3 創(chuàng)建z緩存系統(tǒng) 63511.4 可能的z緩存優(yōu)化 64911.4.1 使用更少的內(nèi)存 64911.4.2 降低清空z緩存的頻率 65011.4.3 混合z緩存 65111.5 z緩存存在的問題 65111.6 軟件和z緩存演示程序 65211.6.1 演示程序I:z緩存可視化 65211.6.2 演示程序II:Wave Raider 65311.7 總結(jié) 658第四部分 高級3D渲染第12章 高級紋理映射技術(shù) 66012.1 紋理映射——第二波 66012.2 新的光柵化函數(shù) 66712.2.1 最終決定使用定點(diǎn)數(shù) 66712.2.2 不使用z緩存的新光柵化函數(shù) 66812.2.3 支持z緩存的新光柵化函數(shù) 67012.3 使用Gouruad著色的紋理映射 67112.4 透明度和alpha混合 67712.4.1 使用查找表來進(jìn)行alpha混合 67812.4.2 在物體級支持alpha混合功能 68812.4.3 在地形生成函數(shù)中加入    alpha支持 69412.5 透視修正紋理映射和1/z緩存 69612.5.1 透視紋理映射的數(shù)學(xué)基礎(chǔ) 69612.5.2 在光柵化函數(shù)中加入1/z緩存功能 70212.5.3 實(shí)現(xiàn)完美透視修正紋理映射 70712.5.4 實(shí)現(xiàn)線性分段透視修正紋理映射 71012.5.5 透視修正紋理映射的二次近似 71412.5.6 使用混合方法優(yōu)化紋理映射 71812.6 雙線性紋理濾波 71912.7 Mipmapping和三線性紋理濾波 72412.7.1 傅立葉分析和走樣簡介 72512.7.2 創(chuàng)建Mip紋理鏈 72712.7.3 選擇mip紋理 73412.7.4 三線性濾波 73912.8 多次渲染和紋理映射 74012.9 使用單個函數(shù)來完成渲染工作 74112.9.1 新的渲染場境 74112.9.2 設(shè)置渲染場境 74312.9.3 調(diào)用對渲染場境進(jìn)行渲染的函數(shù) 74512.10 總結(jié) 753第13章 空間劃分和可見性算法 75413.1 新的游戲引擎模塊 75413.2 空間劃分和可見面判定簡介 75413.3 二元空間劃分 75713.3.1 平行于坐標(biāo)軸的二元空間劃分 75813.3.2 任意平面空間劃分 75913.3.3 使用多邊形所在的平面來劃分空間 76013.3.4 顯示/訪問BSP樹中的每個節(jié)點(diǎn) 76213.3.5 BSP樹數(shù)據(jù)結(jié)構(gòu)和支持函數(shù) 76313.3.6 創(chuàng)建BSP樹 76513.3.7 分割策略 76713.3.8 遍歷和顯示BSP樹 77513.3.9 將BSP樹集成到圖形流水線中 78413.3.10 BSP關(guān)卡編輯器 78513.3.11 BSP的局限性 79313.3.12 使用BSP樹的零重繪策略 79413.3.13 將BSP樹用于剔除 79513.3.14 將BSP樹用于碰撞檢測 80213.3.15 集成BSP樹和標(biāo)準(zhǔn)渲染 80213.4 潛在可見集 80713.4.1 使用潛在可見集 80813.4.2 潛在可見集的其他編碼方法 80913.4.3 流行的PVS計(jì)算方法 81013.5 入口 81113.6 包圍體層次結(jié)構(gòu)和八叉樹 81313.6.1 使用BHV樹 81513.6.2 運(yùn)行性能 81613.6.3 選擇策略 81713.6.4 實(shí)現(xiàn)BHV 81813.6.5 八叉樹 82513.7 遮掩剔除 82513.7.1 遮掩體 82613.7.2 選擇遮掩物 82613.7.3 混合型遮掩物選擇方法 82713.8 總結(jié) 827第14章 陰影和光照映射 82814.1 新的游戲引擎模塊 82814.2 概述 82814.3 簡化的陰影物理學(xué) 82914.4 使用透視圖像和廣告牌來模擬陰影 83214.4.1 編寫支持透明功能的光柵化函數(shù) 83314.4.2 新的庫模塊 83514.4.3 簡單陰影 83714.4.4 縮放陰影 83914.4.5 跟蹤光源 84114.4.6 有關(guān)模擬陰影的最后思考 84414.5 平面網(wǎng)格陰影映射 84514.5.1 計(jì)算投影變換 84514.5.2 優(yōu)化平面陰影 84814.6 光照映射和面緩存技術(shù)簡介 84814.6.1 面緩存技術(shù) 85014.6.2 生成光照圖 85014.6.3 實(shí)現(xiàn)光照映射函數(shù) 85114.6.4 暗映射(dark mapping) 85314.6.5 光照圖特效 85414.6.6 優(yōu)化光照映射代碼 85414.7 整理思路 85414.8 總結(jié) 854第五部分 高級動畫、物理建模和優(yōu)化第15章 3D角色動畫、運(yùn)動和碰撞檢測 85815.1 新的游戲引擎模塊 85815.2 3D動畫簡介 85815.3 Quake II .MD2文件格式 85915.3.1 .MD2文件頭 86115.3.2 加載Quake II .MD2文件 86815.3.3 使用.MD2文件實(shí)現(xiàn)動畫 87415.3.4 .MD2演示程序 88215.4 不基于角色的簡單動畫 88315.4.1 旋轉(zhuǎn)運(yùn)動和平移運(yùn)動 88315.4.2 復(fù)雜的參數(shù)化曲線移動 88515.4.3 使用腳本來實(shí)現(xiàn)運(yùn)動 88515.5 3D碰撞檢測 88715.5.1 包圍球和包圍圓柱 88715.5.2 使用數(shù)據(jù)結(jié)構(gòu)來提高碰撞檢測的速度 88815.5.3 地形跟蹤技術(shù) 88915.6 總結(jié) 890第16章 優(yōu)化技術(shù) 89116.1 優(yōu)化技術(shù)簡介 89116.2 使用Microsoft Visual C++和Intel VTune剖析代碼 89216.2.1 使用Visual C++進(jìn)行剖析 89216.2.2 分析剖析數(shù)據(jù) 89316.2.3 使用VTune進(jìn)行優(yōu)化 89416.3 使用Intel C++編譯器 89916.3.1 下載Intel的優(yōu)化編譯器 90016.3.2 使用Intel編譯器 90016.3.3 使用編譯器選項(xiàng) 90116.3.4 手工為源文件選擇編譯器 90116.3.5 優(yōu)化策略 90216.4 SIMD編程初步 90216.4.1 SIMD基本體系結(jié)構(gòu) 90316.4.2 使用SIMD 90316.4.3 一個SIMD 3D向量類 91216.5 通用優(yōu)化技巧 91816.5.1 技巧1:消除_ftol() 91816.5.2 技巧2:設(shè)置FPU控制字 91816.5.3 技巧3:快速將浮點(diǎn)變量設(shè)置為零 91916.5.4 技巧4:快速計(jì)算平方根 91916.5.5 技巧5:分段線性反正切 92016.5.6 技巧6:指針遞增運(yùn)算 92016.5.7 技巧7:盡可能將if語句放在循環(huán)外面 92116.5.8 技巧8:支化(branching)流水線 92116.5.9 技巧9:數(shù)據(jù)對齊 92116.5.10 技巧10:將所有簡短函數(shù)都聲明為內(nèi)聯(lián)的 92216.5.11 參考文獻(xiàn) 92216.6 總結(jié) 922第六部分 附錄附錄A 光盤內(nèi)容簡介 CD: 924附錄B 安裝DirectX和使用Visual C/C++ CD: 925B.1 安裝DirectX CD: 925B.2 使用Visual C/C++編譯器 CD: 925B.3 編譯提示 CD: 926附錄C 三角學(xué)和向量參考 CD: 927C.1 三角學(xué) CD: 927C.2 向量 CD: 929C.2.1 向量長度 CD: 930C.2.2 歸一化 CD: 930C.2.3 標(biāo)量乘法 CD: 930C.2.4 向量加法 CD: 931C.2.5 向量減法 CD: 931C.2.6 點(diǎn)積 CD: 932C.2.7 叉積 CD: 933C.2.8 零向量 CD: 934C.2.9 位置向量 CD: 934C.2.10 向量的線性組合 CD: 934附錄D C++入門 CD: 935D.1 C++是什么 CD: 935D.2 必須掌握的C++知識 CD: 937D.3 新的類型、關(guān)鍵字和約定 CD: 937D.3.1 注釋符 CD: 937D.3.2 常量 CD: 937D.3.3 引用型變量 CD: 938D.3.4 即時創(chuàng)建變量 CD: 938D.4 內(nèi)存管理 CD: 939D.5 流式輸入/輸出 CD: 939D.6 類 CD: 941D.6.1 新結(jié)構(gòu) CD: 941D.6.2 一個簡單的類 CD: 942D.6.3 公有和私有 CD: 942D.6.4 類的成員函數(shù)(方法) CD: 943D.6.5 構(gòu)造函數(shù)和析構(gòu)函數(shù) CD: 944D.6.6 編寫構(gòu)造函數(shù) CD: 945D.6.7 編寫析構(gòu)函數(shù) CD: 946D.7 域運(yùn)算符 CD: 947D.8 函數(shù)和運(yùn)算符重載 CD: 948D.9 基本模板 CD: 950D.10 異常處理簡介 CD: 951D.11 總結(jié) CD: 954附錄E 游戲編程資源 CD: 955E.1 游戲編程和新聞網(wǎng)站 CD: 955E.2 下載站點(diǎn) CD: 955E.3 2D/3D引擎 CD: 956E.4 游戲編程書籍 CD: 956E.5 微軟公司的Direct X 多媒體展示 CD: 956E.6 新聞組 CD: 957E.7 跟上行業(yè)的步伐 CD: 957E.8 游戲開發(fā)雜志 CD: 957E.9 Quake資料 CD: 957E.10 免費(fèi)模型和紋理 CD: 957E.11 游戲網(wǎng)站開發(fā)者 CD: 957附錄F ASCII碼表 CD: 959

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    3D游戲編程大師技巧 PDF格式下載


用戶評論 (總計(jì)19條)

 
 

  •   這是一本好書,作者以C語言為基礎(chǔ)從最簡單的渲染原來開始分析,最后給讀者實(shí)現(xiàn)出了一套完整的可工作3D渲染引擎,這樣的圖書與那些一上來就是DX/OPENGL函數(shù)調(diào)用方法的書是有本質(zhì)區(qū)別的,建議對3D渲染引擎的實(shí)現(xiàn)有興趣的讀者可以購買此書來看一下,可以得到很多知識;此書的缺點(diǎn)在于對于書名是<3D游戲編程大師技巧>,雖然書中詳細(xì)實(shí)現(xiàn)了一個渲染引擎,但是對于3D物體的運(yùn)動等內(nèi)容極少,這是一大缺憾,希望在下一本圖書中有類似內(nèi)容;如果對2d的內(nèi)容有興趣,作者還有一本綠皮的書,也可以一起買來看一下。備注:此評論禁止轉(zhuǎn)載或用于其他用途。
  •   不用多說了,做引擎的不看都對不起自己。
  •   此書非常不錯,不過還沒有時間看此書非常不錯,不過還沒有時間看此書非常不錯,不過還沒有時間看此書非常不錯,不過還沒有時間看此書非常不錯,不過還沒有時間看此書非常不錯,不過還沒有時間看此書非常不錯,不過還沒有時間看
  •   但是非常難學(xué)的,書比較厚,要有耐心的,沒有一個完整的3D游戲代碼的例子,好遺憾!不過非常值得一看!
  •   如果沒有第一卷的幫助,要看懂這本書,還是要花些時間的。很經(jīng)典,但沒第一卷翻譯的好。
  •     幾年前讀了這本書,對于一個想要弄懂影視和游戲那些炫目的3D世界背后的原理這本書可以堪稱始祖級教材,
       首先這本書厚的出奇,肯定會嚇讀者一跳,也考驗(yàn)讀者的意志力,這可不是什么人可以隨便看看的書哦,除了興趣還是興趣才能支撐你看完這本書并讀完每一行代碼,看完后你會消除3D世界對你的神秘感,知道3D的所有物體都是用基礎(chǔ)的數(shù)學(xué)原理和代碼一行一行寫出來的,“咦,不過如此嘛”,但也非常欽佩本書的作者,把3D背后的秘密以非常簡約清晰的方式呈現(xiàn)給我們,讀這本書建議不要太功力的方式讀他,不可能讀完它就能自己寫個商業(yè)3D引擎出來,因?yàn)楝F(xiàn)在3D圖形都要用硬件GPU來實(shí)現(xiàn)了,寫個軟3D引擎只能自己玩玩而已。
       它是經(jīng)典,經(jīng)典的東西要細(xì)細(xì)品味,經(jīng)典的東西還要多讀幾遍,我讀第一遍有些不懂的地方,但不要放棄,讀到第2遍就懂了,還有能讀英文原本的更好,你可以感受到作者的真實(shí)想法,我打算有時間再讀一遍英文原版的。
  •     有想賣的Q我 124740523, 絕版了很難買啊,到處都買不到,誰有閑置的不用賣給我吧,求 OR2... T_T
  •     雖然本書介紹的是軟引擎,但是相關(guān)道理可以通用的。
      
      優(yōu)點(diǎn):簡單、知識點(diǎn)基礎(chǔ)并且較全、有源代碼
      
      雖然本書介紹的是軟引擎,但是相關(guān)道理可以通用的。
      
      優(yōu)點(diǎn):簡單、知識點(diǎn)基礎(chǔ)并且較全、有源代碼
  •     自己是做AS3的,2011年初據(jù)說Flash可以支持3D了,蛋疼,想要了解一下最基本的3D理論知識。
      
      各方搜索后得出這本書比較適合自身水平閱讀,還有大量的代碼可以參考。于是乎花了大概1個月的時間翻了一遍。感觸良多。
      首先3D引擎果然不是我們這些低智商的寫AS3的人可以寫出來的
      其次是這本書我真沒怎么看懂
      再次是我居然開始按照書里面給的思路開始寫軟3D引擎了
      這本書的魅力就是這么大,可以讓一個低水平的完全對3D沒概念的人慢慢照著書中的思路寫下去并且,it works。
      
      推薦評級
      只要是蛋疼的人對3D又有興趣的都可以看看,很有趣很有趣
  •     這本書已經(jīng)絕版很久了,在學(xué)校的圖書館里覓得.
      
      作為一個想向3D游戲發(fā)展的IT業(yè)新人,我覺得這本書十分值得一看,
      對基礎(chǔ)原理介紹還算十分詳細(xì),
      
      例如網(wǎng)上基本搜不到關(guān)于1/zbuffer在屏幕空間中呈線性的證明,
      這本書12章有兩種證法,
      
      并且對各種高級渲染技術(shù)從算法的角度給讀者解釋,書中代碼量非常多,
      第十二章有5萬行代碼(注釋也很多),
      
      綜上, 我覺得在有一定的3D數(shù)學(xué)基礎(chǔ)上看WINDOWS游戲編程大師 + 3D游戲編程大師這兩本書會讓你在這個領(lǐng)域中有一個很好的起步.
  •     André LaMothe的這本書立足于3D軟件圖形加速,說白了就是用CPU而非顯卡進(jìn)行3D圖形計(jì)算。在3D顯示加速卡出現(xiàn)以前,都是利用的軟件加速的方式開發(fā)??蓵r過境遷,目前有很多相當(dāng)成熟的圖形API集可供選擇如DirectX和OpenGL等。這樣的接口利用的是顯卡資源進(jìn)行加速,即硬件加速,這樣就繞開了很多具體問題,而交由接口來處理。對于開發(fā)來講,提高了效率;可對于學(xué)習(xí)3D實(shí)時圖形開發(fā)則理解不夠透徹。所以,這本書講的不是如何利用現(xiàn)有接口實(shí)現(xiàn),而是如何自行實(shí)現(xiàn)的方法。本書不需要有很深的3D幾何知識,通篇會逐步帶你學(xué)習(xí)。對于希望更深入學(xué)習(xí)3D圖形開發(fā)的人來說應(yīng)該好好讀一讀。
  •   上淘寶去買唄,一堆呢
  •   恩。淘寶的我買了。我想買個原裝正版的……
  •   貓糧...你書哪里買的牙????到處缺貨牙..
  •   我也想買~ ~
  •   我有中文翻譯版的 原書,沒看過 一直放箱子里面的,9.9成新,轉(zhuǎn)讓,有人要嗎?
     ?。眩眩海矗埃梗常担担担叮?br />   注明,大師技巧 買書
  •   確實(shí)是好書,推薦看英文版的
  •   我有中文翻譯版的書,沒看過,9.9成新,轉(zhuǎn)讓,有人要嗎?
    QQ:409355565
    注明,大師技巧 買書
  •   這本書不是最要用到DriectX7么?
    有沒有講其它API的書推薦一下?
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7