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

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

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

定 價:¥89.00

作 者: 吳亞峰
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115433497 出版時間: 2016-10-01 包裝:
開本: 16開 頁數(shù): 484 字?jǐn)?shù):  

內(nèi)容簡介

  本書共分17章,內(nèi)容按照必知必會的OpenGL ES 3.x基礎(chǔ)知識、基于實(shí)現(xiàn)基本特效以及真實(shí)大型應(yīng)用、游戲案例開發(fā)的順序進(jìn)行詳細(xì)地講解。主要內(nèi)容為:OpenGL ES 3.x的渲染管線介紹,OpenGL ES 3.x可編程渲染管線著色器的著色語言介紹,3D開發(fā)中投影、各種變換的原理與實(shí)現(xiàn),介紹了OpenGL ES 3.x中光照的基本原理與實(shí)現(xiàn)、點(diǎn)法向量與面法向量的區(qū)別以及光照的每頂點(diǎn)計算與每片元計算的差別,介紹了紋理映射的基本原理與使用,介紹了使用OpenGL ES 3.0開發(fā)各種3D基本形狀的實(shí)現(xiàn),包括圓柱、圓錐、圓環(huán)、螺旋管、幾何球以及貝塞爾曲線旋轉(zhuǎn)面等內(nèi)容,講解了3D模型加載,介紹了混合和霧的基本原理與使用以及常用3D開發(fā)技巧,如標(biāo)志板、天空盒、鏡像繪制等,介紹了OpenGL ES 3.0中經(jīng)常使用的幾種剪裁與測試,包括剪裁測試、Alpha測試、模板測試以及任意剪裁平面等,講解了傳感器應(yīng)用開發(fā)和Android 及iOS平臺下的OpenGL ES開發(fā)。通過兩大案例,如休閑類游戲3D可愛抓娃娃和3D樓盤展示系統(tǒng)把所學(xué)的知識應(yīng)用起來,讓讀者盡快進(jìn)入實(shí)戰(zhàn)角色。本書適合OpenGL ES 3D應(yīng)用開發(fā)的初學(xué)者、程序員、游戲開發(fā)者,也適合作為大專院校相關(guān)專業(yè)師生的學(xué)習(xí)用書以及培訓(xùn)學(xué)校的教材。

作者簡介

  吳亞峰,畢業(yè)于北京郵電大學(xué),后留學(xué)澳大利亞臥龍崗大學(xué)取得碩士學(xué)位。1998年開始從事Java應(yīng)用的開發(fā),有10多年的Java開發(fā)與培訓(xùn)經(jīng)驗(yàn)。主要的研究方向?yàn)镺penGL ES、手機(jī)游戲、Java EE以及搜索引擎。同時為手機(jī)游戲、Java EE獨(dú)立軟件開發(fā)工程師,并兼任百納科技Java培訓(xùn)中心首席培訓(xùn)師。近十年來為數(shù)十家杰出企業(yè)培養(yǎng)了上千名高級軟件開發(fā)人員,曾編寫過《Android 3D游戲案例開發(fā)大全》、《Android平板電腦開發(fā)實(shí)戰(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章 Android概述 1
1.1 Android平臺的特點(diǎn)及未來的趨勢 1
1.1.1 全新理念帶來的體驗(yàn)風(fēng)暴 1
1.1.2 手機(jī)3D游戲和應(yīng)用增長
迅速 2
1.2 搭建Android開發(fā)環(huán)境 2
1.2.1 JDK的安裝及環(huán)境變量的
配置 2
1.2.2 Android SDK的下載與配置 4
1.2.3 Eclipse集成開發(fā)環(huán)境的下載與配置 5
1.2.4 創(chuàng)建并啟動模擬器 8
1.3 Hello Android應(yīng)用程序的開發(fā) 10
1.3.1 第一個Android應(yīng)用程序 10
1.3.2 Android應(yīng)用程序的項(xiàng)目
結(jié)構(gòu) 13
1.3.3 Android應(yīng)用程序的調(diào)試 14
1.3.4 實(shí)際設(shè)備的聯(lián)機(jī)調(diào)試 16
1.4 已有Android項(xiàng)目的導(dǎo)入和運(yùn)行 16
1.4.1 項(xiàng)目的導(dǎo)入 16
1.4.2 應(yīng)用程序的運(yùn)行 17
1.5 Android應(yīng)用程序運(yùn)行的機(jī)制 18
1.5.1 應(yīng)用程序的系統(tǒng)架構(gòu) 18
1.5.2 應(yīng)用程序框架 18
1.5.3 Android運(yùn)行時 19
1.5.4 系統(tǒng)庫 19
1.5.5 底層Linux內(nèi)核 20
1.6 小結(jié) 20
第2章 游戲開發(fā)相關(guān)的 Android基礎(chǔ)知識 21
2.1 游戲中的音效 21
2.1.1 游戲中的即時音效 21
2.1.2 即時音效的一個案例 22
2.1.3 背景音樂播放技術(shù) 24
2.1.4 簡易音樂播放器的實(shí)現(xiàn) 26
2.2 簡單數(shù)據(jù)的存儲—Preferences 29
2.2.1 Preferences簡介 29
2.2.2 Preferences實(shí)現(xiàn)訪問時間的
記錄 29
2.3 手機(jī)自帶數(shù)據(jù)庫—SQLite 30
2.3.1 初識SQLite 30
2.3.2 SQLite數(shù)據(jù)庫的基本操作 31
2.3.3 SQLite數(shù)據(jù)庫的簡單案例 32
2.3.4 使用ContentProvider組件
共享數(shù)據(jù) 34
2.3.5 使用ContentResolver獲取
分享數(shù)據(jù) 36
2.4 文件I O 37
2.4.1 訪問SD卡中的文件 38
2.4.2 訪問手機(jī)中的文件夾 39
2.4.3 讀取assets文件夾下的內(nèi)容 41
2.5 Socket網(wǎng)絡(luò)通信 42
2.5.1 Socket開發(fā)基本知識 42
2.5.2 服務(wù)器端 43
2.5.3 客戶端 44
2.6 藍(lán)牙通信 45
2.6.1 藍(lán)牙通信的基本知識 45
2.6.2 聊天案例概覽 46
2.6.3 聊天案例的開發(fā)過程 47
2.7 小結(jié) 57
第3章 初識OpenGL ES 3.x 58
3.1 OpenGL ES 3.x概述 58
3.1.1 OpenGL ES 3.x簡介 58
3.1.2 初識OpenGL ES 3.0應(yīng)用
程序 61
3.1.3 OpenGL ES 3.1新特性簡介 68
3.2 著色器與渲染管線 68
3.2.1 OpenGL ES 2.0的渲染管線 68
3.2.2 OpenGL ES 3.0的渲染管線 74
3.2.3 OpenGL ES中立體物體的
構(gòu)建 76
3.3 主流手機(jī)GPU大PK 77
3.3.1 手機(jī)GPU四大家族對比 77
3.3.2 主流GPU的性能參數(shù)比較 80
3.4 小結(jié) 81
第4章 著色語言Shading Language 82
4.1 著色語言概述 82
4.2 著色語言基礎(chǔ) 82
4.2.1 數(shù)據(jù)類型概述 83
4.2.2 數(shù)據(jù)類型的基本使用 87
4.2.3 運(yùn)算符 89
4.2.4 構(gòu)造函數(shù) 91
4.2.5 類型轉(zhuǎn)換 92
4.2.6 存儲限定符 93
4.2.7 插值限定符 98
4.2.8 一致塊 99
4.2.9 layout限定符 100
4.2.10 流程控制 102
4.2.11 函數(shù)的聲明與使用 104
4.2.12 片元著色器中浮點(diǎn)變量
精度的指定 105
4.2.13 程序的基本結(jié)構(gòu) 106
4.3 特殊的內(nèi)建變量 106
4.3.1 頂點(diǎn)著色器中的內(nèi)建變量 106
4.3.2 片元著色器中的內(nèi)建變量 107
4.3.3 內(nèi)建常量 108
4.3.4 內(nèi)建uniform變量 108
4.4 著色語言的內(nèi)置函數(shù) 109
4.4.1 角度轉(zhuǎn)換與三角函數(shù) 109
4.4.2 指數(shù)函數(shù) 110
4.4.3 常見函數(shù) 111
4.4.4 幾何函數(shù) 114
4.4.5 矩陣函數(shù) 116
4.4.6 向量關(guān)系函數(shù) 116
4.4.7 紋理采樣函數(shù) 117
4.4.8 微分函數(shù) 120
4.4.9 浮點(diǎn)數(shù)的打包與解包函數(shù) 120
4.5 用invariant修飾符避免值變問題 121
4.6 預(yù)處理器 122
4.7 小結(jié) 123
第5章 必知必會的3D開發(fā)知識—
投影及各種變換 124
5.1 攝像機(jī)的設(shè)置 124
5.2 兩種投影方式 125
5.2.1 正交投影 125
5.2.2 透視投影 132
5.3 各種變換 134
5.3.1 基本變換的相關(guān)數(shù)學(xué)知識 134
5.3.2 平移變換 135
5.3.3 旋轉(zhuǎn)變換 138
5.3.4 縮放變換 139
5.3.5 基本變換的實(shí)質(zhì) 140
5.4 所有變換的完整流程 141
5.5 繪制方式 144
5.5.1 各種繪制方式概覽 145
5.5.2 點(diǎn)與線段繪制方式 146
5.5.3 三角形條帶與扇面繪制方式 147
5.5.4 頂點(diǎn)法與索引法 151
5.5.5 layout限定符的使用 155
5.6 頂點(diǎn)常量屬性 156
5.6.1 頂點(diǎn)常量基本知識 156
5.6.2 一個簡單的案例 156
5.7 設(shè)置合理的視角 158
5.8 設(shè)置合理的透視參數(shù) 163
5.9 多邊形偏移 166
5.10 卷繞和背面剪裁 168
5.10.1 基本知識 168
5.10.2 一個簡單的案例 169
5.11 小結(jié) 170
第6章 光照 171
6.1 曲面物體的構(gòu)建 171
6.1.1 球體構(gòu)建的基本原理 171
6.1.2 案例效果概覽 172
6.1.3 開發(fā)步驟 172
6.2 基本光照效果 175
6.2.1 光照的基本模型 175
6.2.2 環(huán)境光 175
6.2.3 散射光 177
6.2.4 鏡面光 181
6.2.5 三種光照通道的合成 185
6.3 定位光與定向光 187
6.4 點(diǎn)法向量和面法向量 189
6.5 光照的每頂點(diǎn)計算與每片元計算 191
6.6 小結(jié) 193
第7章 紋理映射 194
7.1 初識紋理映射 194
7.1.1 基本原理 194
7.1.2 一個簡單的案例 195
7.1.3 色彩通道的靈活組合 199
7.2 紋理拉伸 201
7.2.1 三種拉伸方式概覽 201
7.2.2 不同拉伸方式的案例 203
7.3 紋理采樣 207
7.3.1 紋理采樣概述 207
7.3.2 最近點(diǎn)采樣 207
7.3.3 線性紋理采樣 208
7.3.4 MIN與MAG采樣 209
7.3.5 不同紋理采樣方式的案例 210
7.4 mipmap紋理技術(shù) 214
7.5 多重紋理與過程紋理 215
7.5.1 案例概覽 215
7.5.2 將2D紋理映射到球面上的
策略 216
7.5.3 案例的場景結(jié)構(gòu) 217
7.5.4 開發(fā)過程 218
7.6 壓縮紋理的使用 224
7.7 點(diǎn)精靈 226
7.7.1 基本知識 226
7.7.2 一個簡單案例 227
7.8 3D紋理 229
7.9 2D紋理數(shù)組 233
7.10 采樣器配置對象的使用 237
7.11 小結(jié) 239
第8章 3D基本形狀的構(gòu)建 240
8.1 圓柱體 240
8.1.1 頂點(diǎn)原始位置的生成 240
8.1.2 案例的開發(fā) 242
8.2 圓錐體 244
8.2.1 頂點(diǎn)原始位置的生成 244
8.2.2 案例的開發(fā) 246
8.3 圓環(huán)體 248
8.3.1 頂點(diǎn)原始位置的生成 248
8.3.2 案例的開發(fā) 249
8.4 螺旋管 250
8.4.1 頂點(diǎn)原始位置的生成 250
8.4.2 案例的開發(fā) 251
8.5 幾何球 252
8.5.1 頂點(diǎn)原始位置的生成 252
8.5.2 案例的開發(fā) 254
8.6 足球碳分子模型的搭建 259
8.6.1 搭建的基本原理 259
8.6.2 案例的開發(fā) 261
8.7 貝塞爾曲線及旋轉(zhuǎn)面 264
8.7.1 三維旋轉(zhuǎn)曲面的生成 264
8.7.2 貝塞爾曲線 265
8.7.3 Bezier曲線生成工具 266
8.7.4 印度古典建筑場景的開發(fā) 268
8.8 小結(jié) 269
第9章 更逼真的游戲場景——3D模型
加載 270
9.1 obj模型文件概述 270
9.1.1 obj文件的格式 270
9.1.2 用3ds Max設(shè)計3D模型 271
9.2 加載obj文件 272
9.2.1 加載僅有頂點(diǎn)坐標(biāo)與面數(shù)據(jù)的obj文件 272
9.2.2 加載后自動計算面法向量 275
9.2.3 加載后自動計算平均法
向量 278
9.2.4 加載紋理坐標(biāo) 280
9.2.5 加載頂點(diǎn)法向量 283
9.3 雙面光照 284
9.4 小結(jié) 286
第10章 獨(dú)特的場景渲染技術(shù)—
混合與霧 287
10.1 混合技術(shù) 287
10.1.1 混合基本知識 287
10.1.2 源因子和目標(biāo)因子 288
10.1.3 簡單混合效果案例 290
10.1.4 ETC2壓縮紋理的使用 292
10.2 地月系云層效果的實(shí)現(xiàn) 295
10.3 霧 297
10.3.1 霧的原理與優(yōu)勢 297
10.3.2 霧的簡單實(shí)現(xiàn) 298
10.4 小結(jié) 300
第11章 常用的3D開發(fā)技巧— 標(biāo)志板、天空盒、鏡像繪制等 301
11.1 標(biāo)志板 301
11.1.1 案例效果與基本原理 301
11.1.2 開發(fā)步驟 302
11.2 灰度圖地形 305
11.2.1 基本原理 306
11.2.2 普通灰度圖地形 306
11.2.3 過程紋理地形 309
11.2.4 MipMap地形 311
11.2.5 頂點(diǎn)著色器采樣紋理
地形 312
11.3 用粒子沉積算法構(gòu)建地形 314
11.3.1 粒子沉積法的基本原理 314
11.3.2 地形設(shè)計器的使用 316
11.3.3 粒子沉積的核心算法類 318
11.4 天空盒與天空穹 319
11.4.1 天空盒 319
11.4.2 天空穹 321
11.4.3 天空盒與天空穹的使用
技巧 322
11.5 簡單鏡像效果 323
11.5.1 鏡像基本原理 323
11.5.2 基本效果案例 323
11.5.3 升級效果案例 326
11.6 動態(tài)文本輸出 327
11.6.1 案例效果與基本原理 327
11.6.2 具體開發(fā)步驟 327
11.7 非真實(shí)感繪制 329
11.7.1 基本原理與案例效果 329
11.7.2 具體開發(fā)步驟 331
11.8 描邊效果的實(shí)現(xiàn) 333
11.8.1 沿法線擠出輪廓 333
11.8.2 在視空間中擠出 335
11.9 小結(jié) 336
第12章 渲染出更加酷炫的3D場景—
幾種剪裁與測試 337
12.1 剪裁測試 337
12.1.1 基本原理與核心代碼 337
12.1.2 一個主次視角的簡單案例 337
12.2 Alpha測試 338
12.2.1 Alpha測試基本原理 339
12.2.2 一個橢圓窗口的案例 339
12.3 模板測試 341
12.3.1 基本原理 341
12.3.2 一個簡單的案例 343
12.4 任意剪裁平面 344
12.4.1 基本原理 344
12.4.2 茶壺被任意平面剪裁的
案例 345
12.5 小結(jié) 346
第13章 引人入勝的游戲特性—
傳感器應(yīng)用開發(fā) 347
13.1 基本的開發(fā)流程 347
13.2 加速度傳感器 349
13.2.1 加速度傳感器簡介 349
13.2.2 案例的開發(fā) 350
13.3 磁場傳感器 351
13.3.1 磁場傳感器簡介 351
13.3.2 案例的開發(fā) 351
13.4 陀螺儀傳感器 352
13.4.1 陀螺儀傳感器簡介 352
13.4.2 案例的開發(fā) 353
13.5 光傳感器 354
13.5.1 光傳感器簡介 354
13.5.2 案例的開發(fā) 354
13.6 溫度傳感器 355
13.6.1 溫度傳感器簡介 355
13.6.2 案例的開發(fā) 355
13.7 接近傳感器 356
13.7.1 接近傳感器簡介 357
13.7.2 案例的開發(fā) 357
13.8 姿態(tài)傳感器 358
13.8.1 姿態(tài)傳感器簡介 358
13.8.2 案例的開發(fā) 360
13.9 加速度傳感器綜合案例 361
13.10 傳感器的坐標(biāo)軸問題 363
13.11 小結(jié) 366
第14章 Android NDK及iOS 平臺下的
OpenGL ES開發(fā) 367
14.1 使用Android NDK進(jìn)行OpenGL ES
開發(fā) 367
14.1.1 Android NDK開發(fā)環(huán)境的下
載及配置 367
14.1.2 Android NDK項(xiàng)目在Eclipse
中的配置 370
14.1.3 使用Android NDK開發(fā)簡單的
OpenGL ES 3.0程序 371
14.2 使用Android NDK開發(fā)山地地形
場景 378
14.2.1 案例效果及山地繪制類的
開發(fā) 379
14.2.2 NDK端渲染函數(shù)的開發(fā) 380
14.3 基于iOS平臺開發(fā)OpenGL ES 3.0
程序 382
14.3.1 案例運(yùn)行效果及Xcode項(xiàng)目的
創(chuàng)建 382
14.3.2 案例的開發(fā)過程 385
14.4 基于iOS平臺的地月系場景
案例 390
14.4.1 案例的運(yùn)行效果 391
14.4.2 案例的開發(fā)過程 391
14.5 小結(jié) 394
第15章 Web端3D游戲開發(fā)——WebGL 3D應(yīng)用開發(fā) 395
15.1 WebGL概覽 395
15.1.1 WebGL簡介 395
15.1.2 WebGL效果展示 396
15.2 初識WebGL應(yīng)用 396
15.2.1 WebGL應(yīng)用案例部署運(yùn)行
步驟簡介 397
15.2.2 簡單渲染3D模型案例的
開發(fā) 397
15.3 加入光照效果的WebGL案例 404
15.4 帶有紋理貼圖的WebGL案例 407
15.4.1 一個簡單的案例 408
15.4.2 WebGL版的地月系案例 411
15.5 小結(jié) 413
第16章 休閑類游戲—3D
可愛抓娃娃 414
16.1 游戲的背景及功能概述 414
16.1.1 背景描述 414
16.1.2 功能介紹 414
16.2 游戲的策劃及準(zhǔn)備工作 417
16.2.1 游戲的策劃 417
16.2.2 手機(jī)平臺下游戲的準(zhǔn)備
工作 418
16.3 游戲的架構(gòu) 420
16.3.1 各個類的簡要介紹 420
16.3.2 游戲框架簡介 423
16.4 界面顯示類 424
16.4.1 顯示界面類
MySurfaceView 424
16.4.2 游戲界面類GameView 426
16.4.3 游戲主菜單界面類MainView 430
16.5 輔助工具類 431
16.5.1 輔助類 432
16.5.2 自定義管理器類 436
16.5.3 線程類 439
16.6 繪制相關(guān)類 441
16.6.1 3D模型繪制類的開發(fā) 441
16.6.2 BN2DObject繪制類的開發(fā) 442
16.7 粒子系統(tǒng)的開發(fā) 444
16.7.1 基本原理 444
16.7.2 開發(fā)步驟 444
16.8 本游戲中的著色器 447
16.9 游戲的優(yōu)化及改進(jìn) 449
16.10 小結(jié) 449
第17章 基于WebGL的3D 樓盤展示
系統(tǒng) 450
17.1 應(yīng)用背景及功能概述 450
17.1.1 背景概述 450
17.1.2 功能介紹 450
17.2 功能預(yù)覽及架構(gòu) 451
17.2.1 基于WebGL的3D樓盤展示
系統(tǒng)功能預(yù)覽 451
17.2.2 基于WebGL的3D樓盤展示
系統(tǒng)目錄結(jié)構(gòu) 454
17.3 Web平臺下應(yīng)用開發(fā)前的準(zhǔn)備
工作 455
17.3.1 圖片資源的搜集 455
17.3.2 模型資源的采集 456
17.4 地圖設(shè)計器的開發(fā) 457
17.4.1 地圖設(shè)計器的開發(fā)設(shè)計
思路 457
17.4.2 地圖設(shè)計器的框架介紹 458
17.4.3 地圖設(shè)計器的開發(fā)步驟 458
17.5 公共函數(shù)介紹 461
17.5.1 工具函數(shù)文件GLUtil.js 461
17.5.2 obj加載文件
LoadObjUtil.js 463
17.5.3 著色器加載文件
LoadShaderUtil.js 464
17.5.4 3D物體繪制文件
ObjObject.js 465
17.5.5 矩陣操作函數(shù)文件
MatrixState.js 466
17.6 物體創(chuàng)建及繪制相關(guān)函數(shù)介紹 467
17.6.1 創(chuàng)建普通物體文件
loadObject.js 467
17.6.2 地面繪制文件
DrawLandMaps.js 468
17.6.3 普通按鈕繪制文件
DrawButton.js 470
17.7 各個功能模塊的實(shí)現(xiàn) 470
17.7.1 主界面mainView.html的
開發(fā) 470
17.7.2 樓房模型界面
houseModel.html的實(shí)現(xiàn) 475
17.7.3 戶體模型界面
roomType.html的開發(fā) 477
17.7.4 小區(qū)瀏覽界面
residentialGarden.html的
實(shí)現(xiàn) 478
17.8 應(yīng)用中運(yùn)用的著色器介紹 481
17.8.1 普通物體著色器 481
17.8.2 不帶光照物體著色器 483
17.8.3 天空盒著色器 483
17.9 應(yīng)用的優(yōu)化與改進(jìn) 484
17.10 小結(jié) 484

本目錄推薦

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