0871-28598494
13863548092
Android 3D 游戏的优化 王飞,黄小军** (北京邮电大学信息与通信工程学院,北京 100876) 5 10 15 20 25 30 35

Android 3D 游戏的优化 王飞,黄小军** (北京邮电大学信息与通信工程学院,北京 100876) 5 10 15 20 25 30 35 摘要:随着移动端系统的迅猛发展,移动三维应用技术也被越来越多的人关注。但是随着三 维应用的不断深入开发,游戏质量日新月异,对于移动端设备的要求也不断增高,因此 3D 游戏的优化成为一个重中之重的问题,如何做好优化,如何做好优化后的适配成为能否占领 大市场的关键。本文将从实际出发,对优化和适配问题提出一些合理的适用性强的解决方案。 从而使 Android 3D 游戏更具市场优势。 关键词:Android 3D;OpenGL ES2.0;优化 中图分类号:TP311.1 Optimization of Android 3D game Wangfei, Huang Xiaojun (Beijing University of Posts and Telecommunications,Institute of Communication Engineering ang Information,Beijing 100876) Abstract: With the rapid development of mobile systems in recent years, people pay more attention to mobile 3D technology.However, with the deepening of the three-dimensional application development, quality of the game advances, requests for mobile end devices also continues to grow.Therefore, to optimize the game to be a top priority 3D question, how do the optimization, how do the adaptation after optimization can be the key occupied a large market.This paper from reality, optimization and adaptation issues raised some reasonable adaptable solutions. So android 3d games more market advantage. Key words: Android 3D;OpenGL ES2.0;Optimization 0 引言 随着 Android 手机市场的日益扩大,手机硬件和软件获得前所未有的发展,越来越多的 人们已经把手机当作密不可分的娱乐伙伴,但是伴随而来的是人们对于画面效果越来越高的 要求,3D 效果应运而生。不得不说手机的发展已经度过了自己的萌芽期,迎接的将是全新 的挑战,而 3D 系列的软件应用,将会是这次挑战的全新标签。 Android 3D 应用开发过程中,不能一味追求效果,与此同时还要注意渲染的速度,在尽 可能保证渲染速度的前提下,提高应用质量。在本框架的开发中主要从两方面对渲染速度进 行了优化,下面进行分别的介绍。 1 渲染速度的优化 1.1 背面裁剪技术 所谓背面裁剪的含义是指渲染管线对构成立体物体的三角形图元进行绘制时,仅当摄像 机观察点位于三角形的正面情况才会绘制三角形,如观察点位于背面则不进行绘制,这样大 大提高了渲染效率[1]。 作者简介:王飞(1987-),男,研究生,无线网络与计算机应用 通信联系人:黄小军(1965-),女,副教授,主要研究方向:移动通信与计算机应用-1- 40 图 1-1 对比图 如图 1-1 所示,如果打开背面裁剪,正面能够看见的部分如第一个图形的上面前面右面, 都会被画出,而反面朝向的后面下面左面将不会被画出。对于大部分封闭的物体而言,采用 这种方式就实现了让管线对于不需要的部分不绘制,有助于提高渲染速率。若不打开背面裁 45 50 55 60 65 剪,如上图第二个图形所示,会对所有面进行绘制,被遮挡的面也被绘制了,但是仍旧被覆 盖住,看不到,这样凭空浪费了绘制效率,降低了帧速率。但是也要具体情况具体分析,例 如在三维应用中,我们经常会构建一个小箱子,他并不是静态的,而可能是旋转的,这时如 果我们开启了背面裁剪功能,很可能看到没有绘制的面,造成效果的穿帮。所以应该在开发 中根据实际情况来决定是否开启背面裁剪[2]。 介绍完背面裁剪的功能后,还要了解如何确定摄像机是位于一个面的正面还是反面。在 没有做特殊声明的情况下,OpenGL ES 规定当摄像机观察一个三角形面时,若三角形中三 个顶点的卷绕顺序是逆时针则摄像机观察其正面,反之观察反面。如图 1-2 所示: 图 1-2 卷绕示意图 背面裁剪的具体操作是,在将数据传入渲染管线.glEnable(GLES20.GL_CULL_FACE)打开, GLES20.glDisable(GLES20.GL_CULL_FACE)关闭。同时也可以使用 GLES20.glDisable(GLES20.GL_CW)更改为顺时针卷绕为正面。 1.2 渲染内容的选择 在进入三维画面之前,我们通过各种资源和数组的加载,已经把场景构建完成,各个物 体已经设定好各自的坐标位置。但是能够投影在手机屏幕上的景物是有限的,如果每帧都将 所有场景渲染出来,将会增加渲染的负担。因此我们可以将需要渲染的景物渲染出来,不需 要渲染的景物不再进行渲染。那么这个问题的难点就在确定如何确定哪些景物可能会被投影 到手机屏幕,需要及时被渲染出来。由前文可知,投影到手机屏幕的景物多少,是由视景体 决定的,而视景体的大小是由摄像机的位置,与观察点的位置决定的。当确定好摄像机和观 察点的位置后,视景体的大小就基本确定了。所以只需根据实际情况已经出现在视景体中的 图块中的景物渲染出就可以了[3]。如图 1-3 所示: -2- 图 1-3 示意图 70 75 80 85 90 当判断出不属于视景体的图块不再进行渲染。但是还会出现一个问题就是,不是摄像机 不是垂直照射的,那么不是距离摄像机固定距离的图块会被渲染,而是摄像机前方的图块多 一些,后面的图块少一些。这样在计算的时候,需要注意摄像机方向的转动。不同方向,例 如可能是如图 1-4 所示情况: 图 1-4 示意图 所以在应用运行中,要始终关注摄像机的转动位置,有摄像机当前的方向,确定确实需 要被渲染的图块,即时渲染出来。不需要的的图块不被渲染,这样做大大节省了渲染开销。 2 对于内存泄露的避免 在应用开发完毕后,进行测试时,最有可能出现的问题便是内存泄露的问题,内存泄露 也是最难排查和找出的问题。在这里将介绍下几种 android 开发可能出现的内存泄露的问题。 第一种内存上的引用没有释放掉。具体表现为强引用没有释放掉,如 Object o=new Object();Object o1=o;这种情况下,只要存在对 heap 中对象的引用,gc 就不会收集该对象, 只能通过置 null 来将对象释放掉。 第二种该释放的图片没有释放掉,所以在应用开发的过程中,一定要注意,一个 bitmap 的建立就要对应一个 bitmap 的释放,所以可以选择在合适的地方使用 bitmapObject.recycle() 对图片资源进行回收。 第三种自定义我们的应用需要
2、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
3、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
4、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Caco-2细胞模型的构建及胰岛素 _环糊精包合物的透膜能力研究.doc
2025-2026学年初三数学下学期二轮复习压轴题练习三含答案.docx
2025年甘肃卫生事业单位招聘考试(医疗卫生类/医学基础知识)历年参考题库含答案详解(5卷).docx
2025年甘肃卫生事业单位招聘考试(医疗卫生类/医学基础知识)历年参考题库含答案详解(5套卷).pdf
原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者
上一篇:3D模型优化插件百万面数模型轻松驾驭第2021-04-18期
下一篇:最后一页
Copyright © 2026 PA视讯集团科技有限公司 (PA Vision Group) 版权所有 PA视讯官网提供技术支持 备案号:鲁ICP备2022034756号-1