前 言
OpenGL ES 3.x游戏开发(下卷)
为什么要写这样一套书
随着智能手机硬件性能的不断提升,如“水果忍者”“*飞车”“狂野飙车8:极速凌云”等一批优秀的3D游戏娱乐应用在广大智能机用户间流行开来。与此同时,也带动了手机游戏产业逐渐从2D走向3D。但目前国内专门介绍3D游戏开发的书籍与资料都非常少,同时3D应用开发的门槛又比较高,使得很多初学者无从下手。根据这种情况,笔者结合多年从事3D游戏应用开发的经验编写了这样一套书。
了解一些3D技术的人员都知道,移动嵌入式平台上的3D应用开发主要是基于OpenGL ES的3个大版本,即1.x、2.0和3.x版本。OpenGL ES 1.x是较老的版本,渲染能力很有限,留给开发人员发挥的空间也很有限。而本套书主要介绍的OpenGL ES 3.x和OpenGL ES 2.0有很多相同之处,均采用可编程渲染管线,留给了开发人员充分的发挥空间。OpenGL ES 3.x新特性的添加使渲染的3D场景光影效果更加真实。
本书给出的实际案例涉及Android SDK、Android NDK、iOS、WebGL等主流平台,充分考虑了各个不同主流目标平台读者的需求。同时,本书中关于OpenGL ES 3.x可编程渲染管线着色器的知识与技术还可以通用于其他的很多移动嵌入式平台,包括MeeGO、PSP、PlayStation等。因此,学习各种移动嵌入式平台下高级3D应用开发的朋友都可以参考此书。
经过一年多见缝插针式的奋战,本套书终于交稿了。回顾写书的这一年,不禁为自己能最终完成这个耗时费力的“大制作”而感到欣慰。同时也为自己能将从事游戏开发近10年来积累的宝贵经验以及编程感悟分享给正在开发阵线上埋头苦干的广大开发人员而感到高兴。
贾岛的《剑客》一诗有言:“十年磨一剑,霜刃未曾试,今日把示君,谁有不平事?”从1998年首次接触Java与OpenGL起,到现在也是十几年了。笔者希望用十几年的知识和经验磨出的利剑能够帮助广大读者在实际工作中披荆斩棘、奋勇向前。
目 录
第1章 缓冲区对象
1.1 顶点缓冲区
1.2 顶点数组对象
1.3 一致缓冲区对象
1.4 映射缓冲区对象
1.5 其他缓冲区对象操作
1.6 帧缓冲与渲染缓冲
1.7 多重渲染目标
1.8 小结
第2章 顶点着色器的妙用
2.1 飘扬的旗帜
2.2 扭动的软糖
2.3 风吹椰林场景的开发
2.4 展翅飞翔的雄鹰
2.5 二维扭曲
2.6 吹气膨胀特效
2.7 固定渲染管线与可编程渲染管线实现方案的对比
2.8 小结
第3章 片元着色器的妙用
第4章 真实光学环境的模拟
第5章 阴影及高级光照
第6章 游戏开发中的物理学
第7章 3D物理引擎一——JBullet
第8章 3D物理引擎二——Bullet
第9章 骨骼动画
第10章 必知必会的开发技术——游戏开发小贴士
第11章 让应用运行更流畅——性能优化
第12章 杂项
第13章 Android NDK体育竞技 游戏——火力篮球
第14章 iOS休闲类游戏——方块翻转