国产第1页_91在线亚洲_中文字幕成人_99久久久久久_五月宗合网_久久久久国产一区二区三区四区

讀書月攻略拿走直接抄!
歡迎光臨中圖網 請 | 注冊
> >>
C++游戲編程:創建3D游戲

包郵 C++游戲編程:創建3D游戲

出版社:人民郵電出版社出版時間:2018-03-01
開本: 其他 頁數: 399
中 圖 價:¥71.3(7.2折) 定價  ¥99.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

C++游戲編程:創建3D游戲 版權信息

C++游戲編程:創建3D游戲 本書特色

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

C++游戲編程:創建3D游戲 內容簡介

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

C++游戲編程:創建3D游戲 目錄

第 1章 游戲編程概述 1

1.1 設置開發環境 1

1.1.1 Microsoft Windows 1

1.1.2 Apple macOS 2

1.2 獲取本書的源代碼 2

1.3 C 標準庫以外的程序庫 2

1.4 游戲循環和Game類 3

1.4.1 關于“幀”的詳解 3

1.4.2 實現一個骨骼Game類 5

1.4.3 Main函數 8

1.4.4 基本輸入處理 9

1.5 基本的2D圖形 11

1.5.1 顏色緩沖區 12

1.5.2 雙緩沖區 13

1.5.3 實現基本的2D圖形 15

1.5.4 繪制墻壁、一個球和一支球拍 17

1.6 更新游戲 19

1.6.1 真實時間和游戲時間 19

1.6.2 根據增量時間的游戲邏輯 19

1.6.3 更新球拍的位置 21

1.6.4 更新球的位置 22

1.7 游戲項目 25

1.8 總結 25

1.9 補充閱讀材料 25

1.10 練習題 26

1.10.1 練習題1 26

1.10.2 練習題2 26

第 2章 游戲對象和2D圖形 27

2.1 游戲對象 27

2.1.1 游戲對象的類型 27

2.1.2 游戲對象模型 28

2.1.3 將游戲對象融入游戲循環中 32

2.2 精靈 34

2.2.1 加載圖像文件 34

2.2.2 繪制精靈 36

2.2.3 動畫精靈 39

2.3 滾動背景 41

2.4 游戲項目 43

2.5 總結 44

2.6 補充閱讀材料 45

2.7 練習題 45

2.7.1 練習題1 45

2.7.2 練習題2 45

2.7.3 練習題3 46

第3章 向量和基礎物理 47

3.1 向量 47

3.1.1 獲得兩點之間的向量:減法 48

3.1.2 向量縮放:標量乘法 49

3.1.3 合并兩個向量:加法 49

3.1.4 確定距離:長度 50

3.1.5 確定方向:單位向量和標準化 51

3.1.6 將角度轉換為前向向量 52

3.1.7 將前向向量轉換為角度:反正切 52

3.1.8 確定兩個向量之間的角度:點積 53

3.1.9 計算法線:叉積 54

3.2 基本運動 56

3.2.1 創建一個BasicMoveComponent類 56

3.2.2 創建一個InputComponent類 59

3.3 牛頓物理學 62

3.3.1 線性力學概述 62

3.3.2 用歐拉積分計算位置 63

3.3.3 關于可變步長的問題 63

3.4 基本碰撞檢測 64

3.4.1 圓與圓的交集 64

3.4.2 創建一個CircleComponent子類 65

3.5 游戲項目 66

3.6 總結 68

3.7 補充閱讀材料 68

3.8 練習題 68

3.8.1 練習題1 69

3.8.2 練習題2 69

3.8.3 練習題3 70

第4章 人工智能 71

4.1 狀態機行為 71

4.1.1 設計狀態機 71

4.1.2 基本狀態機的實現 72

4.1.3 以類表示的狀態 73

4.2 尋路 76

4.2.1 圖形 77

4.2.2 廣度優先搜索 78

4.2.3 heuristics函數 81

4.2.4 貪婪*佳優先搜索 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 游戲項目 98

4.5 總結 99

4.6 補充閱讀材料 100

4.7 練習題 100

4.7.1 練習題1 100

4.7.2 練習題2 101

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

5.1 初始化OpenGL 102

5.1.1 設置OpenGL窗口 102

5.1.2 OpenGL上下文和初始化GLEW 104

5.1.3 渲染幀 105

5.2 三角形基礎 105

5.2.1 為何選擇多邊形 105

5.2.2 標準化設備坐標 106

5.2.3 頂點和索引緩沖區 106

5.3 著色器 110

5.3.1 頂點著色器 111

5.3.2 片段著色器 111

5.3.3 編寫基本著色器 111

5.3.4 加載著色器 113

5.3.5 繪制三角形 117

5.4 變換基礎 119

5.4.1 對象空間 120

5.4.2 世界空間 120

5.4.3 變換為世界空間 121

5.5 矩陣與變換 124

5.5.1 矩陣乘法 124

5.5.2 使用矩陣來變換點 124

5.5.3 變換為世界空間,再現 126

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

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

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

5.6 紋理映射 135

5.6.1 加載紋理 136

5.6.2 更新頂點格式 139

5.6.3 更新著色器 140

5.6.4 Alpha混合 143

5.7 游戲項目 145

5.8 總結 145

5.9 補充閱讀材料 146

5.10 練習題 146

5.10.1 練習題1 146

5.10.2 練習題2 146

第6章 3D圖形 147

6.1 3D中的Actor變換 147

6.1.1 3D變換矩陣 147

6.1.2 歐拉角 148

6.1.3 四元數 149

6.1.4 運行中新的Actor變換 151

6.2 加載3D模型 152

6.2.1 選擇網格模型格式 153

6.2.2 更新頂點屬性 155

6.2.3 加載gpmesh文件 156

6.3 繪制3D網格 157

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

6.3.2 走出畫家算法,進入Z緩沖 161

6.3.3 BasicMesh著色器 164

6.3.4 MeshComponent類 164

6.4 光照 167

6.4.1 再訪頂點屬性 167

6.4.2 光照的類型 167

6.4.3 Phong反射模型 169

6.4.4 實現光照 171

6.5 游戲項目 175

6.6 總結 175

6.7 補充閱讀材料 176

6.8 練習題 176

6.8.1 練習題1 176

6.8.2 練習題2 177

第7章 音頻 178

7.1 引導音頻 178

7.1.1 FMOD 179

7.1.2 安裝FMOD軟件 179

7.1.3 創建一個音頻系統 180

7.1.4 儲存庫和事件 182

7.1.5 SoundEvent類 185

7.2 3D位置音頻 188

7.2.1 設置基本偵聽器 189

7.2.2 向SoundEvent類添加位置功能 191

7.2.3 創建AudioComponent類,使角色和聲音事件相關聯 192

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

7.2.5 多普勒效應 194

7.3 混合和效果 195

7.3.1 總線 196

7.3.2 快照 196

7.3.3 阻塞 197

7.4 游戲項目 198

7.5 總結 198

7.6 補充閱讀材料 199

7.7 練習題 199

7.7.1 練習題1 199

7.7.2 練習題2 199

第8章 輸入系統 200

8.1 輸入設備 200

8.1.1 輪詢 200

8.1.2 正沿和負沿 201

8.1.3 事件 203

8.1.4 基本InputSystem架構 203

8.2 鍵盤輸入 205

8.3 鼠標輸入 208

8.3.1 鼠標按鍵和鼠標位置 208

8.3.2 相對移動 210

8.3.3 鼠標滾動輪 211

8.4 控制器輸入 212

8.4.1 啟用單一控制器 212

8.4.2 按鍵 213

8.4.3 模擬搖桿和扳機 215

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

8.4.5 支持多個控制器 219

8.5 輸入映射 220

8.6 游戲項目 221

8.7 總結 222

8.8 補充閱讀材料 223

8.9 練習題 223

8.9.1 練習題1 223

8.9.2 練習題2 223

第9章 相機 224

9.1 第 一人稱相機 224

9.1.1 基本的第 一人稱移動 224

9.1.2 無俯仰角度的相機 226

9.1.3 加入俯仰角度的相機 226

9.1.4 第 一人稱模型 228

9.2 跟拍相機 229

9.2.1 基本跟拍相機 229

9.2.2 添加彈簧 231

9.3 軌道相機 233

9.4 樣條曲線相機 236

9.5 逆投影 239

9.6 游戲項目 241

9.7 總結 242

9.8 補充閱讀材料 242

9.9 練習題 242

9.9.1 練習題1 243

9.9.2 練習題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 包含點測試 252

10.2.2 包圍框測試 254

10.2.3 線段相交測試 257

10.2.4 動態對象 263

10.3 向游戲代碼添加碰撞 265

10.3.1 BoxComponent類 266

10.3.2 PhysWorld類 267

10.3.3 使用SegmentCast函數的球彈碰撞檢測 269

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

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

10.4 游戲項目 274

10.5 總結 275

10.6 補充閱讀材料 276

10.7 練習題 276

10.7.1 練習題1 276

10.7.2 練習題2 277

10.7.3 練習題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 添加十字準線 291

11.3.2 添加雷達 293

11.4 本地化 296

11.4.1 使用Unicode 297

11.4.2 添加文本映射 297

11.4.3 其他本地化問題 299

11.5 支持多個分辨率 300

11.6 游戲項目 300

11.7 總結 301

11.8 補充閱讀材料 301

11.9 練習題 302

11.9.1 練習題1 302

11.9.2 練習題2 302

11.9.3 練習題3 302

第 12章 骨骼動畫 303

12.1 骨骼動畫的基礎 303

12.1.1 骨架和姿勢 304

12.1.2 反向綁定姿勢矩陣 307

12.1.3 動畫數據 307

12.1.4 蒙皮 308

12.2 實現骨骼動畫 309

12.2.1 使用帶有骨骼蒙皮的頂點屬性進行繪制 310

12.2.2 加載骨架數據 314

12.2.3 加載動畫數據 315

12.2.4 蒙皮頂點著色器程序 319

12.2.5 更新動畫 321

12.3 游戲項目 323

12.4 總結 324

12.5 補充閱讀材料 325

12.6 練習題 325

12.6.1 練習題1 325

12.6.2 練習題2 325

第 13章 中間圖形 327

13.1 提高紋理質量 327

13.1.1 紋理采樣、再訪 328

13.1.2 紋理分級細化 330

13.1.3 各向異性過濾 331

13.2 向紋理進行渲染 332

13.2.1 創建紋理 333

13.2.2 創建一個Framebuffer對象 333

13.2.3 渲染到Framebuffer對象 335

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

13.3 延遲著色 338

13.3.1 創建G-Buffer類 339

13.3.2 寫入G緩沖區 342

13.3.3 全局光照 344

13.3.4 添加點光源 348

13.3.5 改進和問題 353

13.4 游戲項目 354

13.5 總結 354

13.6 補充閱讀材料 354

13.7 練習題 355

13.7.1 練習題1 355

13.7.2 練習題2 355

第 14章 級別文件和二進制數據 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 二進制數據 374

14.3.1 保存二進制文件 375

14.3.2 加載二進制的網格文件 377

14.4 游戲項目 379

14.5 總結 380

14.6 補充閱讀材料 381

14.7 練習題 381

14.7.1 練習題1 381

14.7.2 練習題2 382

附錄A 中級C 回顧 383

展開全部

C++游戲編程:創建3D游戲 作者簡介

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

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 国产成人麻豆tv在线观看 | 我想看一级片 | 亚洲熟妇丰满多毛xxxx | 领导边摸边吃奶边做爽在线观看 | 人人爽人人澡人人高潮 | 久久精品国产免费一区 | 国产欧美在线观看不卡 | 国产一级毛片夜一级毛片 | a4yy欧美一区二区三区 | 亚洲成人在线网站 | 精品久久一区二区三区 | 久久女人网 | 男女做爰高清免费视频黄 | 91看片淫黄大片一级在线观看 | 国产精品第一区亚洲精品 | 亚洲涩网 | 婷婷影院在线综合免费视频 | 久久久久久久久久久国产 | 丰满少妇高潮在线播放不卡 | 波多野结衣办公室双飞 | 在线免费观看韩国a视频 | 国产午夜无码片在线观看 | 欧美日韩中文字幕在线 | 久草视频资源站 | 一区二区三区影院 | 国产麻豆精品一区 | 99精品影视 | 色噜噜狠狠色综合久 | 九九热这里只有 | 国产欧美亚洲精品a | 爱福利极品盛宴 | 亚洲欧美综合精品成 | 国产欧美精品aaaaaa片 | 国产午夜精品av一区二区 | 亚洲精品一区二三区不卡 | 亚洲av网址在线观看 | 色窝窝无码一区二区三区 | 在线啊v | 清纯唯美经典一区二区 | 国产精品第一区亚洲精品 | 中文字幕精品一区二区2021年 |