android open gl真的比画布慢吗?

时间:2011-03-18 16:34:17

标签: android opengl-es canvas 2d sprite

即时测试android SpriteMethodTest,在默认设置画布上获得58fps,而开放gl在50-55fps之间,并且间隙随着更多精灵而变得更大。

我的印象是opengl比画布快,所以这是错的吗?或者我的手机有什么问题(htc欲望)?

http://code.google.com/p/apps-for-android/source/browse/trunk/SpriteMethodTest/

6 个答案:

答案 0 :(得分:7)

应该注意的是,SpriteMethodTest没有以最高效率使用OpenGL。每个精灵都使用自己的一组GL调用进行渲染,理想情况下,应该将很少的精灵分配到尽可能少的OpenGL调用中。

现在是一个精灵渲染表现枪战happening over at JavaGaming.orglibGDX是目前的领跑者。如果处理得当,OpenGL是绘制内容的最快方法。

答案 1 :(得分:1)

可能你没有正确测量它。你用了多少精灵? FPS可能与<相同。 10个精灵,但是一旦你开始增加精灵的数量,OpenGL系统肯定会超过Canvas系统。

有关此主题的更多信息,请参阅this

答案 2 :(得分:1)

您可能应首先分析您的代码,以确保它实际呈现在您花时间的地方。

答案 3 :(得分:0)

我...不能...注释...

虽然OpenGL也更快,但我总是很有趣。根据我对应用程序的体验,我发现GL比画布要快得多,但我使用的是所有定点数字。

答案 4 :(得分:0)

只有在没有GPU的模拟器或设备上才能实现

答案 5 :(得分:0)

刚刚在HTC Tattoo(1.6,可能没有GPU)上运行SpriteMethodTest,与Canvas相比,OpenGL非常糟糕。如果对于100个精灵我得到了超过30fps,而所有3个OpenGL方法都低于5 fps。目前我正在使用Canvas绘制我的游戏,但我从现在开始考虑使用OpenGL,因此我可以实现一个可能非常精灵的粒子系统。

现在我很困惑,如果我无法在使用OpenGL的低端设备上获得性能,我为什么要使用它呢?在大多数设备上情况并非如此吗?或者也许正如一些人所说的那样,SpriteMethodTest中使用的方法不是最好的(我还没看过代码)?