作者: 吴亚峰 责编: 张涛 分类: 软件开发 > 移动开发 软件开发 > 游戏设计与开发 > OpenGL ES
《OpenGL ES 2.0游戏开发(下卷):高级特效和典型案例》共分12章,内容按照必知必会的基础知识、基于OpenGL ES 2.0实现基本特效,以及真实大型游戏案例的顺序进行详细讲解。第1章介绍如何通过顶点着色器实现酷炫效果,包括飘扬的旗帜、扭动的软糖、展翅飞翔的雄鹰、吹气特效等。第2章介绍程序纹理、数字图像处理技术、分形着色器、粒子系统火焰特效等。第3章介绍模拟现实世界的一些光学效果,如反射、折射、凹凸映射、高真实感地形等。第4章介绍投影贴图、平面阴影、阴影映射、阴影贴图、聚光灯高级光源、高真实感水面倒影等光影效果。第5章游戏开发中的物理学,介绍包括AABB包围盒、穿透效应、粒子系统以及弹簧质点模型等。第6章介绍3D游戏开发中经常使用的3D物理引擎jBullet、Bullet,各种物体形状的碰撞以及NDK下Bullet物理引擎的使用。第7章介绍3D游戏开发中常用的骨骼动画技术。第8章介绍包括3D拾取、多点触控以及多键监听等技巧。第9章讨论3D游戏开发中的一些性能优化问题。第10章~第12章用3大案例,如火力篮球、虚拟停车场、WebGL模拟飞行把所学知识贯穿起来,达到了学以致用的目的。
  《OpenGL ES 2.0游戏开发(下卷):高级特效和典型案例》内容丰富,从基本知识到高级特效,从简单的应用程序到完整的3D游戏案例,适合不同需求、不同水平层次的各类读者。特别是移动游戏开发者、程序员,以及大专院校相关专业师生的学习用书和培训学校的教材。 更多>>
目 录

第1章 顶点着色器的妙用 1
1.1 飘扬的旗帜 1
1.1.1 基本原理 1
1.1.2 开发步骤 2
1.2 扭动的软糖 4
1.2.1 基本原理 4
1.2.2 开发步骤 5
1.3 风吹椰林场景的开发 6
1.3.1 椰子树随风摇摆的基本原理 6
1.3.2 开发步骤 7
1.4 展翅飞翔的雄鹰 10
1.4.1 基本原理 10
1.4.2 开发步骤 11
1.5 二维扭曲 13
1.5.1 基本原理 13
1.5.2 开发步骤 14
1.6 吹气膨胀特效 16
1.6.1 特效基本原理 16
1.6.2 特效开发步骤 17
1.7 OpenGL ES 1.x与OpenGL ES 2.0实现方案的对比 18
1.8 本章小结 19

第2章 片元着色器的妙用 20
2.1 程序纹理技术 20
2.1.1 砖块着色器 20
2.1.2 沙滩球着色器 22
2.2 数字图像处理 23
2.2.1 卷积的基本知识 23
2.2.2 平滑过滤 24
2.2.3 边缘检测 25
2.2.4 锐化处理 26
2.2.5 浮雕效果 26
2.2.6 图像渐变 28
2.3 分形着色器 28
2.3.1 曼德布罗集简介 29
2.3.2 曼德布罗集着色器的实现 29
2.3.3 将曼德布罗集纹理应用到实际物体上 31
2.3.4 茱莉亚集着色器的实现 32
2.4 体积雾 33
2.4.1 基本原理 33
2.4.2 体积雾开发步骤 34
2.5 粒子系统火焰的开发 36
2.5.1 火焰的基本原理 36
2.5.2 火焰的开发步骤 38
2.6 本章小结 44

第3章 真实光学环境的模拟 45
3.1 反射环境模拟 45
3.1.1 案例效果与基本原理 45
3.1.2 反射环境开发步骤 46
3.2 折射环境模拟 48
3.2.1 案例效果与基本原理 48
3.2.2 开发步骤 49
3.3 色散效果的模拟 50
3.3.1 案例效果与基本原理 51
3.3.2 开发步骤 51
3.4 菲涅尔效果的模拟 52
3.4.1 案例效果与基本原理 52
3.4.2 菲涅尔效果开发步骤 53
3.5 凹凸映射 54
3.5.1 案例效果与基本原理 54
3.5.2 法向量纹理图的生成 55
3.5.3 案例的开发 58
3.6 真实感很强的地形 61
3.6.1 真实感地形的基本原理 62
3.6.2 真实感地形的开发步骤 62
3.7 本章小结 65

第4章 阴影及高级光照 66
4.1 投影贴图 66
4.1.1 投影案例效果与基本原理 66
4.1.2 开发步骤 67
4.2 阴影的重要性 69
4.3 平面阴影 71
4.3.1 平面阴影案例效果与基本原理 71
4.3.2 平面阴影开发步骤 72
4.4 阴影映射 74
4.4.1 阴影映射案例效果与基本原理 75
4.4.2 距离纹理图的生成 76
4.5.3 阴影场景的绘制 81
4.5 阴影贴图 83
4.5.1 阴影贴图案例效果与基本原理 83
4.5.2 阴影贴图开发步骤 84
4.6 聚光灯高级光源 85
4.6.1 聚光灯高级光源案例效果与基本原理 85
4.6.2 聚光灯高级光源开发步骤 86
4.7 光线跟踪 87
4.7.1 光线跟踪案例效果与基本原理 88
4.7.2 光线跟踪开发步骤 91
4.8 真实感水面倒影 100
4.8.1 水面倒影的基本原理 101
4.8.2 水面倒影的开发步骤 102
4.9 本章小结 107

第5章 让游戏更真实——游戏开发中的物理学 108
5.1 碰撞检测基本技术 108
5.1.1 AABB包围盒的基本原理 108
5.1.2 AABB包围盒的计算 109
5.1.3 AABB包围盒的碰撞检测 110
5.1.4 一个AABB包围盒的案例 112
5.1.5 旋转后的AABB包围盒 113
5.1.6 AABB包围盒的使用要点 117
5.1.7 OBB包围盒 117
5.2 穿透效应 118
5.2.1 案例的运行效果与基本原理 118
5.2.2 具体开发步骤 119
5.3 粒子系统 119
5.3.1 案例运行效果与基本原理 119
5.3.2 CPU版案例的开发 120
5.3.3 GPU版案例开发步骤 122
5.4 弹簧质点模型模拟旗帜 123
5.4.1 弹簧质点模型基本原理 123
5.4.2 弹簧质点模型案例的运行效果及开发步骤 124
5.5 弹簧质点模型模拟球网 133
5.5.1 弹簧质点模型的基本原理 133
5.5.2 弹簧质点模型的案例的运行效果及开发步骤 133
5.6 本章小结 135

第6章 游戏的心脏——物理引擎 136
6.1 物理引擎很重要 136
6.1.1 什么是物理引擎 136
6.1.2 常见的物理引擎 136
6.2 JBullet物理引擎概览 139
6.2.1 基本的物理学概念 139
6.2.2 JBullet中常用类的介绍 140
6.3 箱子相互碰撞的案例 147
6.3.1 案例运行效果及准备工作 147
6.3.2 案例的基本框架结构 148
6.3.3 常量类——Constant 149
6.3.4 3D场景渲染类——MySurfaceView 149
6.3.5 水平地面——TexFloor类 151
6.3.6 箱子——TexCube类 152
6.4 复合碰撞形状的使用 153
6.4.1 案例运行效果 153
6.4.2 立方体圆柱复合形状——CubeCylinder类 154
6.5 凹凸地形的案例 155
6.5.1 案例运行效果 155
6.5.2 地形类——LandForm 156
6.6 任意形状物体的碰撞 157
6.6.1 案例运行效果 157
6.6.2 加载物体类——LoadedObjectVertexNormal 157
6.6.3 加载物体刚体类——LoadRigidBody 158
6.7 铰链关节 159
6.7.1 铰链关节的基本知识 160
6.7.2 铰链关节案例的运行效果 160
6.7.3 铰链关节旋转角速度的计算 161
6.7.4 3D界面渲染类——MySurfaceView 162
6.8 滑动关节 164
6.8.1 滑动关节的基本知识 164
6.8.2 案例效果图 165
6.8.3 3D界面渲染类——MySurfaceView 165
6.9 六自由度关节 168
6.9.1 六自由度关节的基本知识 168
6.9.2 六自由度关节案例的运行效果 169
6.9.3 人偶类——Doll 170
6.9.4 拾取时采用的点对点关节 171
6.10 交通工具 174
6.10.1 交通工具开发要点 174
6.10.2 交通工具案例的运行效果 176
6.10.3 3D场景渲染类——MySurfaceView 176
6.10.4 汽车类——Car 178
6.10.5 汽车绘制类——VehicleDraw 182
6.11 Bullet物理引擎概览 183
6.11.1 Bullet物理引擎案例的运行效果 184
6.11.2 3D场景渲染类——GL2JNIView 184
6.11.3 本地方法声明及动态库加载类——JNIPort 186
6.11.4 初始化及渲染函数文件——main.cpp 187
6.11.5 水平地面类——TexPlane 189
6.11.6 箱子类——TexCube 192
6.12 Bullet软体 193
6.12.1 Bullet软件案例运行效果 193
6.12.2 初始化及渲染函数文件——main.cpp 194
6.12.3 软体类——SoftCloth 195
6.13 本章小结 197

第7章 让游戏主角的动作更丰富——骨骼动画 198
7.1 自己开发骨骼动画 198
7.1.1 骨骼动画的基本原理 198
7.1.2 骨骼动画开发步骤 201
7.1.3 机器人模型在地面上运动时的问题 206
7.2 ms3d文件的加载 210
7.2.1 ms3d文件的格式 210
7.2.2 案例的开发 213
7.3 本章小结 227

第8章 必知必会的开发技术——游戏开发小贴士 228
8.1 3D拾取技术 228
8.1.1 3D拾取案例效果与基本原理 228
8.1.2 开发步骤 230
8.2 多点触控 234
8.2.1 多点触控案例效果与基本原理 234
8.2.2 开发步骤 235
8.3 多键监听 237
8.3.1 案例效果与基本原理 238
8.3.2 开发步骤 238
8.4 本章小结 240

第9章 让应用运行更流畅——性能优化 241
9.1 着色器的优化 241
9.1.1 计算量与计算频率相关的问题 241
9.1.2 其他需要注意的问题 242
9.2 纹理图的优化 243
9.3 3D图形绘制的优化 244
9.3.1 CPU阶段的优化 244
9.3.2 几何阶段的优化 245
9.3.3 光栅化阶段的优化 247
9.3.4 尽量减少状态的变化 247
9.4 本章小结 247

第10章 综合案例一——火力篮球 248
10.1 游戏背景及功能概述 248
10.1.1 游戏背景概述 248
10.1.2 游戏功能介绍 248
10.2 游戏的策划及准备工作 250
10.2.1 游戏的策划 250
10.2.2 Android平台下游戏开发的准备工作 250
10.3 游戏的架构 252
10.3.1 各个类简要介绍 252
10.3.2 游戏框架简介 254
10.4 公共类BasketBall_Shot_Activity 255
10.5 辅助界面相关类 261
10.5.1 主菜单界面CaiDanView类 261
10.5.2 设置界面ShengyinKGJiemian类 265
10.5.3 关于界面GuanYuView类 268
10.5.4 记录界面JiLuView类 271
10.5.5 数据库相关类SQLiteUtil 275
10.6 游戏界面相关类 277
10.6.1 游戏界面绘制类GLGameView 277
10.6.2 着色器程序管理器类ShaderManager 290
10.6.3 添加刚体进物理世界类TianjiaBody 291
10.6.4 添加胶囊刚体进物理世界类JiaoNangTianjiaBody 291
10.6.5 篮球控制类BasketBallForDraw 292
10.6.6 纹理矩形绘制类WenLiJuXing 293
10.7 游戏中着色器的开发 295
10.7.1 纹理的着色器 295
10.7.2 光照着色器 295
10.7.3 影子着色器 297
10.7.4 仪表盘背景着色器 299
10.7.5 篮网着色器 299
10.8 游戏的优化与改进 300

第11章 综合案例二——3D虚拟停车场 301
11.1 游戏开发背景及功能概述 301
11.1.1 游戏开发背景 301
11.1.2 游戏功能介绍 301
11.2 游戏的策划及准备工作 303
11.2.1 游戏的策划 303
11.2.2 Android 平台下游戏开发的准备工作 304
11.3 游戏的架构 305
11.3.1 各个类简要介绍 305
11.3.2 游戏框架简介 308
11.4 常量及公共类 308
11.4.1 游戏主控类GameActivity 309
11.4.2 游戏常量类Constant 312
11.5 界面相关类 313
11.5.1 游戏欢迎界面类WelcomeView 313
11.5.2 主菜单类MainInterSurfaceView 315
11.5.3 选择界面类SelectVehicleLevelView 319
11.5.4 游戏界面类GameSurfaceView 323
11.6 交通工具相关类及接口 334
11.6.1 交通工具接口Vehicle 335
11.6.2 交通工具类Car_01 335
11.7 物体绘制相关类 340
11.7.1 纹理矩形绘制类TextureTextangle 340
11.7.2 交通工具绘制类VehicleDraw 342
11.7.3 路障类Roadblock 343
11.7.4 停车点类ParkPlace 344
11.7.5 关卡加载及绘制类LevelLoad 345
11.7.6 路面绘制类TexFloor 346
11.7.7 动态按钮类Button 348
11.7.8 方向盘类Streering 349
11.7.9 控制部件绘制类Control 352
11.8 游戏中的着色器开发 353
11.9 游戏的优化与改进 355

第12章 综合案例三——WebGL模拟飞行 356
12.1 游戏背景及功能概述 356
12.1.1 游戏背景概述 356
12.1.2 游戏功能介绍 356
12.2 游戏的策划及准备工作 357
12.2.1 游戏的策划 358
12.2.2 Web 平台下游戏的准备工作 358
12.2.3 Obj模型加载工具介绍 359
12.3 游戏的架构 361
12.3.1 游戏中各个类简要介绍 361
12.3.2 游戏框架简介 362
12.4 游戏公共函数介绍 363
12.4.1 工具函数文件GLUtil.js 363
12.4.2 矩阵操作函数文件MatrixState.js 365
12.5 山地控制及绘制相关函数 366
12.5.1 无边界地形的控制及绘制原理 366
12.5.2 无边界山地地形绘制函数文件MountainMap.js 368
12.5.3 单位山地地形绘制函数文件MountainDraw.js 369
12.6 物体控制相关函数介绍 370
12.6.1 碰撞检测策略讲解 370
12.6.2 飞机绘制及控制文件Airplane.js 371
12.6.3 飞机绘制及控制文件Meter.js 375
12.6.4 爆炸动画绘制函数文件BoomPlay.js 376
12.7 物体绘制相关函数介绍 377
12.7.1 山地绘制函数文件Mountain.js 377
12.7.2 水面绘制文件WaterRect.js 379
12.7.3 纹理矩形绘制文件Rectangledraw.js 380
12.7.4 其他物体绘制文件ObjObject.js 381
12.8 游戏页面文件planeGame.htm介绍 382
12.9 游戏中运用的着色器介绍 386
12.9.1 普通物体着色器 386
12.9.2 山地地形着色器 388
12.9.3 水面矩形着色器 391
12.10 游戏的优化与改进 392



欢迎投稿 职场/创业方向. 邮箱wangfzcom(AT)163.com:王夫子社区 » [PDF电子书] OpenGL ES 2.0游戏开发(下卷):高级特效和典型案例 PDF下载

点评 0

评论前必须登录!

登陆 注册