-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
6/20 新書到! 5/31 新書到! 5/24 新書到! 5/18 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

C++游戲編程 創建3D游戲

( 簡體 字)
作者:[美]桑賈伊·馬達夫(Sanjay Madhav )類別:1. -> 遊戲 -> 遊戲程式
   2. -> 程式設計 -> C++ -> C++
譯者:
出版社:人民郵電出版社C++游戲編程 創建3D游戲 3dWoo書號: 52003
詢問書籍請說出此書號!

有庫存
NT售價: 495

出版日:9/1/2019
頁數:400
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115514066
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

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

第 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 繪制椈嚏B一個球和一支球拍 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 加載gpmes**件 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 玩家與椈尷爾I撞檢測 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 保存級別文件的角色和組件 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
序: