欢迎来到天天文库
浏览记录
ID:39302598
大小:2.42 MB
页数:45页
时间:2019-06-30
《android_3D游戏开发教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、AndroidOpenGLES开发主讲人:杨丰盛华章培训网、[www.hztraining.com]华章培训网版权所有Android书籍Android应用开发书籍推荐技术支持(交流平台)课程计划课程概述功能演示课程需求分析课程目标第2页AndroidOpenGLES开发基础2:OpenglES概述13:离子系统24:TGA文件3:基本图形绘制14:变形25:多重视口4:3D图形绘制及透视15:多级纹理-二次几何体26:轨迹球5:光效16:曲面映射27:射线拾取6:材质17:多重纹理28:地形7:纹理及纹理映射18:反射-蒙板缓存29:天空盒8:隧道实例19:图像字体30:帧动画9
2、:雾气20:反走样31:骨骼动画10:2D文字显示21:缓存及片元测试32:碰撞检测11:飘动的旗帜22:贝塞尔曲面引擎实现(通过NDK来开发原生OpenGLES程序)12:蒙板23:BLT函数课程计划第3页构建AndroidSDK应用程序开发环境Eclipse(3.4及其以上版本)AndroidSDK(1.5以上)ADT(0.9以上)课程准备第4页OpenGLES概述OpenGL与OpenGLES概述OpenGL与OpenGLES区别OpenGLES开发框架GLSurfaceViewRenderer课程目标第5页OpenGL是由SGI公司开发的一套3D图形软件接口标准,由于具有
3、体系结构简单合理、使用方便、与操作平台无关等优点,OpenGL迅速成为一种3D图形接口的工业标准,并陆续在各种平台上得以实现。作为一个性能优越的图形应用程序设计界面(API)而适合于广泛的计算环境,从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。由于许多在计算机界具有领导地位的计算机公司纷纷采用OpenGL作为三维图形应用程序设计界面,OpenGL应用程序具有广泛的移植性。因此,OpenGL已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。(http://www.opengl.org/)OpenGL概述第6页OpenG
4、LESOpenGLES是专为内嵌和移动设备设计的一个2D/3D轻量图形库,它是基于OpenGLAPI设计的。OpenGLES1.0版基于OpenGL1.3,而OpenGLES1.1则是基于OpenGL1.5的。。Android平台在sdk2.0之前支持OpenGLES1.1,而在2.0以后的版本则支持OpenGLES2.0。OpenGLES概述第7页之所以会推出OpenGL-ES版本,主要是应对嵌入式环境和应用的要求。嵌入式设备一般工作于较恶劣的环境,包括:温度、湿度、振动、冲击、酸碱腐蚀等。例如:中国的酸雨气候就给很多室外电子设备带来了新的难题,中东地区的风沙也使得美军必须采用
5、更先进的非IT技术来保护他们的电子设备。需要人机界面的嵌入式应用,由于受环境受环境因素的影响,一般不能提供有缘电源,在有限的电能限制下工作,如何以更低的功耗完成人机交互界面,成为OpenGL必须要面对的问题,进而推出了OpenGL-ES标准。应该说在高效完成2D/3D界面的同时,达到了降低功耗的效果。OpenGL与OpenGLES区别第8页特别说明,在OpenGL发展到1.3版本时,OpenGLAPI不再采用纯软件的形势进行运算,开始与硬件图形芯片结合,出现了OpenGL硬加速的实现形式。例如:很多显示芯片厂商开始推出支持OpenGL硬加速的芯片,并与软件公司合作,实现OpenG
6、L硬加速。很多PC机的游戏会有加速软件,如实况足球,但目前这类基于PC加速软件还是通过软件形式进行优化,即优化了3D渲染引擎。OpenGL硬加速的优点在于,使CPU从繁重的图形运算工作中解脱出来,将运算重点集中于非界面应用,即嵌入式操作系统中优先级较高,但与界面无关的应用。GPU(图形处理器)与CPU(中央处理器)的分工合作,带来的就是高效率。OpenGL与OpenGLES区别第9页当然,事物均具有两面性,OpenGL-ES硬加速也有缺点,即增加了设备成本。这方面主要取决于其应用是否需要强劲的性能,即对人机交互界面的更高性能的追求。OpenGLES相对OpenGL删减了一切低效能
7、的操作方式,有高性能的决不留低效能的:没有double型数据类型,但加入了高性能的定点小数数据类型;没有glBegin/glEnd/glVertex,只能用glDrawArrays等。没有实时将非压缩图片数据转成压缩贴图的功能,程序必须直接提供压缩好的贴图;OpenGL与OpenGLES区别第10页OpenGLES1.x为固定渲染管线(Fixed_Function)而设计。子版本包括:1.0,1.1。1.0从OpenGL1.3裁减而来;1.1从OpenGL_1.5裁减而来。1.1
此文档下载收益归作者所有