書馨卡幫你省薪 2024個(gè)人購書報(bào)告 2024中圖網(wǎng)年度報(bào)告
歡迎光臨中圖網(wǎng) 請 | 注冊

C++游戲編程:創(chuàng)建3D游戲

出版社:人民郵電出版社出版時(shí)間:2018-03-01
開本: 其他 頁數(shù): 399
中 圖 價(jià):¥62.4(6.3折) 定價(jià)  ¥99.0 登錄后可看到會員價(jià)
加入購物車 收藏
運(yùn)費(fèi)6元,滿39元免運(yùn)費(fèi)
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

C++游戲編程:創(chuàng)建3D游戲 版權(quán)信息

C++游戲編程:創(chuàng)建3D游戲 本書特色

本書主要介紹用C 進(jìn)行3D電子游戲編程的方法,并深入探討游戲開發(fā)人員在實(shí)際工作中所使用的相關(guān)技術(shù)和系統(tǒng)。全書分為14章和1個(gè)附錄(附錄A)。第1~5章主要介紹2D電子游戲的內(nèi)容和電子游戲編程的核心概念;第6~14章主要介紹并講解3D電子游戲編程的內(nèi)容,其中第8章的內(nèi)容既適用于2D環(huán)境下的電子游戲編程,也適用于3D環(huán)境下的電子游戲編程;附錄A涵蓋一些C 中的重要概念,包括引用、隊(duì)列、指針、動態(tài)分配等。 本書以實(shí)際游戲項(xiàng)目為主線,詳細(xì)講解了開發(fā)相應(yīng)項(xiàng)目所需的知識及開發(fā)設(shè)計(jì)過程中采用的實(shí)現(xiàn)方法。 本書適合使用C 語言進(jìn)行電子游戲開發(fā)的初級或中級開發(fā)人員閱讀,也可供使用其他語言開發(fā)游戲(或使用其他游戲開發(fā)框架開發(fā)游戲)的技術(shù)人員參考,還可作為高等院校相關(guān)專業(yè)的參考用書(本書所涵蓋內(nèi)容相當(dāng)于大學(xué)課程設(shè)置中一個(gè)半學(xué)期的教學(xué)量)。

C++游戲編程:創(chuàng)建3D游戲 內(nèi)容簡介

本書主要介紹用C++進(jìn)行3D電子游戲編程的方法,并深入探討游戲開發(fā)人員在實(shí)際工作中所使用的相關(guān)技術(shù)和系統(tǒng)。全書分為14章和1個(gè)附錄(附錄A)!5章主要介紹2D電子游戲的內(nèi)容和電子游戲編程的核心概念;第6~14章主要介紹并講解3D電子游戲編程的內(nèi)容,其中第8章的內(nèi)容既適用于2D環(huán)境下的電子游戲編程,也適用于3D環(huán)境下的電子游戲編程;附錄A涵蓋一些C++中的重要概念,包括引用、隊(duì)列、指針、動態(tài)分配等。 本書以實(shí)際游戲項(xiàng)目為主線,詳細(xì)講解了開發(fā)相應(yīng)項(xiàng)目所需的知識及開發(fā)設(shè)計(jì)過程中采用的實(shí)現(xiàn)方法。 本書適合使用C++語言進(jìn)行電子游戲開發(fā)的初級或中級開發(fā)人員閱讀,也可供使用其他語言開發(fā)游戲(或使用其他游戲開發(fā)框架開發(fā)游戲)的技術(shù)人員參考,還可作為高等院校相關(guān)專業(yè)的參考用書(本書所涵蓋內(nèi)容相當(dāng)于大學(xué)課程設(shè)置中一個(gè)半學(xué)期的教學(xué)量)。

C++游戲編程:創(chuàng)建3D游戲 目錄

第 1章 游戲編程概述 1

1.1 設(shè)置開發(fā)環(huán)境 1

1.1.1 Microsoft Windows 1

1.1.2 Apple macOS 2

1.2 獲取本書的源代碼 2

1.3 C 標(biāo)準(zhǔn)庫以外的程序庫 2

1.4 游戲循環(huán)和Game類 3

1.4.1 關(guān)于“幀”的詳解 3

1.4.2 實(shí)現(xiàn)一個(gè)骨骼Game類 5

1.4.3 Main函數(shù) 8

1.4.4 基本輸入處理 9

1.5 基本的2D圖形 11

1.5.1 顏色緩沖區(qū) 12

1.5.2 雙緩沖區(qū) 13

1.5.3 實(shí)現(xiàn)基本的2D圖形 15

1.5.4 繪制墻壁、一個(gè)球和一支球拍 17

1.6 更新游戲 19

1.6.1 真實(shí)時(shí)間和游戲時(shí)間 19

1.6.2 根據(jù)增量時(shí)間的游戲邏輯 19

1.6.3 更新球拍的位置 21

1.6.4 更新球的位置 22

1.7 游戲項(xiàng)目 25

1.8 總結(jié) 25

1.9 補(bǔ)充閱讀材料 25

1.10 練習(xí)題 26

1.10.1 練習(xí)題1 26

1.10.2 練習(xí)題2 26

第 2章 游戲?qū)ο蠛?D圖形 27

2.1 游戲?qū)ο?27

2.1.1 游戲?qū)ο蟮念愋?27

2.1.2 游戲?qū)ο竽P?28

2.1.3 將游戲?qū)ο笕谌胗螒蜓h(huán)中 32

2.2 精靈 34

2.2.1 加載圖像文件 34

2.2.2 繪制精靈 36

2.2.3 動畫精靈 39

2.3 滾動背景 41

2.4 游戲項(xiàng)目 43

2.5 總結(jié) 44

2.6 補(bǔ)充閱讀材料 45

2.7 練習(xí)題 45

2.7.1 練習(xí)題1 45

2.7.2 練習(xí)題2 45

2.7.3 練習(xí)題3 46

第3章 向量和基礎(chǔ)物理 47

3.1 向量 47

3.1.1 獲得兩點(diǎn)之間的向量:減法 48

3.1.2 向量縮放:標(biāo)量乘法 49

3.1.3 合并兩個(gè)向量:加法 49

3.1.4 確定距離:長度 50

3.1.5 確定方向:單位向量和標(biāo)準(zhǔn)化 51

3.1.6 將角度轉(zhuǎn)換為前向向量 52

3.1.7 將前向向量轉(zhuǎn)換為角度:反正切 52

3.1.8 確定兩個(gè)向量之間的角度:點(diǎn)積 53

3.1.9 計(jì)算法線:叉積 54

3.2 基本運(yùn)動 56

3.2.1 創(chuàng)建一個(gè)BasicMoveComponent類 56

3.2.2 創(chuàng)建一個(gè)InputComponent類 59

3.3 牛頓物理學(xué) 62

3.3.1 線性力學(xué)概述 62

3.3.2 用歐拉積分計(jì)算位置 63

3.3.3 關(guān)于可變步長的問題 63

3.4 基本碰撞檢測 64

3.4.1 圓與圓的交集 64

3.4.2 創(chuàng)建一個(gè)CircleComponent子類 65

3.5 游戲項(xiàng)目 66

3.6 總結(jié) 68

3.7 補(bǔ)充閱讀材料 68

3.8 練習(xí)題 68

3.8.1 練習(xí)題1 69

3.8.2 練習(xí)題2 69

3.8.3 練習(xí)題3 70

第4章 人工智能 71

4.1 狀態(tài)機(jī)行為 71

4.1.1 設(shè)計(jì)狀態(tài)機(jī) 71

4.1.2 基本狀態(tài)機(jī)的實(shí)現(xiàn) 72

4.1.3 以類表示的狀態(tài) 73

4.2 尋路 76

4.2.1 圖形 77

4.2.2 廣度優(yōu)先搜索 78

4.2.3 heuristics函數(shù) 81

4.2.4 貪婪*佳優(yōu)先搜索 83

4.2.5 A*搜索 87

4.2.6 迪杰斯特拉算法 89

4.2.7 跟隨路徑 90

4.2.8 其他圖形表示法 91

4.3 游戲樹 92

4.3.1 極大極小算法 93

4.3.2 處理不完整的游戲樹 95

4.3.3 α-β剪枝算法 96

4.4 游戲項(xiàng)目 98

4.5 總結(jié) 99

4.6 補(bǔ)充閱讀材料 100

4.7 練習(xí)題 100

4.7.1 練習(xí)題1 100

4.7.2 練習(xí)題2 101

第5章 開放圖形庫(OpenGL) 102

5.1 初始化OpenGL 102

5.1.1 設(shè)置OpenGL窗口 102

5.1.2 OpenGL上下文和初始化GLEW 104

5.1.3 渲染幀 105

5.2 三角形基礎(chǔ) 105

5.2.1 為何選擇多邊形 105

5.2.2 標(biāo)準(zhǔn)化設(shè)備坐標(biāo) 106

5.2.3 頂點(diǎn)和索引緩沖區(qū) 106

5.3 著色器 110

5.3.1 頂點(diǎn)著色器 111

5.3.2 片段著色器 111

5.3.3 編寫基本著色器 111

5.3.4 加載著色器 113

5.3.5 繪制三角形 117

5.4 變換基礎(chǔ) 119

5.4.1 對象空間 120

5.4.2 世界空間 120

5.4.3 變換為世界空間 121

5.5 矩陣與變換 124

5.5.1 矩陣乘法 124

5.5.2 使用矩陣來變換點(diǎn) 124

5.5.3 變換為世界空間,再現(xiàn) 126

5.5.4 將世界變換添加到Actor類 128

5.5.5 從世界空間變換到剪輯空間 130

5.5.6 更新著色器以使用變換矩陣 131

5.6 紋理映射 135

5.6.1 加載紋理 136

5.6.2 更新頂點(diǎn)格式 139

5.6.3 更新著色器 140

5.6.4 Alpha混合 143

5.7 游戲項(xiàng)目 145

5.8 總結(jié) 145

5.9 補(bǔ)充閱讀材料 146

5.10 練習(xí)題 146

5.10.1 練習(xí)題1 146

5.10.2 練習(xí)題2 146

第6章 3D圖形 147

6.1 3D中的Actor變換 147

6.1.1 3D變換矩陣 147

6.1.2 歐拉角 148

6.1.3 四元數(shù) 149

6.1.4 運(yùn)行中新的Actor變換 151

6.2 加載3D模型 152

6.2.1 選擇網(wǎng)格模型格式 153

6.2.2 更新頂點(diǎn)屬性 155

6.2.3 加載gpmesh文件 156

6.3 繪制3D網(wǎng)格 157

6.3.1 變換到剪輯空間,重訪 158

6.3.2 走出畫家算法,進(jìn)入Z緩沖 161

6.3.3 BasicMesh著色器 164

6.3.4 MeshComponent類 164

6.4 光照 167

6.4.1 再訪頂點(diǎn)屬性 167

6.4.2 光照的類型 167

6.4.3 Phong反射模型 169

6.4.4 實(shí)現(xiàn)光照 171

6.5 游戲項(xiàng)目 175

6.6 總結(jié) 175

6.7 補(bǔ)充閱讀材料 176

6.8 練習(xí)題 176

6.8.1 練習(xí)題1 176

6.8.2 練習(xí)題2 177

第7章 音頻 178

7.1 引導(dǎo)音頻 178

7.1.1 FMOD 179

7.1.2 安裝FMOD軟件 179

7.1.3 創(chuàng)建一個(gè)音頻系統(tǒng) 180

7.1.4 儲存庫和事件 182

7.1.5 SoundEvent類 185

7.2 3D位置音頻 188

7.2.1 設(shè)置基本偵聽器 189

7.2.2 向SoundEvent類添加位置功能 191

7.2.3 創(chuàng)建AudioComponent類,使角色和聲音事件相關(guān)聯(lián) 192

7.2.4 第三人稱游戲中的偵聽器 193

7.2.5 多普勒效應(yīng) 194

7.3 混合和效果 195

7.3.1 總線 196

7.3.2 快照 196

7.3.3 阻塞 197

7.4 游戲項(xiàng)目 198

7.5 總結(jié) 198

7.6 補(bǔ)充閱讀材料 199

7.7 練習(xí)題 199

7.7.1 練習(xí)題1 199

7.7.2 練習(xí)題2 199

第8章 輸入系統(tǒng) 200

8.1 輸入設(shè)備 200

8.1.1 輪詢 200

8.1.2 正沿和負(fù)沿 201

8.1.3 事件 203

8.1.4 基本InputSystem架構(gòu) 203

8.2 鍵盤輸入 205

8.3 鼠標(biāo)輸入 208

8.3.1 鼠標(biāo)按鍵和鼠標(biāo)位置 208

8.3.2 相對移動 210

8.3.3 鼠標(biāo)滾動輪 211

8.4 控制器輸入 212

8.4.1 啟用單一控制器 212

8.4.2 按鍵 213

8.4.3 模擬搖桿和扳機(jī) 215

8.4.4 過濾二維中的模擬搖桿 217

8.4.5 支持多個(gè)控制器 219

8.5 輸入映射 220

8.6 游戲項(xiàng)目 221

8.7 總結(jié) 222

8.8 補(bǔ)充閱讀材料 223

8.9 練習(xí)題 223

8.9.1 練習(xí)題1 223

8.9.2 練習(xí)題2 223

第9章 相機(jī) 224

9.1 第 一人稱相機(jī) 224

9.1.1 基本的第 一人稱移動 224

9.1.2 無俯仰角度的相機(jī) 226

9.1.3 加入俯仰角度的相機(jī) 226

9.1.4 第 一人稱模型 228

9.2 跟拍相機(jī) 229

9.2.1 基本跟拍相機(jī) 229

9.2.2 添加彈簧 231

9.3 軌道相機(jī) 233

9.4 樣條曲線相機(jī) 236

9.5 逆投影 239

9.6 游戲項(xiàng)目 241

9.7 總結(jié) 242

9.8 補(bǔ)充閱讀材料 242

9.9 練習(xí)題 242

9.9.1 練習(xí)題1 243

9.9.2 練習(xí)題2 243

第 10章 碰撞檢測 244

10.1 幾何(體)類型 244

10.1.1 線段 244

10.1.2 平面 247

10.1.3 包圍體 248

10.2 相交測試 252

10.2.1 包含點(diǎn)測試 252

10.2.2 包圍框測試 254

10.2.3 線段相交測試 257

10.2.4 動態(tài)對象 263

10.3 向游戲代碼添加碰撞 265

10.3.1 BoxComponent類 266

10.3.2 PhysWorld類 267

10.3.3 使用SegmentCast函數(shù)的球彈碰撞檢測 269

10.3.4 在PhysWorld類中測試BoxComponent組件間碰撞 270

10.3.5 玩家與墻壁的碰撞檢測 272

10.4 游戲項(xiàng)目 274

10.5 總結(jié) 275

10.6 補(bǔ)充閱讀材料 276

10.7 練習(xí)題 276

10.7.1 練習(xí)題1 276

10.7.2 練習(xí)題2 277

10.7.3 練習(xí)題3 277

第 11章 用戶界面 278

11.1 字體渲染 278

11.2 用戶界面屏幕 281

11.2.1 用戶界面屏幕棧 282

11.2.2 暫停菜單 284

11.2.3 按鈕 286

11.2.4 對話框 289

11.3 平視顯示器元素 291

11.3.1 添加十字準(zhǔn)線 291

11.3.2 添加雷達(dá) 293

11.4 本地化 296

11.4.1 使用Unicode 297

11.4.2 添加文本映射 297

11.4.3 其他本地化問題 299

11.5 支持多個(gè)分辨率 300

11.6 游戲項(xiàng)目 300

11.7 總結(jié) 301

11.8 補(bǔ)充閱讀材料 301

11.9 練習(xí)題 302

11.9.1 練習(xí)題1 302

11.9.2 練習(xí)題2 302

11.9.3 練習(xí)題3 302

第 12章 骨骼動畫 303

12.1 骨骼動畫的基礎(chǔ) 303

12.1.1 骨架和姿勢 304

12.1.2 反向綁定姿勢矩陣 307

12.1.3 動畫數(shù)據(jù) 307

12.1.4 蒙皮 308

12.2 實(shí)現(xiàn)骨骼動畫 309

12.2.1 使用帶有骨骼蒙皮的頂點(diǎn)屬性進(jìn)行繪制 310

12.2.2 加載骨架數(shù)據(jù) 314

12.2.3 加載動畫數(shù)據(jù) 315

12.2.4 蒙皮頂點(diǎn)著色器程序 319

12.2.5 更新動畫 321

12.3 游戲項(xiàng)目 323

12.4 總結(jié) 324

12.5 補(bǔ)充閱讀材料 325

12.6 練習(xí)題 325

12.6.1 練習(xí)題1 325

12.6.2 練習(xí)題2 325

第 13章 中間圖形 327

13.1 提高紋理質(zhì)量 327

13.1.1 紋理采樣、再訪 328

13.1.2 紋理分級細(xì)化 330

13.1.3 各向異性過濾 331

13.2 向紋理進(jìn)行渲染 332

13.2.1 創(chuàng)建紋理 333

13.2.2 創(chuàng)建一個(gè)Framebuffer對象 333

13.2.3 渲染到Framebuffer對象 335

13.2.4 在HUD中繪制后視鏡紋理 337

13.3 延遲著色 338

13.3.1 創(chuàng)建G-Buffer類 339

13.3.2 寫入G緩沖區(qū) 342

13.3.3 全局光照 344

13.3.4 添加點(diǎn)光源 348

13.3.5 改進(jìn)和問題 353

13.4 游戲項(xiàng)目 354

13.5 總結(jié) 354

13.6 補(bǔ)充閱讀材料 354

13.7 練習(xí)題 355

13.7.1 練習(xí)題1 355

13.7.2 練習(xí)題2 355

第 14章 級別文件和二進(jìn)制數(shù)據(jù) 357

14.1 級別文件加載 357

14.1.1 加載游戲的全局屬性 358

14.1.2 加載角色 362

14.1.3 加載組件 366

14.2 保存級別文件 370

14.2.1 保存級別文件的全局屬性 371

14.2.2 保存級別文件的角色和組件 372

14.3 二進(jìn)制數(shù)據(jù) 374

14.3.1 保存二進(jìn)制文件 375

14.3.2 加載二進(jìn)制的網(wǎng)格文件 377

14.4 游戲項(xiàng)目 379

14.5 總結(jié) 380

14.6 補(bǔ)充閱讀材料 381

14.7 練習(xí)題 381

14.7.1 練習(xí)題1 381

14.7.2 練習(xí)題2 382

附錄A 中級C 回顧 383

展開全部

C++游戲編程:創(chuàng)建3D游戲 作者簡介

Sanjay Madhav畢業(yè)于美國南加州大學(xué),獲得了該校的計(jì)算機(jī)科學(xué)學(xué)士學(xué)位和碩士學(xué)位,目前在南加州大學(xué)攻讀計(jì)算機(jī)科學(xué)博士學(xué)位。自2008年起,他一直在南加州大學(xué)任教,主講多門編程和電子游戲編程課程。在此之前,他曾在多個(gè)電子游戲開發(fā)公司工作。他所服務(wù)過的公司有Electronic Arts、Neversoft和Pandemic Studios,所參與開發(fā)的游戲包括《榮譽(yù)勛章之血戰(zhàn)太平洋(Medal of Honor Pacific Assault)》《托尼霍克極限滑板8(Tony Hawk’s Project 8)》《指環(huán)王:征服(Lord of the Rings: Conquest)》和《破壞者(The Saboteur)》。Sanjay還是《Game Programming Algorithms and Techniques》的作者和《Multiplayer Game Programming》的共同作者。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網(wǎng)
在線客服