Irrlicht 3D遊戲引擎程式設計

圖書信息

Irrlicht 3D遊戲引擎程式設計

作者:許志聞

定價:59元
印次:1-1
ISBN:9787302475934
出版日期:2017.08.01
印刷日期:2017.07.17

內容簡介

Irrlicht(鬼火)引擎是一款用C++編寫的高性能3D引擎,是經典的3D遊戲引擎之一,可以套用於在C++程式中開發3D遊戲。本書以實例的形式向讀者展示Irrlicht的編程精髓,融入了3D遊戲設計的理論基礎、技巧等方面的知識。

目錄

第1章Irrlicht遊戲引擎1

1.1Irrlicht使用許可與系統要求1

1.2獲得Irrlicht引擎2

1.3在Windows下設定編譯器4

1.3.1設定編譯器的原理4

1.3.2設定動態程式庫的方法5

1.3.3其他設定方法10

1.3.4環境變數的設定方法11

1.3.5設定過程中常見的問題12

1.4重新編譯Irrlicht引擎13

1.5測試是否已經正確設定15

1.6在Linux環境中使用鬼火遊戲引擎16

1.6.1在Linux下編譯靜態庫16

1.6.2編譯HelloWorld程式並運行17

1.6.3在Linux下創建第一個項目18

1.6.4第三方編程工具Code::Blocks19

第2章編寫第一個Irrlicht程式20

2.1Irrlicht引擎的結構20

2.1.1引入命名空間20

2.1.2了解Irrlicht引擎的結構21

2.2分析簡單的代碼21

2.3簡單的擴展24

2.4類的形式26

2.5讓視窗顯示內容28

2.6比較成型的模式29

2.7讓我們的程式發生變化30

第3章圖形學基礎33

3.1計算機顯示原理33

3.1.1圖形系統的硬體33

3.1.2光柵掃描系統34

3.1.3計算機圖形標準35

3.2圖形學的數學基礎36

3.2.1向量及向量運算36

3.2.2坐標36

3.2.3基本幾何變換38

3.2.4三維空間的變換40

3.3雙快取和垂直同步42

3.4紋理43

3.5Z緩衝45

3.6攝像機46

3.7粒子系統47

第4章格線、紋理、覆蓋層50

4.1格線簡介50

4.2不同格式格線模型的區別52

4.3初識紋理54

4.4動態格線模型56

4.5覆蓋層59

4.6使用精靈表63

4.7繪製基本圖形67

第5章場景管理69

5.1場景節點和實體69

5.1.1場景節點69

5.1.2實體71

5.2場景節點類型72

5.3場景管理器74

5.4動態節點74

5.5場景的套用示例77

5.5.1場景節點的套用77

5.2.2動態節點的套用81

5.5.3自定義場景節點83

第6章攝像機87

6.1攝像機投影87

6.1.1正交投影88

6.1.2透視投影89

6.1.3兩種投影在代碼上的實現90

6.2裁剪92

6.3攝像機觀看視角的類型95

6.3.1普通攝像機95

6.3.2第一人稱射擊攝像機95

6.3.3Maya攝像機96

6.4FPS攝像機的使用示例96

第7章地形、紋理和渲染99

7.1地形場景節點類99

7.2高度圖101

7.3紋理102

7.3.1紋理簡介102

7.3.2使用紋理103

7.4渲染示例106

7.4.1渲染地形106

7.4.2紋理渲染111

7.5創建地形114

第8章光照與材質119

8.1光照模型119

8.2光源119

8.3深入光源120

8.3.1模擬環境光121

8.3.2模擬漫射光123

8.3.3燈光的衰減123

8.4光源124

8.4.1光源的類型124

8.4.2光源屬性125

8.4.3添加燈光126

8.5一些簡單的光照示例127

8.5.1用代碼實現環境光127

8.5.2用代碼實現漫射光129

8.5.3用代碼實現鏡面反射光132

8.6材質135

8.7陰影136

8.8著色137

8.8.1著色模式137

8.8.2設定著色模式138

8.9示例138

8.9.1光照和材質示例138

8.9.2顯示實時動態陰影140

第9章聲音144

9.1聲音基礎144

9.1.1聲音的生成144

9.1.2聲音的編碼存儲145

9.1.3聲音的合成146

9.2irrKlang簡介146

9.3irrKlang的使用147

9.3.1實踐HelloWorld147

9.3.2播放3D聲音檔案151

9.3.3聲音特效154

第10章粒子系統157

10.1粒子系統簡介157

10.2粒子編輯器——irrEdit158

10.2.1添加自己的粒子系統158

10.2.2設定粒子系統159

10.3粒子系統各部分的代碼實現160

10.3.1粒子結構160

10.3.2發射器161

10.3.3影響器163

10.4繪製一個粒子系統164

10.4.1編寫代碼完成一個簡單的粒子系統164

10.4.2使用代碼製作水面169

10.4.3環形粒子系統173

第11章碰撞檢測177

11.1碰撞檢測概述177

11.2幾何和數學知識178

11.2.1多邊形和多面體178

11.2.2BSP樹179

11.2.3空間四叉樹和空間八叉樹179

11.2.4Minkowski和與Minkowski差180

11.2.5包圍體181

11.3常用的碰撞檢測算法183

11.3.1距離跟蹤法183

11.3.2基於圖像空間的碰撞檢測法183

11.3.3空間分解法184

11.3.4層次包圍盒法185

11.4代碼解析185

第12章數據和檔案的處理192

12.1Irrlicht檔案系統簡介192

12.2檔案的讀取和寫入194

12.2.1寫檔案194

12.2.2普通檔案的讀寫195

12.2.3一行一行讀取和按分隔設定讀取198

12.2.4XML檔案的讀寫200

12.2.5從XML檔案中載入數據201

12.2.6向XML檔案寫入數據204

12.2.7從XML檔案中讀取特殊數據類型的數據205

12.3從檔案中讀取數據207

第13章著色器210

13.1圖形渲染管線簡介210

13.2著色器簡介211

13.2.1頂點著色器211

13.2.2片斷(像素)著色器211

13.2.3幾何著色器212

13.3使用著色器212

13.3.1安裝並使用GLSLdemo212

13.3.2在Irrlicht引擎中使用著色器214

13.4進一步了解著色器223

第14章遊戲人工智慧224

14.1什麼是智慧型224

14.2什麼是遊戲AI225

14.3AI的組成與設計226

14.3.1抉擇與推理226

14.3.2解決方案的類型226

14.3.3智慧型體的反應能力226

14.3.4系統的真實性226

14.3.5遊戲類型227

14.3.6遊戲內容227

14.3.7遊戲平台227

14.4AI的輸入處理和感知228

14.4.1感知系統228

14.4.2更新規則229

14.4.3反應時間229

14.4.4門限229

14.4.5負荷平衡229

14.4.6計算代價與預處理229

14.5OpenSteer230

第15章部署一個Irrlicht應用程式232

15.1什麼是部署232

15.2針對不同平台打包發布套用232

15.2.1在Windows平台下部署Irrlicht應用程式232

15.2.2在Linux平台下部署Irrlicht應用程式233

15.2.3在MacOSX平台下部署Irrlicht應用程式234

15.3部署原始碼236

15.3.1為什麼要部署原始碼236

15.3.2如何部署236

相關詞條

熱門詞條

聯絡我們