《Cocos2d-x 3D與VR遊戲開發實戰詳解》是2017年7月人民郵電出版社出版的圖書,作者是吳亞峰、索依娜、於復興。
基本介紹
- 中文名:Cocos2d-x 3D與VR遊戲開發實戰詳解
- 作者:吳亞峰、索依娜、於復興
- 類別:電子技術類圖書
- 出版社:人民郵電出版社
- 出版時間:2017年7月
- 頁數:395 頁
- 定價:79 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787115461247
內容簡介,圖書目錄,
內容簡介
本書共分為15章,全面講解了用Cocos2d-x引擎進行3D遊戲開發的知識和開發技巧,首先介紹3D開發中使用到的相關Cocos2d-x基礎類,包括載入模型、背面剪裁、攝像機、骨骼動畫、異步載入和自定義著色器等,接下來介紹常用的3D開發技巧,如標誌板技術、天空盒、立方圖紋理、水特效和材質系統、Cocos2d-x引擎中的地形(Terrain類)和導航格線(NavMesh類),適合模擬室外的平原、高山、丘陵等,使遊戲場景更加豐富,也講解了拾取與包圍盒、光照和陰影、3D粒子系統與拖尾效果的使用、正六邊形瓦片地圖、正六邊形地圖的路徑搜素和手機截屏等方面的知識,以及Bullet物理引擎、VR遊戲開發等知識,最後講解了綜合案例,包括益智類遊戲—指尖方塊和射擊解謎類遊戲—綠色行動,讓讀者學以致用。
本書適合Cocos2d-x初學者、遊戲開發 者、程式設計師學習,也適合作為大專院校相關專業師生學習用書以及培訓學校的教材。
圖書目錄
第 1章 初識Cocos2d-x 1
1.1 Cocos2d-x的概述 1
1.1.1 Cocos2d-x的發展史 1
1.1.2 Cocos2d-x的市場前景 2
1.2 Cocos2d-x開發環境的搭建 2
1.2.1 Android Studio以及Android SDK的下載與配置 2
1.2.2 Android NDK的下載與配置 5
1.2.3 Cocos2d-x的下載與配置 6
1.3 初識Cocos2d-x應用程式 7
1.3.1 本書案例的導入與運行 7
1.3.2 Cocos2d-x案例導入後的相關修改 9
1.3.3 創建自己的項目 9
1.4 本章小結 12
第 2章 3D開發基礎 13
2.1 與3D開發相關的基礎知識 13
2.1.1 基礎知識 13
2.1.2 載入obj格式模型的案例 18
2.1.3 背面剪裁 23
2.1.4 攝像機背景畫筆 25
2.2 骨骼動畫的使用 27
2.2.1 基礎知識 27
2.2.2 c3b檔案的生成 28
2.2.3 載入骨骼動畫的案例 29
2.2.4 骨骼動畫關鍵幀回調的使用 32
2.3 3D精靈的異步載入 35
2. 3.1 異步載入的基礎知識 35
2.3.2 3D精靈的異步載入案例 35
2.4 三種基本變換的靈活使用 39
2.4.1 背景知識 39
2.4.2 桌球案例的實現策略 40
2.4.3 案例的開發 41
2.5 3D基本動作 45
2.5.1 基礎知識 45
2.5.2 案例的開發 45
2.6 自定義著色器基礎 47
2.6.1 背景知識 47
2.6.2 Cocos2d-x中的相關方法 47
2.6.3 自定義著色器案例 48
2.7 本章小結 51
第3章 常用的3D開發技巧 52
3.1 標誌板技術的套用 52
3.1.1 基礎知識 52
3.1.2 一個簡單案例的開發 53
3.2 天空盒 57
3.2.1 基礎知識 57
3.2.2 一個簡單案例的開發 58
3.3 立方圖紋理 60
3.3.1 基礎知識 60
3.3.2 一個簡單案例的開發 60
3.4 讓遊戲更加靈動—水特效 62
3.4.1 基礎知識 63
3.4.2 一個簡單案例的開發 63
3.5 壓縮紋理的使用 69
3.6 材質系統 70
3.6.1 基礎知識 70
3.6.2 一個簡單案例的開發 71
3.7 本章小結 74
第4章 3D地形和導航格線 75
4.1 地形的基礎知識 75
4.2 地形製作相關工具 78
4.2.1 TerrainEditTool的下載 78
4.2.2 TerrainEditTool的使用 79
4.2.3 地形預烘焙貼圖製作 82
4.3 3D地形案例開發 85
4.3.1 定向光照案例 85
4.3.2 可變方向光照案例 89
4.4 導航格線的相關類 92
4.5 導航格線設計軟體 94
4.5.1 設計軟體的下載與編譯 94
4.5.2 設計軟體的使用 96
4.6 導航格線案例 98
4.7 本章小結 103
第5章 拾取與包圍盒 104
5.1 AABB包圍盒 104
5.1.1 基礎知識 104
5.1.2 一個簡單案例的開發 105
5.2 拾取 107
5.2.1 基礎知識 107
5.2.2 一個簡單案例的開發 108
5.3 AABB包圍盒的不精 確性 113
5.4 OBB包圍盒 116
5.4.1 基礎知識 116
5.4.2 一個簡單案例的開發 117
5.5 本章小結 120
第6章 光照和陰影 121
6.1 光照的使用 121
6.1.1 基礎知識 121
6.1.2 光照開發的案例 122
6.2 陰影的重要性 126
6.2.1 陰影可以幫助判斷物體在三維空間中的位置關係 126
6.2.2 陰影可以反映接收體的
形狀 127
6.2.3 陰影可以表現出一些當前視點看不見的物體的信息 127
6.2.4 通過陰影可以判斷出光源的數目、位置 128
6.3 平面陰影 128
6.3.1 案例效果與基本原理 128
6.3.2 案例的開發步驟 129
6.4 投影貼圖 133
6.5 多輪渲染 138
6.5.1 基本原理及實現策略 138
6.5.2 鏡像技術的實現 138
6.5.3 高真實感水面倒影的實現 142
6.6 本章小結 147
第7章 3D粒子系統與拖尾效果的使用 148
7.1 3D粒子系統 148
7.1.1 基礎知識 148
7.1.2 3D粒子系統編輯器Particle Universe Editor 150
7.1.3 一個簡單粒子系統的製作 151
7.1.4 3D粒子系統展示案例 155
7.2 3D拖尾效果 160
7.2.1 基礎知識 160
7.2.2 一個簡單案例的開發 161
7.3 本章小結 163
第8章 雜項 164
8.1 正六邊形瓦片地圖 164
8.1.1 基本原理及特點 164
8.1.2 正六邊形地圖的設計 165
8.1.3 格線定位案例 168
8.2 正六邊形地圖的路徑搜尋 172
8.2.1 路徑搜尋示例基本框架的
搭建 172
8.2.2 廣度優先路徑搜尋算法
BFS 178
8.2.3 廣度優先路徑搜尋算法BFS的實現 179
8.2.4 Dijkstra路徑搜尋算法 185
8.2.5 Dijkstra路徑搜尋算法的
實現 186
8.2.6 用A*思想最佳化廣度優先路徑搜尋 190
8.2.7 用A*思想最佳化Dijkstra路徑搜尋 192
8.3 手機截屏 193
8.3.1 基礎知識 194
8.3.2 案例開發 194
8.4 本章小結 196
第9章 初識3D物理引擎Bullet 197
9.1 常用類的介紹 197
9.1.1 Vec3類—三維向量類 197
9.1.2 Mat4類—矩陣類 198
9.1.3 Physics3D類—
3D物理類 199
9.1.4 PhysicsSprite3D類—
3D物理精靈類 200
9.1.5 Physics3DRigidBody類—剛體類 201
9.1.6 Physics3DWorld類—
物理世界類 202
9.1.7 Physics3DShape類—
碰撞形狀類 203
9.2 箱子撞擊案例 204
9.2.1 案例運行效果 204
9.2.2 案例的基本框架結構 204
9.2.3 場景管理類—SceneManager類 205
9.2.4 信息布景類—
My2DLayer類 206
9.2.5 物理世界布景類—My3DLayer類 207
9.3 物體下落案例 212
9.3.1 案例運行效果 212
9.3.2 物體下落布景類—My3DLayer類 212
9.4 旋轉的陀螺 214
9.4.1 案例運行效果 214
9.4.2 旋轉的陀螺布景類—My3DLayer類 215
9.5 消失的木塊 217
9.5.1 案例運行效果 217
9.5.2 消失的木塊布景類—My3DLayer類 217
9.6 物體碰撞下落 219
9.6.1 案例運行效果 219
9.6.2 自定義物理世界類—MPhysicsWorld類 220
9.6.3 物體碰撞下落布景類—My3DLayer類 222
9.7 三角形格線形狀的介紹 223
9.7.1 三角形索引數組類—btTriangleIndexVertex
Array類 223
9.7.2 層次包圍結構三角形格線形狀類—btBvhTriangleMesh
Shape類 224
9.7.3 層次包圍結構三角形格線
形狀類的案例—波動的
水紋 225
9.8 固定三角形格線形狀類的介紹 229
9.8.1 固定三角形格線形狀類—btGImpactMeshShape類 229
9.8.2 固定形狀物體案例 230
9.9 本章小結 232
第 10章 3D物理引擎Bullet—關節 233
10.1 初識3D關節 233
10.2 鉸鏈關節 233
10.2.1 基礎知識 233
10.2.2 案例開發 235
10.3 齒輪關節 237
10.3.1 基礎知識 237
10.3.2 案例開發 237
10.4 點對點關節 240
10.4.1 基礎知識 240
10.4.2 案例開發 240
10.5 滑動關節 242
10.5.1 基礎知識 242
10.5.2 案例開發 243
10.6 六自由度關節 245
10.6.1 基礎知識 245
10.6.2 案例開發 246
10.7 本章小結 250
第 11章 3D物理引擎Bullet—
交通工具 251
11.1 交通工具類—
btRaycastVehicle類 251
11.2 交通工具的案例—
移動的小車 253
11.3 本章小結 258
第 12章 3D物理引擎Bullet—
軟體及光線投射 259
12.1 初識3D軟體 259
12.2 軟布 259
12.2.1 案例運行效果 260
12.2.2 軟布布景類—
My3DLayer類 260
12.2.3 軟布開發中需要注意的
問題 262
12.3 三角形格線軟體案例 263
12.3.1 案例運行效果 263
12.3.2 三角形格線軟體類—MyCustomSprite3D類 263
12.3.3 三角形格線軟體布景類—My3DLayer類 265
12.4 繩索軟體 265
12.4.1 案例運行效果 265
12.4.2 案例開發過程 266
12.5 光線投射 267
12.5.1 光線投射回調結構體Closest RayResultCallback 268
12.5.2 光線投射的案例—
旋轉光線 268
12.6 本章小結 270
第 13章 VR遊戲開發 271
13.1 背景知識 271
13.1.1 發展歷史 271
13.1.2 基本特徵 273
13.1.3 關鍵技術 274
13.2 Cocos2d-x開發VR環境搭建 276
13.3 Cocos2d-x開發VR遊戲前的
準備 279
13.4 Cardboard平台VR遊戲的開發 280
13.4.1 背景知識 280
13.4.2 基礎知識 281
13.4.3 VR場景漫遊案例的準備
工作 282
13.4.4 VR場景漫遊案例的開發 283
13.5 GearVR平台VR遊戲的開發 286
13.5.1 背景知識 286
13.5.2 Oculus Home 287
13.5.3 基礎知識 288
13.5.4 VR場景射擊案例的準備
工作 288
13.5.5 VR場景射擊案例的開發 290
13.6 本章小結 297
第 14章 益智類遊戲—指尖方塊 298
14.1 遊戲的背景及功能概述 298
14.1.1 遊戲開發的背景概述 298
14.1.2 遊戲的功能介紹 298
14.2 遊戲的策劃及準備工作 301
14.2.1 遊戲的策劃 301
14.2.2 遊戲的準備工作 302
14.3 遊戲的架構 305
14.3.1 遊戲中各類的簡要介紹 305
14.3.2 遊戲的框架簡介 306
14.4 遊戲常量類—Constant 307
14.5 場景相關類 307
14.5.1 遊戲場景管理類—SceneManager 307
14.5.2 歡迎布景類—
BeginLayer 310
14.5.3 主選單場景布景類—MainMenuScene2D 311
14.5.4 幫助場景布景類—HelpLayer 315
14.5.5 設定場景布景類—SetLayer 317
14.5.6 選擇關卡場景布景類—SelectGameLayer 319
14.6 遊戲場景布景類 321
14.6.1 2D布景類—My2Dlayer 321
14.6.2 3D布景類—FirstLayer 321
14.7 輔助類 326
14.7.1 方塊類—Cubes 326
14.7.2 地圖類—GameMap 328
14.7.3 暫停和通關界面類—GameSet 329
14.7.4 機關類—Organ 332
14.7.5 碰撞檢測類—Collision 334
14.8 引擎引用入口類—
AppDelegate 335
14.9 遊戲的最佳化及改進 336
14.10 本章小結 337
第 15章 射擊解謎類遊戲—綠色行動 338
15.1 遊戲的背景及功能概述 338
15.1.1 遊戲開發的背景概述 338
15.1.2 遊戲的功能介紹 338
15.2 遊戲的策劃及準備工作 340
15.2.1 遊戲的策劃 340
15.2.2 遊戲的準備工作 341
15.3 遊戲的架構 346
15.3.1 遊戲中各類的簡要介紹 346
15.3.2 遊戲的框架簡介 347
15.4 遊戲常量頭檔案—
AppConstant 348
15.5 遊戲場景布景類 349
15.5.1 CG 1場景2D布景類—CG2DLayer 349
15.5.2 CG 1場景3D布景類—CG3DLayer 350
15.5.3 CG 2場景3D布景類—CG3Dlayer 354
15.5.4 主選單場景2D布景類—
MainMenuScene2D 356
15.5.5 主選單場景3D布景類—MainMenuScene3D 357
15.5.6 異步載入類—
LoadLayer 358
15.5.7 2D場景類的開發 360
15.5.8 3D場景類的開發 364
15.5.9 場景管理類的開發 377
15.6 輔助類 378
15.6.1 數據類—GameData 379
15.6.2 暫停和設定界面類—GameSet 380
15.6.3 音樂音效管理類—MusicManager 382
15.6.4 粒子系統管理類—ParticleManager 384
15.6.5 波動水面類Water 385
15.6.6 英雄類—Hero 389
15.7 引擎引用入口類—
AppDelegate 393
15.8 遊戲的最佳化及改進 395
15.9 本章小結 395