基于OpenGLES的3D图形绘制管线优化问题

基于OpenGLES的3D图形绘制管线优化问题摘要:目前,在嵌入式设备上(如手机)的3D游戏开发总是基于一定的图形API来进行的。OpenGLES是为嵌入式系统而开发的3D图形绘制编程接口。在基于嵌入式的3D游戏开发过程中,由于硬件资源的相对不足,要得到绘制效果较理想的图形,就需要优化3D图形绘制过程。采用最新的图形管线理论,将OpenGLES的3D图形管线绘制过程划分为七个管线绘制部分(这七个部分归属于三个绘制阶段),分析每个绘制部分的主要工作,在此基础上针对各个阶段提出了相应的优化方法。关键词:OpenGLES;图形管线;嵌入式3D游戏中图法分类号:TP391.4文献标识码:A:1001-3695(2007)01-0215-03目前,在嵌入式设备上(如手机)的3D游戏开发总是基于一定的图形API来进行的,OpenGLES是其中性能卓越的一种API,它被广泛地使用在许多手机3D游戏中,如MotoGP2,SpeedGunStadium,GalacticRealms等。由于当前手机硬件性能相对较低,游戏总是会受到一些软硬件的限制,影响游戏画面的绘制效果和表现力。为了增强游戏的表现力,有必要对图形绘制过程的优化方法进行研究。本文在分析OpenGLES图形管线绘制过程的基础上总结了3D游戏开发过程中相应的优化方法。??1OpenGLES3D图形管线绘制过程??在现实世界中,管线概念的表现方式非常多,如输油管道、车间流水线、缆车等。一条管线通常包括多个阶段,无论其中某个阶段速度有多快,管线的整体快慢程度是由管线中最慢的那个阶段决定的。在图形绘制中也存在这种管线结构,最慢的管线阶段决定绘制速度,即图像更新速度。最慢的管线阶段称为瓶颈。瓶颈阶段会限制绘制过程中的整个吞吐量,从而影响总体绘制性能,因此它成为优化的主要对象。??图1是OpenGLES3D图形管线的绘制过程[1]。图中顶点部分是3D几何学所处理的顶点世界,像素部分是存储在帧缓冲里的像素世界。??CPU部分负责图形管线绘制过程中几何数据进出的转换。几何存储部分是连接设备驱动内存和图形内存的桥梁,它负责在处理过程中临时保存顶点的几何数据,为后面的处理作准备。OpenGLES的几何存储支持的数据类型有Byte,Short,Fixed,Float[2]。几何处理器部分负责顶点和纹理坐标的对应转换。几何处理器与光栅器之间存在着一种称之为浮点型数据处理管线的结构,通过它把各种数据类型的坐标值转换成内部浮点数形式。光栅器要将每一个三角形的边及其内部区域光栅化,同时要负责图形管线的像素插值。片段处理器就是分析像素片段的阴影、着色,然后把这些结果放入帧缓冲。纹理存储就是采用某种格式保存纹理数据。OpenGLES支持的格式有每像素8位,16位和32位[2]。纹理过滤采用LOD驱动。帧缓冲所处理的图形数据直接提供给LCD显示设备所用。外置存储芯片用于帧缓冲、VBO(VertexBufferObject)和纹理数据。OpenGLES的驱动程序为这三者在外置存储芯片上分配空间。??23D图形管线绘制的优化??3D图形管线绘制的优化包含两个主要步骤:①对管线的瓶颈位置进行定位;②以某种方式对该瓶颈阶段进行优化处理后,如果没有达到预期的性能目标,就继续重复步骤①。需要注意的是,瓶颈位置在优化之后有可能还处于优化前的位置。比较理想的状况是尽可能对瓶颈进行优化,保证瓶颈位置能够转移到另外一个阶段。在这个阶段再次成为瓶颈之前,必须对其他阶段进行优化处理。??2.1瓶颈定位??由于优化过程非常耗时,因此要对图形管线中的每个阶段进行最优化处理,这在实际操作中是不可行的。如果对每个阶段均进行优化,虽然可以提高一定的性能,但同时会花费开发人员大量的时间,甚至还可能牺牲绘制质量;此外对每个阶段都进行优化的另一个缺点,那就是不知道管线的哪个阶段是瓶颈。实际上可以通过对瓶颈阶段进行优化处理来大幅度提高绘制质量而不影响总体性能。??一种瓶颈定位的方法是进行大量的阶段测试。阶段测试的一个方法是每测试一次只影响一个阶段,如果总的绘制时间受到影响,就可以找到瓶颈位置;阶段测试还有一个方法,就是在保持被测阶段工作负载的情况下,减少其他阶段的工作量,如果性能没有变化,那么瓶颈所在的位置就是工作量没有改变的阶段。??因此瓶颈定位的方法可转换为阶段测试问题。为...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?