注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)圖形圖像、多媒體、網(wǎng)頁制作其他處理軟件3d游戲大師編程技巧

3d游戲大師編程技巧

3d游戲大師編程技巧

定 價:¥148.00

作 者: (美)拉莫斯(LaMothe,A) 著 ,李祥瑞,陳武 譯
出版社: 人民郵電出版社
叢編項:
標 簽: 多媒體

ISBN: 9787115282798 出版時間: 2012-07-01 包裝: 平裝
開本: ` 頁數(shù): 全2冊 字數(shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄


第三部分  基本3D渲染
第8章  基本光照和實體造型 478
8.1  計算機圖形學的基本光照模型 478
8.1.1  顏色模型和材質(zhì) 480
8.1.2  光源類型 487
8.2  三角形的光照計算和光柵化 493
8.2.1  為光照做準備 497
8.2.2  定義材質(zhì) 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  輔助函數(shù) 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  總結(jié) 561
第9章  插值著色技術(shù)和仿射紋理映射 562
9.1  新T3D引擎的特性 562
9.2  更新T3D數(shù)據(jù)結(jié)構(gòu)和設(shè)計 563
9.2.1  新的#defines 564
9.2.2  新增的數(shù)學結(jié)構(gòu) 566
9.2.3  實用宏 567
9.2.4  添加表示3D網(wǎng)格數(shù)據(jù)的特性 568
9.2.5  更新物體結(jié)構(gòu)和渲染列表結(jié)構(gòu) 574
9.2.6  函數(shù)清單和原型 577
9.3  重新編寫物體加載函數(shù) 583
9.3.1  更新.PLG/PLX加載函數(shù) 584
9.3.2  更新3D Studio .ASC加載函數(shù) 595
9.3.3  更新Caligari .COB加載函數(shù) 596
9.4  回顧多邊形的光柵化 601
9.4.1  三角形的光柵化 601
9.4.2  填充規(guī)則 604
9.4.3  裁剪 606
9.4.4  新的三角形渲染函數(shù) 607
9.4.5  優(yōu)化 612
9.5  實現(xiàn)Gouraud著色處理 613
9.5.1  沒有光照時的Gouraud著色 614
9.5.2  對使用Gouraud Shader的多邊形執(zhí)行光照計算 624
9.6  基本采樣理論 632
9.6.1  一維空間中的采樣 632
9.6.2  雙線性插值 634
9.6.3  u和v的插值 635
9.6.4  實現(xiàn)仿射紋理映射 637
9.7  更新光照/光柵化引擎以支持紋理 640
9.8  對8位和16位模式下優(yōu)化策略的最后思考 645
9.8.1  查找表 645
9.8.2  網(wǎng)格的頂點結(jié)合性 646
9.8.3  存儲計算結(jié)果 646
9.8.4  SIMD 647
9.9  最后的演示程序 647
Raider 3D II 648
9.10  總結(jié) 651
第10章  3D裁剪 652
10.1  裁剪簡介 652
10.1.1  物體空間裁剪 652
10.1.2  圖像空間裁剪 655
10.2  裁剪算法 656
10.2.1  有關(guān)裁剪的基本知識 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  實現(xiàn)視景體裁剪 667
10.3.1  幾何流水線和數(shù)據(jù)結(jié)構(gòu) 669
10.3.2  在引擎中加入裁剪功能 670
10.4  地形小議 691
10.4.1  地形生成函數(shù) 692
10.4.2  生成地形數(shù)據(jù) 700
10.4.3  沙地汽車演示程序 700
10.5  總結(jié) 704
第11章  深度緩存和可見性 705
11.1  深度緩存和可見性簡介 705
11.2  z緩存基礎(chǔ) 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  創(chuàng)建z緩存系統(tǒng) 718
11.4  可能的z緩存優(yōu)化 734
11.4.1  使用更少的內(nèi)存 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  總結(jié) 743
第四部分 高級3D渲染
第12章  高級紋理映射技術(shù) 746
12.1  紋理映射——第二波 746
12.2  新的光柵化函數(shù) 754
12.2.1  最終決定使用定點數(shù) 754
12.2.2  不使用z緩存的新光柵化函數(shù) 755
12.2.3  支持z緩存的新光柵化函數(shù) 758
12.3  使用Gouruad著色的紋理映射 759
12.4  透明度和alpha混合 765
12.4.1  使用查找表來進行alpha混合 766
12.4.2  在物體級支持alpha混合功能 778
12.4.3  在地形生成函數(shù)中加入alpha支持 784
12.5  透視修正紋理映射和1/z緩存 786
12.5.1  透視紋理映射的數(shù)學基礎(chǔ) 787
12.5.2  在光柵化函數(shù)中加入1/z緩存功能 793
12.5.3  實現(xiàn)完美透視修正紋理映射 799
12.5.4  實現(xiàn)線性分段透視修正紋理映射 803
12.5.5  透視修正紋理映射的二次近似 808
12.5.6  使用混合方法優(yōu)化紋理映射 812
12.6  雙線性紋理濾波 814
12.7  mipmapping和三線性紋理濾波 819
12.7.1  傅立葉分析和走樣簡介 819
12.7.2  創(chuàng)建mip紋理鏈 822
12.7.3  選擇mip紋理 830
12.7.4  三線性濾波 836
12.8  多次渲染和紋理映射 837
12.9  使用單個函數(shù)來完成渲染工作 837
12.9.1  新的渲染場境 838
12.9.2  設(shè)置渲染場境 840
12.9.3  調(diào)用對渲染場境進行渲染的函數(shù) 842
12.10  總結(jié) 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樹中的每個節(jié)點 861
13.3.5  BSP樹數(shù)據(jù)結(jié)構(gòu)和支持
函數(shù) 863
13.3.6  創(chuàng)建BSP樹 865
13.3.7  分割策略 868
13.3.8  遍歷和顯示BSP樹 876
13.3.9  將BSP樹集成到圖形流水線中 886
13.3.10  BSP關(guān)卡編輯器 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  包圍體層次結(jié)構(gòu)和八叉樹 919
13.6.1  使用BHV樹 921
13.6.2  運行性能 922
13.6.3  選擇策略 923
13.6.4  實現(xiàn)BHV 924
13.6.5  八叉樹 931
13.7  遮掩剔除 932
13.7.1  遮掩體 933
13.7.2  選擇遮掩物 934
13.7.3  混合型遮掩物選擇方法 934
13.8  總結(jié) 934
第14章  陰影和光照映射 935
14.1  新的游戲引擎模塊 935
14.2  概述 935
14.3  簡化的陰影物理學 936
14.4  使用透視圖像和廣告牌來模擬陰影 939
14.4.1  編寫支持透明功能的光柵化函數(shù) 941
14.4.2  新的庫模塊 944
14.4.3  簡單陰影 945
14.4.4  縮放陰影 947
14.4.5  跟蹤光源 950
14.4.6  有關(guān)模擬陰影的最后思考 953
14.5  平面網(wǎng)格陰影映射 954
14.5.1  計算投影變換 954
14.5.2  優(yōu)化平面陰影 957
14.6  光照映射和面緩存技術(shù)簡介 958
14.6.1  面緩存技術(shù) 960
14.6.2  生成光照圖 960
14.6.3  實現(xiàn)光照映射函數(shù) 961
14.6.4  暗映射(dark mapping) 963
14.6.5  光照圖特效 964
14.6.6  優(yōu)化光照映射代碼 964
14.7  整理思路 965
14.8  總結(jié) 965
第五部分 高級動畫、物理建模和優(yōu)化
第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文件實現(xiàn)動畫 987
15.3.4  .MD2演示程序 995
15.4  不基于角色的簡單動畫 996
15.4.1  旋轉(zhuǎn)運動和平移運動 997
15.4.2  復雜的參數(shù)化曲線移動 998
15.4.3  使用腳本來實現(xiàn)運動 999
15.5  3D碰撞檢測 1001
15.5.1  包圍球和包圍圓柱 1001
15.5.2  使用數(shù)據(jù)結(jié)構(gòu)來提高碰撞檢測的速度 1003
15.5.3  地形跟蹤技術(shù) 1003
15.6  總結(jié) 1004
第16章  優(yōu)化技術(shù) 1005
16.1  優(yōu)化技術(shù)簡介 1005
16.2  使用Microsoft Visual C++和Intel VTune剖析代碼 1006
16.2.1  使用Visual C++進行剖析 1006
16.2.2  分析剖析數(shù)據(jù) 1008
16.2.3  使用VTune進行優(yōu)化 1009
16.3  使用Intel C++編譯器 1015
16.3.1  下載Intel的優(yōu)化編譯器 1015
16.3.2  使用Intel編譯器 1015
16.3.3  使用編譯器選項 1016
16.3.4  手工為源文件選擇編譯器 1017
16.3.5  優(yōu)化策略 1017
16.4  SIMD編程初步 1017
16.4.1  SIMD基本體系結(jié)構(gòu) 1019
16.4.2  使用SIMD 1019
16.4.3  一個SIMD 3D向量類 1030
16.5  通用優(yōu)化技巧 1036
16.5.1  技巧1:消除_ftol() 1036
16.5.2  技巧2:設(shè)置FPU控制字 1036
16.5.3  技巧3:快速將浮點變量設(shè)置為零 1037
16.5.4  技巧4:快速計算平方根 1038
16.5.5  技巧5:分段線性反正切 1038
16.5.6  技巧6:指針遞增運算 1039
16.5.7  技巧7:盡可能將if語句放在循環(huán)外面 1039
16.5.8  技巧8:支化(branching)流水線 1040
16.5.9  技巧9:數(shù)據(jù)對齊 1040
16.5.10  技巧10:將所有簡短函數(shù)都聲明為內(nèi)聯(lián)的 1040
16.5.11  參考文獻 1040
16.6  總結(jié) 1040
第六部分 附  錄
附錄A  光盤內(nèi)容簡介 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  新的類型、關(guān)鍵字和約定 1059
D.3.1  注釋符 1059
D.3.2  常量 1060
D.3.3  引用型變量 1060
D.3.4  即時創(chuàng)建變量 1061
D.4  內(nèi)存管理 1062
D.5  流式輸入/輸出 1062
D.6  類 1064
D.6.1  新結(jié)構(gòu) 1064
D.6.2  一個簡單的類 1065
D.6.3  公有和私有 1065
D.6.4  類的成員函數(shù)(方法) 1066
D.6.5  構(gòu)造函數(shù)和析構(gòu)函數(shù) 1067
D.6.6  編寫構(gòu)造函數(shù) 1068
D.6.7  編寫析構(gòu)函數(shù) 1070
D.7  域運算符 1071
在類外部定義成員函數(shù) 1071
D.8  函數(shù)和運算符重載 1072
D.9  基本模板 1074
D.10  異常處理簡介 1075
異常處理的組成部分 1076
D.11  總結(jié) 1078
附錄E  游戲編程資源 1079
E.1  游戲編程和新聞網(wǎng)站 1079
E.2  下載站點 1079
E.3  2D/3D引擎 1080
E.4  游戲編程書籍 1080
E.5  微軟公司的Direct X 多媒體展示 1081
E.6  新聞組 1081
E.7  跟上行業(yè)的步伐 1081
E.8  游戲開發(fā)雜志 1081
E.9  Quake資料 1082
E.10  免費模型和紋理 1082
E.11  游戲網(wǎng)站開發(fā)者 1082
附錄F  ASCII碼表 1083  目    錄(上冊)
第一部分  3D游戲編程簡介
第1章  3D游戲編程入門 2
1.1  簡介 2
1.2  2D/3D游戲的元素 3
1.2.1  初始化 4
1.2.2  進入游戲循環(huán) 4
1.2.3  讀取玩家輸入 4
1.2.4  執(zhí)行AI和游戲邏輯 4
1.2.5  渲染下一幀 4
1.2.6  同步顯示 5
1.2.7  循環(huán) 5
1.2.8  關(guān)閉 5
1.3  通用游戲編程指南 7
1.4  使用工具 11
1.4.1  3D關(guān)卡編輯器 14
1.4.2  使用編譯器 15
1.5  一個3D游戲范例:Raiders 3D 17
1.5.1  事件循環(huán) 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  總結(jié) 41
第2章  Windows和DirectX 簡明教程 43
2.1  Win32編程模型 43
2.2  Windows程序的最小需求 44
2.3  一個基本的Windows應(yīng)用程序 48
2.3.1  Windows類 49
2.3.2  注冊Windows類 53
2.3.3  創(chuàng)建窗口 53
2.3.4  事件處理程序 55
2.3.5  主事件循環(huán) 59
2.3.6  構(gòu)建實時事件循環(huán) 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  創(chuàng)建和使用DirectX COM接口 70
2.5.3  查詢接口 70
2.6  總結(jié) 72
第3章  使用虛擬計算機進行3D游戲編程 73
3.1  虛擬計算機接口簡介 73
3.2  建立虛擬計算機接口 75
3.2.1  幀緩存和視頻系統(tǒng) 75
3.2.2  使用顏色 78
3.2.3  緩存交換 80
3.2.4  完整的虛擬圖形系統(tǒng) 82
3.2.5  I/O、聲音和音樂 82
3.3  T3DLIB游戲控制臺 83
3.3.1  T3DLIB系統(tǒng)概述 83
3.3.2  基本游戲控制臺 83
3.4  T3DLIB1庫 89
3.4.1  DirectX圖形引擎體系結(jié)構(gòu) 89
3.4.2  基本常量 89
3.4.3  工作宏 91
3.4.4  數(shù)據(jù)類型和結(jié)構(gòu) 92
3.4.5  函數(shù)原型 95
3.4.6  全局變量 99
3.4.7  DirectDraw接口 100
3.4.8  2D多邊形函數(shù) 103
3.4.9  數(shù)學函數(shù)和錯誤函數(shù) 110
3.4.10  位圖函數(shù) 111
3.4.11  8位調(diào)色板函數(shù) 115
3.4.12  實用函數(shù) 118
3.4.13  BOB(Blitter對象)引擎 119
3.5  T3DLIB2 DirectX輸入系統(tǒng) 126
3.6  T3DLIB3聲音和音樂庫 131
3.6.1  頭文件 132
3.6.2  類型 132
3.6.3  全局變量 133
3.6.4  DirectSound API封裝函數(shù) 133
3.6.5  DirectMusic API封裝函數(shù) 138
3.7  建立最終的T3D游戲控制臺 140
3.7.1  映射真實圖形到虛擬接口的非真實圖形 141
3.7.2  最終的T3DLIB游戲控制臺 143
3.8  范例T3LIB應(yīng)用程序 152
3.8.1  窗口應(yīng)用程序 152
3.8.2  全屏應(yīng)用程序 153
3.8.3  聲音和音樂 154
3.8.4  處理輸入 154
3.9  總結(jié) 157
第二部分  3D數(shù)學和變換
第4章  三角學、向量、矩陣和四元數(shù) 160
4.1  數(shù)學表示法 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  反三角函數(shù) 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  矩陣和線性代數(shù) 182
4.6.1  單位矩陣 183
4.6.2  矩陣加法 184
4.6.3  矩陣的轉(zhuǎn)置 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  應(yīng)用矩陣變換 192
4.8  基本幾何實體 198
4.8.1  點 198
4.8.2  直線 199
4.8.3  平面 202
4.9  使用參數(shù)化方程 206
4.9.1  2D參數(shù)化直線 206
4.9.2  3D參數(shù)化直線 208
4.10  四元數(shù)簡介 213
4.10.1  復數(shù)理論 213
4.10.2  超復數(shù) 218
4.10.3  四元數(shù)的應(yīng)用 223
4.11  總結(jié) 226
第5章  建立數(shù)學引擎 227
5.1  數(shù)學引擎概述 227
5.1.1  數(shù)學引擎的文件結(jié)構(gòu) 228
5.1.2  命名規(guī)則 228
5.1.3  錯誤處理 229
5.1.4  關(guān)于C++的最后說明 229
5.2  數(shù)據(jù)結(jié)構(gòu)和類型 229
5.2.1  向量和點 230
5.2.2  參數(shù)化直線 231
5.2.3  3D平面 232
5.2.4  矩陣 233
5.2.5  四元數(shù) 236
5.2.6  角坐標系支持 237
5.2.7  2D極坐標 237
5.2.8  3D柱面坐標 238
5.2.9  3D球面坐標 239
5.2.10  定點數(shù) 239
5.3  數(shù)學常量 240
5.4  宏和內(nèi)聯(lián)函數(shù) 242
5.4.1  通用宏 246
5.4.2  點和向量宏 246
5.4.3  矩陣宏 247
5.4.4  四元數(shù) 249
5.4.5  定點數(shù)宏 249
5.5  函數(shù)原型 250
5.6  全局變量 253
5.7  數(shù)學引擎API清單 253
5.7.1  三角函數(shù) 254
5.7.2  坐標系支持函數(shù) 255
5.7.3  向量支持函數(shù) 258
5.7.4  矩陣支持函數(shù) 266
5.7.5  2D和3D參數(shù)化直線支持函數(shù) 277
5.7.6  3D平面支持函數(shù) 281
5.7.7  四元數(shù)支持函數(shù) 285
5.7.8  定點數(shù)支持函數(shù) 293
5.7.9  方程求解支持函數(shù) 298
5.8  浮點單元運算初步 300
5.8.1  FPU體系結(jié)構(gòu) 301
5.8.2  FPU堆棧 302
5.8.3  FPU指令集 303
5.8.4  經(jīng)典指令格式 306
5.8.5  內(nèi)存指令格式 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  數(shù)學引擎使用說明 315
游戲控制臺 317
5.10  關(guān)于數(shù)學優(yōu)化的說明 317
5.11  總結(jié) 317
第6章  3D圖形學簡介 318
6.1  3D引擎原理 318
6.2  3D游戲引擎的結(jié)構(gòu) 319
6.2.1  3D引擎 319
6.2.2  游戲引擎 320
6.2.3  輸入系統(tǒng)和網(wǎng)絡(luò) 320
6.2.4  動畫系統(tǒng) 321
6.2.5  碰撞檢測和導航系統(tǒng) 324
6.2.6  物理引擎 325
6.2.7  人工智能系統(tǒng) 326
6.2.8  3D模型和圖像數(shù)據(jù)庫 327
6.3  3D坐標系 328
6.3.1  模型(局部)坐標 328
6.3.2  世界坐標 331
6.3.3  相機坐標 334
6.3.4  有關(guān)相機坐標的說明 341
6.3.5  隱藏物體(面)消除和裁剪 342
6.3.6  透視坐標 347
6.3.7  流水線終點:屏幕坐標 356
6.4  基本的3D數(shù)據(jù)結(jié)構(gòu) 363
6.4.1  表示3D多邊形數(shù)據(jù)時需要考慮的問題 363
6.4.2  定義多邊形 365
6.4.3  定義物體 369
6.4.4  表示世界 373
6.5  3D工具 374
動畫數(shù)據(jù)和運動數(shù)據(jù) 375
6.6  從外部加載數(shù)據(jù) 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文件格式小結(jié) 389
6.7  基本剛性變換和動畫 389
6.7.1  3D平移 389
6.7.2  3D旋轉(zhuǎn) 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室內(nèi)引擎 396
6.9.4  光線投射和體素引擎 397
6.9.5  混合引擎 398
6.10  將各種功能集成到引擎中 399
6.11  總結(jié) 399
第7章  渲染3D線框世界 400
7.1  線框引擎的總體體系結(jié)構(gòu) 400
7.1.1  數(shù)據(jù)結(jié)構(gòu)和3D流水線 401
7.1.2  主多邊形列表 403
7.1.3  新的軟件模塊 406
7.2  編寫3D文件加載器 406
7.3  構(gòu)建3D流水線 414
7.3.1  通用變換函數(shù) 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  戰(zhàn)區(qū)漫步演示程序 472
7.6  總結(jié) 476         

本目錄推薦

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