canvas教程

nexus one下Canvas和Opengl ES画图速度比较

字号+ 作者:H5之家 来源:H5之家 2016-10-02 13:00 我要评论( )

nexus one上Canvas和Opengl ES画图速度比较 正着手开发一款游戏,看了一些资料,(注意墙……)http://www.youtube.com/watch?v=U4Bk5rmIpicfeature=player_embe

nexus one上Canvas和Opengl ES画图速度比较
正着手开发一款游戏,看了一些资料,(注意墙……)
?v=U4Bk5rmIpic&feature=player_embedded

上面的视频有一段比较并总结了用Canvas 和 OpenGL ES两种方式render sprite的速度,
结论是
Sprite数量少的时候,几种方式速度一样。
随着sprite数量增加,Canvas的速度明显下降,opengl速度下降缓慢。
Canvas是用CPU,OpenGL明显是用GPU和显存

哥儿很好奇,用我的nexus one也来跑一跑测试(从svn中download下来 中的SpriteMethodTest项目)

首先介绍一下测试结果的分类方法:

这个测试可以控制
Sprite的数量
Sprite的是否运动
用Canvas画
用OpenGL ES画分三种方式:
1.Use Basic Vert Quads.       (下面缩写为OpenGL 1)
2.Use Draw Texture Extension  (下面缩写为OpenGL 2)
3. Use VBO Extension           (下面缩写为OpenGL 3)
注:后面的两种方式是要求OpenGL ES版本大于1.0才有的(nexus one的android 2.1上面的版本是1.1

OK,为了节约碳资源,不截图了……

========================================
测试一: 10个Sprite 不运动
Canvas:   142.85 fps
OpenGL 1: 34.48 fps
OpenGL 2: 33.33 fps
OpenGL 3: 33.33 fps

测试二: 10个Sprite 运动
Canvas:   90 fps
OpenGL 1: 32 fps
OpenGL 2: 33 fps
OpenGL 3: 32 fps

========================================
测试三: 100个Sprite不运动
Canvas:   111 fps
OpenGL 1: 43.47 fps
OpenGL 2: 43.47 fps
OpenGL 3: 41.66 fps
测试四: 100个Sprite运动
Canvas:  62.5 fps
OpenGL 1: 45 fps
OpenGL 2: 43 fps
OpenGL 3: 45 fps
=======================================
测试五: 500个Sprite不运动
Canvas:  27 fps
OpenGL 1:20 fps
OpenGL 2:23.8 fps
OpenGL 3:23.8 fps
测试六: 500个Sprite运动
Canvas:   25 fps
OpenGL 1: 20 fps
OpenGL 2: 23 fps
OpenGL 3: 22 fps
=======================================
测试七: 1000个Sprite不运动
Canvas:   15.38 fps
OpenGL 1: 10.5 fps
OpenGL 2: 12.82 fps
OpenGL 3: 14.7 fps
测试八: 1000个Sprite运动
Canvas:   15.15 fps
OpenGL 1: 10.3 fps
OpenGL 2: 12.65 fps
OpenGL 3: 14.28 fps

==================================

测试结果很奇怪,非常奇怪~
看点一: 用OpenGL 100个比10个速度快。
看点二: Canvas在Nexus one上战胜了OpenGL方式……

看到过文章说Nexus one上的gpu很<script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/themes/advanced/langs/zh.js"></script><script type="text/javascript" src="http://www.iteye.com/javascripts/tinymce/plugins/javaeye/langs/zh.js"></script>惨,所以拿高频的CPU来拟补不足,以为开玩笑呢。

我没有其它设备,有其它设备的兄弟也放上测试数据比较一下!

==================================
原来放到附件里的apk是没签过名的,不能用,sorry,我也是新手。
重新上传了一个,在我的手机里测试过能安装!!
大家也测试测试
================================

1 楼 fkpwolf 2010-03-29  

cool! Canvas指HTML5中的么?

2 楼 udvs 2010-03-30  

fkpwolf 写道

cool! Canvas指HTML5中的么?


囧,指的是Android 里面的Canvas

3 楼 fkpwolf 2010-03-30  

udvs 写道

fkpwolf 写道

cool! Canvas指HTML5中的么?


囧,指的是Android 里面的Canvas


:)

那是java和c/c++的比较吗?opengl es在android现在可以用ndk编程了

4 楼 smalllixin 2010-03-31  

fkpwolf 写道

udvs 写道

fkpwolf 写道

cool! Canvas指HTML5中的么?


囧,指的是Android 里面的Canvas


:)

那是java和c/c++的比较吗?opengl es在android现在可以用ndk编程了



这个只是java的,java用不同方式画图的效果~

android虽然是可以用ndk编程了,个人认为对于个人开发者来讲开发成本有点高。
java的性能也没有想象的那么糟,最主要还是看项目的规模和类型,搞游戏来讲大型的3D游戏有一些意义。

5 楼 mncc 2010-04-01  

问一哈楼主,这个包咋用啊?我安不上啊?直接往手机里边安的,用的是apkInstaller。。。我是直接把后缀名的zip去掉了。。。变成了SpriteMethodTest.apk。。。不对吗?

6 楼 BarryWei 2010-04-01  

lz感觉nexus one到底如何?我近期也打算没一个nexus one来着。

7 楼 mncc 2010-04-01  

BarryWei 写道

lz感觉nexus one到底如何?我近期也打算没一个nexus one来着。




整个HTC Desire吧,一样子的配置,就是把触屏键改成了实体键,轨迹球改成了像苹果一样的光感。主要是漂亮多了,HTC的sence好看多了,听说还支持Flash Player 10.1呢。四月份马上就出了。

8 楼 BarryWei 2010-04-01  

mncc 写道

BarryWei 写道

lz感觉nexus one到底如何?我近期也打算没一个nexus one来着。




整个HTC Desire吧,一样子的配置,就是把触屏键改成了实体键,轨迹球改成了像苹果一样的光感。主要是漂亮多了,HTC的sence好看多了,听说还支持Flash Player 10.1呢。四月份马上就出了。


价格上呢?有没有比较过?

9 楼 smalllixin 2010-04-01  

mncc 写道

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评