《Android三维程式设计——基于OpenGL ES的图形应用程式设计》是2015年12月1日清华大学出版社出版的图书,作者是[美]Prateek Mehta。
基本介绍
- 书名:Android三维程式设计——基于OpenGL ES的图形应用程式设计
- 作者:[美]Prateek Mehta
- ISBN:9787302391371
- 定价:49元
- 出版社:清华大学出版社
- 出版时间:2015-12-01
- 装帧:平装
- 开本:16开
出版信息
作者:[美]Prateek Mehta 周建娟 译
定价:49元
印次:1-1
ISBN:9787302391371
出版日期:2015.12.01
印刷日期:2015.12.15
定价:49元
印次:1-1
ISBN:9787302391371
出版日期:2015.12.01
印刷日期:2015.12.15
内容简介
本书详细阐述了与Android移动设备以及OpenGL ES开发相关的基本解决方案,主要包括ES 2.0基础知识、3D建模、Blender软体套用、纹理和着色、Tank Fence游戏开发等内容。此外,本书还提供了丰富的示例以及代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
前言
本书引领Android应用程式开发者探讨互动式OpenGL ES 2.0应用程式的开发过程,并以此介绍3D图形渲染的基本概念。 OpenGL ES 2.0源自扩展型OpenGL 2.0 API,后者可视为桌面级3D图形渲染的常见API。事实上,ES 2.0也可视为该API的一种形式,并针对低功耗显示设备进行最佳化,例如移动设备和平板电脑。 OpenGL ES 2.0定义为一类可程式的图形渲染API,类似于浏览器中的WebGL,桌面级的Direct3D或OpenGL,以及Flash中的Stage3D。与OpenGL ES 1.x相比,该版本在渲染3D图形方面提供了更大的灵活性,并实现了期待已久的GLSL着色器语言。 基于Android的OpenGL ES 2.0可使程式设计师构建互动式/非互动式图形应用程式。
目 录
第1章 新型API的优势 1
1.1 图形渲染API 1
1.2 设备需求 2
1.3 创建OpenGL表面视图 4
1.4 确定OpenGL ES版本 4
1.5 创建OpenGL表面 13
1.6 ES 2.0的强大功能 18
1.7 关于开发人员 19
1.8 本章小结 22
第2章 预备知识 23
2.1 选择开发设备 23
2.2 选择输入 24
2.3 Tank Fence游戏 27
2.4 创建游戏选单 28
2.5 利用setContentView和addContentView创建视图 31
2.6 XML视图设计 35
2.7 与按钮和计数器类协同工作 37
2.8 通过触摸实现旋转操作 39
2.9 基于Android感测器的旋转操作 40
2.10 本章小结 45
第3章 ES 2.0基础知识 46
3.1 Android中的EGL 46
3.1.1 GLSurfaceView类 46
3.1.2 构建渲染器 47
3.2 渲染器执行绪 48
3.2.1 性能分离 48
3.2.2 执行绪安全 49
3.3 实现方法 49
3.3.1 渲染器解析 49
3.3.2 变化的GL表面 51
3.4 帧缓冲区 53
3.4.1 双缓冲区机制 54
3.4.2 清除颜色缓冲区 54
3.4.3 设定视口 55
3.5 GLSL 56
3.5.1 着色器程式 57
3.5.2 顶点着色器示例 58
3.5.3数据类型 60
3.5.4片元着色器示例 62
3.6GLPOINTBASIC应用程式 64
3.6.1使用loadShader方法 64
3.6.2属性 65
3.7绘製直线和三角形图元 68
3.7.1varying变数 69
3.7.2三角形图元 71
3.8标準化设备坐标系 72
3.93D转换 74
3.9.1转换类型 74
3.9.2矩阵类 76
3.10状态管理 79
3.10.1剔除表面 80
3.10.2深度测试 81
3.11本章小结 82
第4章3D建模 83
4.1通过glDrawElements绘製几何形状 83
4.1.1GLPOINTELEMENTS应用程式 84
4.1.2绘製直线和三角形图元 85
4.2Blender建模软体 89
4.2.1默认布局 90
4.2.2对象模式 91
4.2.33DView视窗中的面板 92
4.2.4平移对象 93
4.2.5使用套索选择命令 94
4.3游戏对象建模 97
4.3.1构建等边三角形 98
4.3.2tankFenceBlender档案 102
4.3.3导出格线数据 107
4.4基于OpenGLES的对象解释操作 109
4.4.1安装Perl 111
4.4.2下载解释器 115
4.4.3使用解释器 116
4.5使用格线数据 118
4.6Blender界面中的基本组件:截图效果 121
4.7本章小结 123
第5章纹理和着色 124
5.1顶点缓冲区对象 124
5.2对象缓冲区类型 124
5.3使用缓冲区对象 124
5.4使用颜色蒙版 127
5.5纹理 128
5.5.12D纹理 129
5.5.2使用纹理和颜色 135
5.5.3立方体贴图 136
5.5.4多重纹理 139
5.6基于着色器程式的光照效果 142
5.6.1光照模型 142
5.6.2光照模型 143
5.6.3顶点着色器中的光照方程 144
5.6.4顶点法线的插值计算 149
5.7本章小结 151
第6章游戏扩展 152
6.1确定渲染模式 152
6.2添加FIRE按钮 153
6.3平移和旋转的整合结果 157
6.4向Tank对象中加入Missile对象 159
6.4.1initMissiles方法 165
6.4.2更新飞弹对象的数组列表 167
6.5Enemy类 168
6.5.1生成敌方角色 169
6.5.2Enemy对象源位置的插值计算 171
6.6通过碰撞检测消除Enemy对象 174
6.7本章小结 178
·XII·
Android三维程式设计—基于OpenGLES的图形应用程式设计
·XIII·
目录