注重体验与质量的电子书资源下载网站
分类于: 人工智能 设计
简介
OpenGL ES应用开发实践指南 豆 8.7分
资源最后更新于 2020-08-23 16:17:49
作者:博泽勒尔 (Kevin Brothaler)
译者:刘力平
出版社:机械工业出版社
出版日期:2014-01
ISBN:9787111477822
文件格式: pdf
标签: OpenGL Android 图像 计算机图形学 游戏 计算机 编程 苏统华
简介· · · · · ·
本书的主要内容:
在本书第一部分,会学习如何创建一个简单的空气曲棍球游戏,包括触控、纹理和基本原理。这个项目会教你如何成功地初始化OpenGL并将数据发送到屏幕上,以及如何使用基本的向量和矩阵数学创建三维世界。你也会学到Android的许多特定细节,比如在Dalvik虚拟机和本地环境之间编码数据(marshal data)以及如何在主线程和渲染线程间安全地传送数据。
在本书第二部分,你就可以在第一部分学习到的知识的基础上开始搭建三维世界中的效果,比如光照和地形渲染,接下来还会学习如何创建可以运行在Android主屏幕(home screen)上的动态壁纸。
本书的读者对象:
如果对在Android上开发更高级的图形程序感兴趣,本书就是为你所写的。本书假定你有一些编程经验,包括Java和Android的经验。
目录
《opengl es应用开发实践指南:android卷》
推荐序
致 谢
前 言
第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
推荐序
致 谢
前 言
第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