Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2|回复: 0
打印 上一主题 下一主题

论SurfaceView与GLSurfaceView的效率

[复制链接]

1198

主题

2060

帖子

7058

积分

超级版主

Rank: 8Rank: 8

积分
7058
跳转到指定楼层
楼主
发表于 2016-5-7 11:36:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

做游戏引擎总是倾向于使用OpenGL,这是为什么呢?本文就简单跟大家分析说明下。

       如今国外游戏基本上质量都很好,不管是从视觉上、操作上还是流畅度上,那么今天我们关注的是流畅度。

       首先有经验的游戏开发者,尤其是一直做2D游戏开发的童鞋门,从J2me到Android,很多做Android的都是从J2me过来的,那么对于J2me-3D开发的基本很少,原因不多说,对于Kjava的机器我也没什么再喷的,反正我是受够折磨了。

       很多开发者对外国的游戏狠感慨,为什么他们做的游戏都是那么流畅,不丢帧,其实很明确的跟大家说,他们的大部分游戏都是基于OpenGL进行的开发,不管是3D还是2D。下面详细说下原因:

       对于刚接触Android游戏开发的来说,首先印在心理的就是利用SurfaceView画布进行游戏开发(除3D游戏外),那么开发过程中,越来越多的开发者都开始对Android的运行内存产生怀疑(Android运行内存相对于Kjava的机器那可是大了很多),因为都开始再次关注内存的使用,动不动就卡,就OOM,~很经典的Error~

       一般2D游戏开发使用SurfaceView足够,因为它也是google专们扩展用于2D游戏开发的画布。但是很早前我做过测试:

       使用普通的游戏画布(Android中2D专用游戏画布)中进行绘制图片,然后在GLSurfaceView(Android中3D游戏专用画布)中渲染图片的对比中发现GLSurfaceView的效率是SurfaceView的30倍~呵呵,高了30倍的效率~这是什么概念,可想而知。GLSurfaceView的效率高主要是因为机器硬件的GPU加速,现在flash技术也有了GPU加速技术。

       下面总结一下:

       一般2D游戏使用SurfaceView足够,毕竟我之前公司做的网游就是用SurfaceView做的,很流畅,所以不要认为什么都要使用GLSurfaceView(OpenGL),而且   GLSurfaceView的弊端在于适配能力差,因为很多机型中是没有GPU加速的。关于GPU童鞋门不知道的自己百度,这里不多说了。

       不管是做什么游戏,对于开发者而言,流畅是最重要的;再好的游戏几帧左右,谁都哭。

       不管使用SurfaceView还是GLSurfaceView,只要内存优化做的好,都基本无差(排除2D\3D游戏差异)。希望不管当前你是否看了此文章想将当前的项目换个GLSurfaceView框架还是如何如何,我都希望你静下心来,好好的优化你的内存先,不要总把问题推到SDK和硬件上,毕竟google提供了那就肯定不会那么低效率的,否则人家也不会闲着没事给你整那么多事情来。

       对于初学者千万不要顾虑这些,对你来说,游戏的思想是最重要的,多做项目才是王道。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2025-12-15 02:07 , Processed in 0.011491 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表