发表于2024-12-28
全新正版 OpenGL ES 3x遊戲開發 下捲 吳亞峰 pdf epub mobi txt 電子書 下載 2024
基本信息
書名:全新正版 OpenGL ES 3x遊戲開發 下捲
定價:89.00元
作者:吳亞峰
齣版社:人民郵電齣版社
齣版日期:2016-10-01
ISBN:9787115433657
字數:
頁碼:
版次:1
裝幀:平裝-膠訂
開本:128開
商品重量:0.4kg
編輯推薦
內容覆蓋瞭學習OpenGL ES 3.x的必知必會的知識到基於OpenGL ES 3.x實現各種基礎特效的技術 ● 介紹瞭OpenGL ES 3.x渲染管綫的知識和使用OpenGL ES 3.x的著色語言 ● 介紹瞭OpenGL ES 3.x中的光照、紋理映射、3 D 模型加載、混閤和霧等基礎特效, 以及常用的 3 D 開發技巧, 如標誌闆、天空盒、鏡像繪製等。 ● 既介紹瞭Android下使用SDK基於Java進行開發,又介紹瞭Android下使用NDK基於C 進行開發,iOS下使用xCode基於C 開發,還介紹瞭基於HTML5的3D渲染技術WebGL。 ● 給齣瞭基於NDK的大型遊戲案例——火力籃球和iOS下的3D遊戲案例——方塊翻轉,方便讀者快速上手應用。
內容提要
本書共分14章,內容涵蓋瞭從OpenGL ES 3.x著色器的使用技巧到高級光影效果以及物理模擬問題的解決。介紹瞭OpenGL ES 3.x中的各種緩衝區對象和頂點著色器與片元著色器的使用技巧,以及高級光影效果的實現,如凹凸映射、環境反射、陰影、倒影、鏡頭光暈等。介紹瞭傑齣的3D物理引擎Bullet(Java和C 版本),詳細介紹瞭骨骼動畫的開發,包括加載ms3d骨骼動畫以及開發自定義格式的骨骼動畫。係統地討論瞭OpenGL ES 3.x開發中的性能優化問題,介紹瞭OpenGL ES 3.1新增的計算著色器。給齣瞭基於NDK的大型遊戲案例——火力籃球和iOS下的3D遊戲案例——方塊翻轉,方便讀者快速上手應用。本書適閤遊戲開發者、程序員閱讀,也適閤大專院校相關專業師生的學習用書,以及培訓學校的教材。
目錄
目錄
章 緩衝區對象 1
1.1 頂點緩衝區 1
1.1.1 基本知識 1
1.1.2 一個簡單的案例 4
1.2 頂點數組對象 6
1.2.1 基本知識與案例效果 6
1.2.2 案例開發步驟 7
1.3 一緻緩衝區對象 8
1.3.1 基本知識與案例效果 9
1.3.2 案例開發步驟 10
1.4 映射緩衝區對象 13
1.4.1 基本知識與案例效果 13
1.4.2 案例開發步驟 15
1.5 其他緩衝區對象操作 18
1.5.1 復製緩衝區對象 18
1.5.2 從顔色緩衝區復製紋理數據 18
1.6 幀緩衝與渲染緩衝 20
1.6.1 幀緩衝與渲染緩衝對象 20
1.6.2 案例開發步驟 23
1.7 多重渲染目標 26
1.7.1 基本知識 26
1.7.2 一個簡單的案例 26
1.8 小結 29
第2章 頂點著色器的妙用 30
2.1 飄揚的旗幟 30
2.1.1 基本原理 30
2.1.2 開發步驟 31
2.2 扭動的軟糖 33
2.2.1 基本原理 33
2.2.2 開發步驟 34
2.3 風吹椰林場景的開發 35
2.3.1 椰子樹隨風搖擺的基本原理 35
2.3.2 開發步驟 36
2.4 展翅飛翔的雄鷹 39
2.4.1 基本原理 39
2.4.2 開發步驟 40
2.5 二維扭麯 42
2.5.1 基本原理 42
2.5.2 開發步驟 43
2.6 吹氣膨脹特效 45
2.6.1 特效基本原理 46
2.6.2 特效開發步驟 46
2.7 固定渲染管綫與可編程渲染管綫實現方案的對比 48
2.8 小結 49
第3章 片元著色器的妙用 50
3.1 程序紋理技術 50
3.1.1 磚塊著色器 50
3.1.2 沙灘球著色器 52
3.2 數字圖像處理 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 曼德布羅集著色器的實現 61
3.3.3 將曼德布羅集紋理應用到實際物體上 63
3.3.4 茱莉亞集著色器的實現 63
3.4 3D紋理的妙用 65
3.4.1 噪聲函數的基礎知識 65
3.4.2 柏林噪聲函數生成工具 68
3.4.3 3D噪聲紋理木頭茶壺的
開發 69
3.5 體積霧 72
3.5.1 基本原理 72
3.5.2 開發步驟 73
3.6 粒子係統火焰的開發 75
3.6.1 火焰的基本原理 75
3.6.2 普通版火焰 77
3.6.3 點精靈版火焰 82
3.6.4 變換反饋版火焰 85
3.7 小結 89
第4章 真實光學環境的模擬 90
4.1 反射環境模擬 90
4.1.1 案例效果與基本原理 90
4.1.2 反射環境開發步驟 91
4.2 摺射環境模擬 93
4.2.1 案例效果與基本原理 93
4.2.2 開發步驟 95
4.3 色散效果的模擬 96
4.3.1 案例效果與基本原理 96
4.3.2 開發步驟 97
4.4 菲涅爾效果的模擬 97
4.4.1 案例效果與基本原理 97
4.4.2 菲涅爾效果開發步驟 98
4.5 凹凸映射 99
4.5.1 案例效果與基本原理 99
4.5.2 法嚮量紋理圖的生成 100
4.5.3 切嚮量的計算 103
4.5.4 案例的開發 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 小結 119
第5章 陰影及高級光照 120
5.1 投影貼圖 120
5.1.1 案例效果與基本原理 120
5.1.2 開發步驟 121
5.2 陰影的重要性 123
5.3 平麵陰影 125
5.3.1 案例效果與基本原理 125
5.3.2 開發步驟 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 開發步驟 139
5.6 靜態光照貼圖 140
5.6.1 案例效果與基本原理 140
5.6.2 使用3ds Max製作靜態光照
貼圖 141
5.6.3 案例的開發 142
5.7 聚光燈高級光源 144
5.7.1 案例效果與基本原理 144
5.7.2 案例的開發 145
5.8 半球光照 146
5.8.1 案例效果與基本原理 146
5.8.2 案例的開發 148
5.9 光綫跟蹤 149
5.9.1 光綫跟蹤案例效果與基本
原理 149
5.9.2 光綫跟蹤開發步驟 153
5.10 高級鏡像技術 162
5.10.1 案例效果與基本原理 162
5.10.2 開發步驟 163
5.11 高真實感水麵倒影 168
5.11.1 案例效果與基本原理 168
5.11.2 開發步驟 170
5.12 運動模糊 175
5.12.1 普通運動模糊 176
5.12.2 高級運動模糊 179
5.13 小結 183
第6章 遊戲開發中的物理學 184
6.1 碰撞檢測基本技術 184
6.1.1 AABB包圍盒的基本原理 184
6.1.2 AABB包圍盒的計算 185
6.1.3 AABB包圍盒的碰撞檢測 186
6.1.4 一個AABB包圍盒的案例 188
6.1.5 鏇轉後的AABB包圍盒 189
6.1.6 AABB包圍盒的使用要點 193
6.1.7 OBB包圍盒 193
6.2 穿透效應 194
6.2.1 案例的運行效果與基本
原理 194
6.2.2 具體開發步驟 195
6.3 粒子係統 195
6.3.1 案例運行效果與基本原理 195
6.3.2 CPU版案例的開發 196
6.3.3 GPU版案例開發步驟 197
6.4 彈簧質點模型模擬旗幟 199
6.4.1 彈簧質點模型基本原理 199
6.4.2 彈簧質點模型案例的運行效果及開發步驟 200
6.5 彈簧質點模型模擬球網 208
6.5.1 彈簧質點模型的基本原理 209
6.5.2 彈簧質點模型的案例的運行效果及開發步驟 209
6.6 小結 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 案例的基本框架結構 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 鉸鏈關節 235
7.7.1 鉸鏈關節的基本知識 235
7.7.2 鉸鏈關節案例的運行效果 236
7.7.3 鉸鏈關節鏇轉角速度的計算 237
7.7.4 3D界麵渲染類——MySurfaceView 238
7.8 滑動關節 240
7.8.1 滑動關節的基本知識 240
7.8.2 案例效果圖 241
7.8.3 3D界麵渲染類——MySurfaceView 241
7.9 六自由度關節 244
7.9.1 六自由度關節的基本知識 244
7.9.2 六自由度關節案例的運行
效果 245
7.9.3 人偶類——Doll 246
7.9.4 拾取時采用的點對點關節 247
7.10 交通工具 250
7.10.1 交通工具開發要點 250
7.10.2 交通工具案例的運行
效果 251
7.10.3 3D場景渲染類——
MySurfaceView 251
7.10.4 汽車類——Car 253
7.10.5 汽車繪製類——
VehicleDraw 257
7.11 小結 258
第8章 3D物理引擎二——Bullet 259
8.1 Bullet中的常用類和結構體 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類——靜態平麵形狀 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 案例的基本框架結構 268
8.2.3 3D場景渲染類——GL2JNIView類 269
8.2.4 主控製類——HelloBulletActivity類 271
8.2.5 本地方法聲明及動態庫加載類——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 初始化及渲染函數文件——
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 初始化及渲染函數文件——main.cpp 289
8.4 鏇轉的陀螺 290
8.4.1 案例運行效果 290
8.4.2 陀螺物體類——MyCompoundShape類 290
8.4.3 初始化及渲染函數文件——main.cpp 292
8.5 消失的木塊 292
8.5.1 案例運行效果 292
8.5.2 初始化及渲染函數文件——main.cpp 293
8.6 物體碰撞下落 295
8.6.1 案例運行效果 295
8.6.2 初始化及渲染函數文件——main.cpp 296
8.7 關節 297
8.7.1 關節的父類——btTypedConstraint類 297
8.7.2 鉸鏈關節——btHingeConstraint類 297
8.7.3 鉸鏈關節的案例——球落
門開 299
8.7.4 齒輪關節——btGearConstraint類 300
8.7.5 齒輪關節的案例——轉動的齒輪 301
8.7.6 點對點關節——btPoint2Point Constraint類 302
8.7.7 點對點關節的案例——懸掛的物體 303
8.7.8 滑動關節——btSliderConstraint類 304
8.7.9 滑動關節的案例——六個方嚮的物體滑動 305
8.7.10 六自由度關節——btGeneric6
DofConstraint類 308
8.7.11 六自由度關節的案例——掉
落的蜘蛛 309
8.8 三角形網格形狀類 311
8.8.1 三角形索引數組類——btTriangle IndexVertexArray類 311
8.8.2 層次包圍結構三角形網格形狀類——btBvhTriangleMesh Shape類 312
8.8.3 層次包圍結構三角形網格形狀類的案例——波動的水紋 313
8.9 交通工具類 316
8.9.1 交通工具類——btRaycastVehicle類 317
8.9.2 交通工具的案例——移動的小車 318
8.10 固定三角形網格形狀類 324
8.10.1 固定三角形網格形狀類——
btGImpactMeshShape類 324
8.10.2 固定形狀物體案例 325
8.11 軟體 327
8.11.1 軟體幫助類——btSoftBody
Helps類 327
8.11.2 軟布案例 328
8.11.3 三角形網格軟體案例 331
8.11.4 繩索軟體案例 334
8.12 光綫投射迴調結構體 336
8.12.1 光綫投射迴調結構體
ClosestRayResultCallback 336
8.12.2 光綫投射的案例——鏇轉
光綫 337
8.13 小結 339
第9章 骨骼動畫 340
9.1 自己開發骨骼動畫 340
9.1.1 骨骼動畫的基本原理 340
9.1.2 開發步驟 343
9.1.3 機器人模型在地麵上運動時的問題 348
9.2 ms3d文件的加載 351
9.2.1 ms3d文件的格式 351
9.2.2 將3ds Max動畫文件轉換為ms3d文件 355
9.2.3 Java語言加載ms3d文件案例的開發 359
9.2.4 C 語言加載ms3d文件案例的開發 372
9.3 自定義格式骨骼動畫的加載 373
9.3.1 bnggdh文件的格式 373
9.3.2 Bnggdh類 376
9.3.3 加載bnggdh文件的案例 377
9.4 小結 379
0章 必知必會的開發技術—— 遊戲開發小貼士 380
10.1 3D拾取技術 380
10.1.1 3D拾取案例效果與基本
原理 380
10.1.2 開發步驟 382
10.2 多點觸控 386
10.2.1 多點觸控案例效果與基本
原理 386
10.2.2 開發步驟 387
10.3 多鍵監聽 389
10.3.1 案例效果與基本原理 389
10.3.2 開發步驟 390
10.4 小結 392
1章 讓應用運行更流暢——
性能優化 393
11.1 著色器的優化 393
11.1.1 計算量與
全新正版 OpenGL ES 3x遊戲開發 下捲 吳亞峰 下載 mobi epub pdf txt 電子書
全新正版 OpenGL ES 3x遊戲開發 下捲 吳亞峰 pdf epub mobi txt 電子書 下載