注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)游戲設(shè)計OpenGL ES 3x游戲開發(fā)(下卷)

OpenGL ES 3x游戲開發(fā)(下卷)

OpenGL ES 3x游戲開發(fā)(下卷)

定 價:¥89.00

作 者: 吳亞峰 著
出版社: 人民郵電出版社
叢編項:
標 簽: 計算機/網(wǎng)絡(luò) 圖形圖像 多媒體 游戲開發(fā)/多媒體/課件設(shè)計

ISBN: 9787115433657 出版時間: 2016-10-01 包裝: 平裝
開本: 16開 頁數(shù): 502 字數(shù):  

內(nèi)容簡介

  本書共分14章,內(nèi)容涵蓋了從OpenGL ES 3.x著色器的使用技巧到高級光影效果以及物理模擬問題的解決。介紹了OpenGL ES 3.x中的各種緩沖區(qū)對象和頂點著色器與片元著色器的使用技巧,以及高級光影效果的實現(xiàn),如凹凸映射、環(huán)境反射、陰影、倒影、鏡頭光暈等。介紹了杰出的3D物理引擎Bullet(Java和C++版本),詳細介紹了骨骼動畫的開發(fā),包括加載ms3d骨骼動畫以及開發(fā)自定義格式的骨骼動畫。系統(tǒng)地討論了OpenGL ES 3.x開發(fā)中的性能優(yōu)化問題,介紹了OpenGL ES 3.1新增的計算著色器。給出了基于NDK的大型游戲案例——火力籃球和iOS下的3D游戲案例——方塊翻轉(zhuǎn),方便讀者快速上手應(yīng)用。本書適合游戲開發(fā)者、程序員閱讀,也適合大專院校相關(guān)專業(yè)師生的學習用書,以及培訓學校的教材。

作者簡介

  吳亞峰,畢業(yè)于北京郵電大學,后留學澳大利亞臥龍崗大學取得碩士學位。1998年開始從事Java應(yīng)用的開發(fā),有10多年的Java開發(fā)與培訓經(jīng)驗。主要的研究方向為OpenGL ES、手機游戲、Java EE以及搜索引擎。同時為手機游戲、Java EE獨立軟件開發(fā)工程師,并兼任百納科技Java培訓中心首席培訓師。近十年來為數(shù)十家杰出企業(yè)培養(yǎng)了上千名高級軟件開發(fā)人員,曾編寫過《Android 3D游戲案例開發(fā)大全》、《Android平板電腦開發(fā)實戰(zhàn)詳解和典型案例》、《Android游戲開發(fā)大全》、《Android應(yīng)用案例開發(fā)大全》、《Unity 3D游戲開發(fā)技術(shù)詳解與典型案例》等多本暢銷技術(shù)書籍。2008年年初開始關(guān)注Android平臺下的應(yīng)用開發(fā),并開發(fā)出一系列杰出的Android 3D應(yīng)用程序與游戲。

圖書目錄

第1章 緩沖區(qū)對象 1
1.1 頂點緩沖區(qū) 1
1.1.1 基本知識 1
1.1.2 一個簡單的案例 4
1.2 頂點數(shù)組對象 6
1.2.1 基本知識與案例效果 6
1.2.2 案例開發(fā)步驟 7
1.3 一致緩沖區(qū)對象 8
1.3.1 基本知識與案例效果 9
1.3.2 案例開發(fā)步驟 10
1.4 映射緩沖區(qū)對象 13
1.4.1 基本知識與案例效果 13
1.4.2 案例開發(fā)步驟 15
1.5 其他緩沖區(qū)對象操作 18
1.5.1 復制緩沖區(qū)對象 18
1.5.2 從顏色緩沖區(qū)復制紋理數(shù)據(jù) 18
1.6 幀緩沖與渲染緩沖 20
1.6.1 幀緩沖與渲染緩沖對象 20
1.6.2 案例開發(fā)步驟 23
1.7 多重渲染目標 26
1.7.1 基本知識 26
1.7.2 一個簡單的案例 26
1.8 小結(jié) 29
第2章 頂點著色器的妙用 30
2.1 飄揚的旗幟 30
2.1.1 基本原理 30
2.1.2 開發(fā)步驟 31
2.2 扭動的軟糖 33
2.2.1 基本原理 33
2.2.2 開發(fā)步驟 34
2.3 風吹椰林場景的開發(fā) 35
2.3.1 椰子樹隨風搖擺的基本原理 35
2.3.2 開發(fā)步驟 36
2.4 展翅飛翔的雄鷹 39
2.4.1 基本原理 39
2.4.2 開發(fā)步驟 40
2.5 二維扭曲 42
2.5.1 基本原理 42
2.5.2 開發(fā)步驟 43
2.6 吹氣膨脹特效 45
2.6.1 特效基本原理 46
2.6.2 特效開發(fā)步驟 46
2.7 固定渲染管線與可編程渲染管線實現(xiàn)方案的對比 48
2.8 小結(jié) 49
第3章 片元著色器的妙用 50
3.1 程序紋理技術(shù) 50
3.1.1 磚塊著色器 50
3.1.2 沙灘球著色器 52
3.2 數(shù)字圖像處理 53
3.2.1 卷積的基本知識 53
3.2.2 平滑過濾 54
3.2.3 邊緣檢測 55
3.2.4 銳化處理 56
3.2.5 浮雕效果 56
3.2.6 圖像漸變 58
3.2.7 卡通渲染特效 59
3.3 分形著色器 60
3.3.1 曼德布羅集簡介 61
3.3.2 曼德布羅集著色器的實現(xiàn) 61
3.3.3 將曼德布羅集紋理應(yīng)用到實際物體上 63
3.3.4 茱莉亞集著色器的實現(xiàn) 63
3.4 3D紋理的妙用 65
3.4.1 噪聲函數(shù)的基礎(chǔ)知識 65
3.4.2 柏林噪聲函數(shù)生成工具 68
3.4.3 3D噪聲紋理木頭茶壺的
開發(fā) 69
3.5 體積霧 72
3.5.1 基本原理 72
3.5.2 開發(fā)步驟 73
3.6 粒子系統(tǒng)火焰的開發(fā) 75
3.6.1 火焰的基本原理 75
3.6.2 普通版火焰 77
3.6.3 點精靈版火焰 82
3.6.4 變換反饋版火焰 85
3.7 小結(jié) 89
第4章 真實光學環(huán)境的模擬 90
4.1 反射環(huán)境模擬 90
4.1.1 案例效果與基本原理 90
4.1.2 反射環(huán)境開發(fā)步驟 91
4.2 折射環(huán)境模擬 93
4.2.1 案例效果與基本原理 93
4.2.2 開發(fā)步驟 95
4.3 色散效果的模擬 96
4.3.1 案例效果與基本原理 96
4.3.2 開發(fā)步驟 97
4.4 菲涅爾效果的模擬 97
4.4.1 案例效果與基本原理 97
4.4.2 菲涅爾效果開發(fā)步驟 98
4.5 凹凸映射 99
4.5.1 案例效果與基本原理 99
4.5.2 法向量紋理圖的生成 100
4.5.3 切向量的計算 103
4.5.4 案例的開發(fā) 105
4.5.5 使用3ds Max制作法向量
紋理圖 109
4.6 高真實感地形 111
4.6.1 基本思路 111
4.6.2 一個簡單的案例 112
4.7 鏡頭光暈 115
4.7.1 基本原理 115
4.7.2 一個簡單的案例 116
4.8 小結(jié) 119
第5章 陰影及高級光照 120
5.1 投影貼圖 120
5.1.1 案例效果與基本原理 120
5.1.2 開發(fā)步驟 121
5.2 陰影的重要性 123
5.3 平面陰影 125
5.3.1 案例效果與基本原理 125
5.3.2 開發(fā)步驟 126
5.4 陰影映射 129
5.4.1 陰影映射案例效果與基本
原理 129
5.4.2 距離紋理圖的生成 130
5.4.3 陰影場景的繪制 135
5.5 陰影貼圖 138
5.5.1 案例效果與基本原理 138
5.5.2 開發(fā)步驟 139
5.6 靜態(tài)光照貼圖 140
5.6.1 案例效果與基本原理 140
5.6.2 使用3ds Max制作靜態(tài)光照
貼圖 141
5.6.3 案例的開發(fā) 142
5.7 聚光燈高級光源 144
5.7.1 案例效果與基本原理 144
5.7.2 案例的開發(fā) 145
5.8 半球光照 146
5.8.1 案例效果與基本原理 146
5.8.2 案例的開發(fā) 148
5.9 光線跟蹤 149
5.9.1 光線跟蹤案例效果與基本
原理 149
5.9.2 光線跟蹤開發(fā)步驟 153
5.10 高級鏡像技術(shù) 162
5.10.1 案例效果與基本原理 162
5.10.2 開發(fā)步驟 163
5.11 高真實感水面倒影 168
5.11.1 案例效果與基本原理 168
5.11.2 開發(fā)步驟 170
5.12 運動模糊 175
5.12.1 普通運動模糊 176
5.12.2 高級運動模糊 179
5.13 小結(jié) 183
第6章 游戲開發(fā)中的物理學 184
6.1 碰撞檢測基本技術(shù) 184
6.1.1 AABB包圍盒的基本原理 184
6.1.2 AABB包圍盒的計算 185
6.1.3 AABB包圍盒的碰撞檢測 186
6.1.4 一個AABB包圍盒的案例 188
6.1.5 旋轉(zhuǎn)后的AABB包圍盒 189
6.1.6 AABB包圍盒的使用要點 193
6.1.7 OBB包圍盒 193
6.2 穿透效應(yīng) 194
6.2.1 案例的運行效果與基本
原理 194
6.2.2 具體開發(fā)步驟 195
6.3 粒子系統(tǒng) 195
6.3.1 案例運行效果與基本原理 195
6.3.2 CPU版案例的開發(fā) 196
6.3.3 GPU版案例開發(fā)步驟 197
6.4 彈簧質(zhì)點模型模擬旗幟 199
6.4.1 彈簧質(zhì)點模型基本原理 199
6.4.2 彈簧質(zhì)點模型案例的運行效果及開發(fā)步驟 200
6.5 彈簧質(zhì)點模型模擬球網(wǎng) 208
6.5.1 彈簧質(zhì)點模型的基本原理 209
6.5.2 彈簧質(zhì)點模型的案例的運行效果及開發(fā)步驟 209
6.6 小結(jié) 211
第7章 3D物理引擎一——JBullet 212
7.1 物理引擎很重要 212
7.1.1 什么是物理引擎 212
7.1.2 常見的物理引擎 212
7.2 JBullet物理引擎概覽 214
7.2.1 基本的物理學概念 215
7.2.2 JBullet中常用類的介紹 216
7.3 箱子相互碰撞的案例 223
7.3.1 案例運行效果及準備工作 223
7.3.2 案例的基本框架結(jié)構(gòu) 224
7.3.3 常量類——Constant 225
7.3.4 3D場景渲染類——MySurfaceView 225
7.3.5 水平地面——TexFloor類 227
7.3.6 箱子——TexCube類 228
7.4 復合碰撞形狀的使用 229
7.4.1 案例運行效果 229
7.4.2 立方體圓柱復合形狀——CubeCylinder類 229
7.5 凹凸地形的案例 231
7.5.1 案例運行效果 231
7.5.2 地形類——LandForm 232
7.6 任意形狀物體的碰撞 233
7.6.1 案例運行效果 233
7.6.2 加載物體類——LoadedObject VertexNormal 233
7.6.3 加載物體剛體類——LoadRigidBody 234
7.7 鉸鏈關(guān)節(jié) 235
7.7.1 鉸鏈關(guān)節(jié)的基本知識 235
7.7.2 鉸鏈關(guān)節(jié)案例的運行效果 236
7.7.3 鉸鏈關(guān)節(jié)旋轉(zhuǎn)角速度的計算 237
7.7.4 3D界面渲染類——MySurfaceView 238
7.8 滑動關(guān)節(jié) 240
7.8.1 滑動關(guān)節(jié)的基本知識 240
7.8.2 案例效果圖 241
7.8.3 3D界面渲染類——MySurfaceView 241
7.9 六自由度關(guān)節(jié) 244
7.9.1 六自由度關(guān)節(jié)的基本知識 244
7.9.2 六自由度關(guān)節(jié)案例的運行
效果 245
7.9.3 人偶類——Doll 246
7.9.4 拾取時采用的點對點關(guān)節(jié) 247
7.10 交通工具 250
7.10.1 交通工具開發(fā)要點 250
7.10.2 交通工具案例的運行
效果 251
7.10.3 3D場景渲染類——
MySurfaceView 251
7.10.4 汽車類——Car 253
7.10.5 汽車繪制類——
VehicleDraw 257
7.11 小結(jié) 258
第8章 3D物理引擎二——Bullet 259
8.1 Bullet中的常用類和結(jié)構(gòu)體 259
8.1.1 btScalar類——被封裝的
浮點類 259
8.1.2 btVector3類——三維向量類 259
8.1.3 btTransform類——變換類 261
8.1.4 btRigidBody類——剛體類 262
8.1.5 btDynamicsWorld類——物理世界類 263
8.1.6 btDiscreteDynamicsWorld類——
離散物理世界類 264
8.1.7 btSoftRigidDynamicsWorld類——支持模擬軟體的物理
世界類 264
8.1.8 btCollisionShape類——碰撞形狀類 265
8.1.9 btStaticPlaneShape類——靜態(tài)平面形狀 265
8.1.10 btSphereShape類——球體形
狀類 266
8.1.11 btBoxShape類——長方體盒
碰撞形狀類 266
8.1.12 btCylinderShape類——圓柱
形狀類 266
8.1.13 btCapsuleShape類——膠囊
形狀類 266
8.1.14 btConeShape類——圓錐形
狀類 267
8.1.15 btCompoundShape類——復
合碰撞形狀類 267
8.2 簡單的物理場景 267
8.2.1 案例運行效果 267
8.2.2 案例的基本框架結(jié)構(gòu) 268
8.2.3 3D場景渲染類——GL2JNIView類 269
8.2.4 主控制類——HelloBulletActivity類 271
8.2.5 本地方法聲明及動態(tài)庫加載類——JNIPort類 272
8.2.6 封裝的物體類——TexBody
類 273
8.2.7 矩形繪制類——TextrueRect
類 273
8.2.8 長方體物體類——TexCuboid
類 276
8.2.9 水平地面類——TexPlane類 278
8.2.10 初始化及渲染函數(shù)文件——
main.cpp 279
8.3 各式各樣的物體下落 281
8.3.1 案例運行效果 281
8.3.2 圓錐物體類——TexCone類 282
8.3.3 球物體類——TexBall類 284
8.3.4 膠囊物體類——
TexCapsule類 285
8.3.5 圓柱物體類——TexCylinderShape類 287
8.3.6 初始化及渲染函數(shù)文件——main.cpp 289
8.4 旋轉(zhuǎn)的陀螺 290
8.4.1 案例運行效果 290
8.4.2 陀螺物體類——MyCompoundShape類 290
8.4.3 初始化及渲染函數(shù)文件——main.cpp 292
8.5 消失的木塊 292
8.5.1 案例運行效果 292
8.5.2 初始化及渲染函數(shù)文件——main.cpp 293
8.6 物體碰撞下落 295
8.6.1 案例運行效果 295
8.6.2 初始化及渲染函數(shù)文件——main.cpp 296
8.7 關(guān)節(jié) 297
8.7.1 關(guān)節(jié)的父類——btTypedConstraint類 297
8.7.2 鉸鏈關(guān)節(jié)——btHingeConstraint類 297
8.7.3 鉸鏈關(guān)節(jié)的案例——球落
門開 299
8.7.4 齒輪關(guān)節(jié)——btGearConstraint類 300
8.7.5 齒輪關(guān)節(jié)的案例——轉(zhuǎn)動的齒輪 301
8.7.6 點對點關(guān)節(jié)——btPoint2Point Constraint類 302
8.7.7 點對點關(guān)節(jié)的案例——懸掛的物體 303
8.7.8 滑動關(guān)節(jié)——btSliderConstraint類 304
8.7.9 滑動關(guān)節(jié)的案例——六個方向的物體滑動 305
8.7.10 六自由度關(guān)節(jié)——btGeneric6
DofConstraint類 308
8.7.11 六自由度關(guān)節(jié)的案例——掉
落的蜘蛛 309
8.8 三角形網(wǎng)格形狀類 311
8.8.1 三角形索引數(shù)組類——btTriangle IndexVertexArray類 311
8.8.2 層次包圍結(jié)構(gòu)三角形網(wǎng)格形狀類——btBvhTriangleMesh Shape類 312
8.8.3 層次包圍結(jié)構(gòu)三角形網(wǎng)格形狀類的案例——波動的水紋 313
8.9 交通工具類 316
8.9.1 交通工具類——btRaycastVehicle類 317
8.9.2 交通工具的案例——移動的小車 318
8.10 固定三角形網(wǎng)格形狀類 324
8.10.1 固定三角形網(wǎng)格形狀類——
btGImpactMeshShape類 324
8.10.2 固定形狀物體案例 325
8.11 軟體 327
8.11.1 軟體幫助類——btSoftBody
Helps類 327
8.11.2 軟布案例 328
8.11.3 三角形網(wǎng)格軟體案例 331
8.11.4 繩索軟體案例 334
8.12 光線投射回調(diào)結(jié)構(gòu)體 336
8.12.1 光線投射回調(diào)結(jié)構(gòu)體
ClosestRayResultCallback 336
8.12.2 光線投射的案例——旋轉(zhuǎn)
光線 337
8.13 小結(jié) 339
第9章 骨骼動畫 340
9.1 自己開發(fā)骨骼動畫 340
9.1.1 骨骼動畫的基本原理 340
9.1.2 開發(fā)步驟 343
9.1.3 機器人模型在地面上運動時的問題 348
9.2 ms3d文件的加載 351
9.2.1 ms3d文件的格式 351
9.2.2 將3ds Max動畫文件轉(zhuǎn)換為ms3d文件 355
9.2.3 Java語言加載ms3d文件案例的開發(fā) 359
9.2.4 C++語言加載ms3d文件案例的開發(fā) 372
9.3 自定義格式骨骼動畫的加載 373
9.3.1 bnggdh文件的格式 373
9.3.2 Bnggdh類 376
9.3.3 加載bnggdh文件的案例 377
9.4 小結(jié) 379
第10章 必知必會的開發(fā)技術(shù)—— 游戲開發(fā)小貼士 380
10.1 3D拾取技術(shù) 380
10.1.1 3D拾取案例效果與基本
原理 380
10.1.2 開發(fā)步驟 382
10.2 多點觸控 386
10.2.1 多點觸控案例效果與基本
原理 386
10.2.2 開發(fā)步驟 387
10.3 多鍵監(jiān)聽 389
10.3.1 案例效果與基本原理 389
10.3.2 開發(fā)步驟 390
10.4 小結(jié) 392
第11章 讓應(yīng)用運行更流暢——
性能優(yōu)化 393
11.1 著色器的優(yōu)化 393
11.1.1 計算量與計算頻率相關(guān)的
問題 393
11.1.2 其他需要注意的問題 394
11.2 紋理圖的優(yōu)化 395
11.3 3D圖形繪制的優(yōu)化 396
11.3.1 CPU階段的優(yōu)化 396
11.3.2 幾何階段的優(yōu)化 397
11.3.3 光柵化階段的優(yōu)化 398
11.3.4 使用幀緩沖區(qū)對象時的性能
問題 398
11.3.5 盡量減少狀態(tài)的變化 399
11.4 圖元重啟 399
11.4.1 基本原理 399
11.4.2 一個簡單的案例 400
11.5 幾何體實例渲染 401
11.5.1 基本原理 401
11.5.2 一個簡單的案例 402
11.5.3 基于實例渲染的海量草地 403
11.6 著色器程序的外部加載 406
11.7 計算著色器的使用 409
11.7.1 基本知識 409
11.7.2 動態(tài)法向量光照水面
案例 413
11.8 小結(jié) 418
第12章 雜項 419
12.1 遮擋查詢 419
12.1.1 相關(guān)方法 419
12.1.2 案例開發(fā)步驟 420
12.2 增強現(xiàn)實基礎(chǔ) 422
12.2.1 基本知識與案例效果 422
12.2.2 一個簡單的案例 423
12.3 保存屏幕圖像 426
12.4 讀取Android系統(tǒng)的GPU參數(shù) 428
12.5 多重采樣抗鋸齒 429
12.5.1 基本知識與案例效果 429
12.5.2 一個簡單的案例 430
12.6 小結(jié) 431
第13章 Android NDK體育競技
游戲——火力籃球 432
13.1 游戲背景及功能簡述 432
13.1.1 背景概述 432
13.1.2 功能介紹 432
13.2 游戲的策劃及準備工作 434
13.2.1 游戲的策劃 434
13.2.2 Android平臺下游戲開發(fā)的
準備工作 435
13.3 游戲的架構(gòu) 436
13.3.1 各個類簡要介紹 436
13.3.2 游戲的框架簡介 438
13.4 游戲公共類 439
13.4.1 游戲入口類——BasketBullet Activity 439
13.4.2 場景渲染類——
GL2JNIView 440
13.4.3 本地方法聲明及動態(tài)庫加載
類——JNIPort 442
13.4.4 現(xiàn)實本地方法的相關(guān)文件
——jni_code.c 443
13.4.5 現(xiàn)實本地方法的相關(guān)文件
——main.cpp 443
13.5 輔助界面相關(guān)類 446
13.5.1 著色器管理類——ShaderManager 446
13.5.2 著色器腳本的開發(fā) 448
13.5.3 數(shù)據(jù)庫工具類——
SQLiteUtil 452
13.5.4 紋理矩形類——
TextureRect 454
13.5.5 游戲資源加載界面類——LoadingView 456
13.5.6 菜單界面類——MenuView 458
13.5.7 記錄界面類——
RecordView 460
13.6 游戲界面相關(guān)類 462
13.6.1 游戲界面類——
GameView 462
13.6.2 墻面剛體封裝類——
TexCuboid 467
13.6.3 籃球剛體封裝類——
TexBall 468
13.6.4 任何形狀類——
AnyShapeByVectices 470
13.6.5 任何形狀剛體封裝類——
TexTriangleMesh 473
13.6.6 任何形狀軟體封裝類——
SoftObj 474
13.7 游戲的優(yōu)化及改進 476
第14章 iOS休閑類游戲——方塊翻轉(zhuǎn) 477
14.1 游戲背景及功能概述 477
14.1.1 游戲背景概述 477
14.1.2 游戲功能介紹 477
14.2 游戲的策劃及準備工作 480
14.2.1 游戲的策劃 480
14.2.2 手機平臺下游戲的準備
工作 480
14.3 游戲的架構(gòu) 482
14.3.1 各個類簡要介紹 482
14.3.2 游戲框架簡介 484
14.4 界面顯示類 485
14.4.1 GLView類 485
14.4.2 顯示界面類RenderingEngine2 486
14.4.3 游戲界面類GameView 488
14.4.4 幫助界面類HelpView 491
14.5 輔助工具類 493
14.5.1 常量類Constant 493
14.5.2 計算交點坐標輔助類
IntersectantUtil 494
14.6 繪制相關(guān)類 495
14.6.1 3D模型繪制類的開發(fā) 495
14.6.2 2D物體繪制類的開發(fā) 500
14.7 游戲的優(yōu)化及改進 501
14.8 小結(jié) 502

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號