书籍详情

OpenGL ES应用开发实践指南:Android卷

OpenGL ES应用开发实践指南:Android卷

作者:(美)Kevin Brothaler 著; 刘力平,苏统华 译

出版社:机械工业出版社

出版时间:2014-09-01

ISBN:9787111477822

定价:¥49.00

购买这本书可以去
内容简介
  《OpenGL ES应用开发实践指南:Android卷》是一本系统的OpenGL三维游戏和动态壁纸开发指南。由资深Android开发专家根据OpenGLES2.0版本撰写,不仅系统地讲解了OpenGLES的核心概念、技术,以及Android的图形机制,还通过大量案例讲解了在Android上进行OpenGLES开发的方法和技巧。《OpenGL ES应用开发实践指南:Android卷》分为两部分,共15章:第1章主要介绍开发环境的安装和配置,以及如何创建一个新的OpenGL项目和清空屏幕;第一部分(第2~9章)详细讲解创建一个简单的空气曲棍球游戏的触控、纹理和基本原理,包括如何成功地初始化OpenGL并将数据发送到屏幕上,如何使用基本的向量和矩阵数学创建三维世界,以及Android的许多特定细节,比如在Dalvik虚拟机和本地环境之间编码数据(marshaldata)以及如何在主线程和渲染线程间安全地传送数据。第二部分(第10~15章)详细介绍如何搭建三维世界中的效果,比如光照和地形渲染,以及如何创建可以运行在Android主屏幕上的动态壁纸。此外,附录还提供了正交投影和透视投影两个OpenGL常用投影类型背后的矩阵知识,以及一些实用的应用程序调试技巧。
作者简介
  KevinBrothaler移动软件开发商店Digipom的创始人,在Android开发方面有丰富的经验,并且管理着“LearnOpenGLES”(http://www.learnopengles.com),这是一套面向Android和WebGL的在线OpenGL教程。 刘力平,硕士,多年供职于知名国外移动终端设备企业,从事系统软件设计、开发工作,尤其在Android软件开发方面具有丰富的经验。自从Android平台发布以来,一直在从事Android系统开发方面的工作,是所在企业的AndroidFramework主题专家。他感兴趣的领域是Android框架设计、云计算应用、软件项目管理等。 苏统华,博士,哈尔滨工业大学软件学院硕士生导师,哈尔滨工业大学英伟达CUDA教学中心负责人。主要研究领域包括大规模并行计算、模式识别、物联网智能信息处理、智能媒体交互与计算等。他在手写汉字识别领域建立了里程碑式工作,论文他引约300次;他所建立的HIT-MW库,为全世界100多家科研院所采用;目前负责国家自然科学基金项目2项。2013年,他领导的研究组在文档分析和识别国际会议(ICDAR’2013)上获得手写汉字识别竞赛的双料冠军。2014年,他领导的研究组发布基于Android平台的手写输入法。著有英文专著《ChineseHandwritingRecognition:AnAlgorithmicPerspective》(德国施普林格出版社出版),出版相关译作5本(机械工业出版社出版)。
目录
推荐序
致 谢
前 言
第1章 准备开始 1
1.1 安装工具 1
1.2 创建第一个程序 3
1.3 初始化OpenGL 5
1.4 创建Renderer类 10
1.5 使用静态导入 12
1.6 小结 12
第一部分 一个简单的空气曲棍球游戏
第2章 定义顶点和着色器 14
2.1 为什么选择空气曲棍球 14
2.2 不要从头开始 15
2.3 定义空气曲棍球桌子的结构 16
2.4 使数据可以被OpenGL存取 18
2.5 引入OpenGL管道 20
2.6 OpenGL颜色模型 25
2.7 小结 26
第3章 编译着色器及在屏幕上绘图 27
3.1 加载着色器 27
3.2 编译着色器 29
3.3 把着色器一起链接进OpenGL的程序 33
3.4 做最后的拼接 35
3.5 在屏幕上绘制 39
3.6 小结 43
3.7 练习 43
第4章 增加颜色和着色 44
4.1 平滑着色 45
4.2 引入三角形扇 45
4.3 增加一个新的颜色属性 46
4.4 使用新的颜色属性渲染 52
4.5 小结 55
4.6 练习 55
第5章 调整屏幕的宽高比 56
5.1 宽高比的问题 57
5.2 使用虚拟坐标空间 58
5.3 线性代数基础 59
5.4 定义正交投影 62
5.5 加入正交投影 64
5.6 小结 67
5.7 练习 67
第6章 进入第三维 68
6.1 三维的艺术 68
6.2 从着色器到屏幕的坐标变换 69
6.3 添加w分量创建三维图 71
6.4 使用透视投影 72
6.5 定义透视投影 73
6.6 在代码中创建投影矩阵 75
6.7 开始使用投影矩阵 76
6.8 增加旋转 79
6.9 小结 81
6.10 练习 82
第7章 用纹理增加细节 83
7.1 理解纹理 84
7.2 把纹理加载进OpenGL中 85
7.3 创建新的着色器集合 90
7.4 为顶点数据创建新的类结构 91
7.5 为着色器程序添加类 95
7.6 绘制纹理 99
7.7 小结 101
7.8 练习 101
第8章 构建简单物体 102
8.1 合并三角形带和三角形扇 102
8.2 添加几何图形的类 104
8.3 添加物体构建器 105
8.4 更新物体 112
8.5 更新着色器 113
8.6 集成所有的变化 114
8.7 小结 119
8.8 练习 119
第9章 增加触控反馈:与空气曲棍球游戏交互 120
9.1 为Activity增加触控支持 120
9.2 增加相交测试 122
9.3 通过拖动移动物体 130
9.4 增加碰撞检测 132
9.5 小结 136
9.6 练习 137
第二部分 构建三维世界
第10章 用粒子增添趣味 140
10.1 为一个简单的粒子系统创建一组着色器 141
10.2 添加粒子系统 144
10.3 绘制粒子系统 148
10.4 扩散粒子 150
10.5 添加重力 152
10.6 用累加混合技术混合粒子 153
10.7 自定义点的外形 153
10.8 把每个点绘制为一个精灵 154
10.9 小结 156
10.10 练习 156
第11章 增加天空盒 157
11.1 创建天空盒 157
11.2 把立方体贴图加载到OpenGL中 159
11.3 创建立方体 161
11.4 增加天空盒着色器程序 163
11.5 在场景中加入天空盒 165
11.6 围绕场景移动相机 167
11.7 小结 169
11.8 练习 169
第12章 增加地形 170
12.1 创建高度图 170
12.2 创建顶点和索引缓冲区对象 171
12.3 加载高度图 173
12.4 绘制高度图 176
12.5 遮罩被隐藏的物体 180
12.6 小结 183
12.7 练习 183
第13章 点亮世界 184
13.1 仿真光照的效果 184
13.2 用朗伯体反射实现方向光 186
13.3 添加点光 192
13.4 小结 199
13.5 练习 199
第14章 创建动态壁纸 200
14.1 实现动态壁纸的Service组件 200
14.2 权衡系统的其余部分 207
14.3 小结 209
14.4 练习 209
第15章 采取下一步行动 211
15.1 展望其他平台 211
15.2 了解更高级的技术 213
15.3 与世界分享你的艺术视野 216
附录A 投影背后的矩阵数学 217
附录B 调试 223
参考文献 228
猜您喜欢

读书导航