即时测试android SpriteMethodTest,在默认设置画布上获得58fps,而开放gl在50-55fps之间,并且间隙随着更多精灵而变得更大。
我的印象是opengl比画布快,所以这是错的吗?或者我的手机有什么问题(htc欲望)?
http://code.google.com/p/apps-for-android/source/browse/trunk/SpriteMethodTest/
答案 0 :(得分:7)
应该注意的是,SpriteMethodTest没有以最高效率使用OpenGL。每个精灵都使用自己的一组GL调用进行渲染,理想情况下,应该将很少的精灵分配到尽可能少的OpenGL调用中。
现在是一个精灵渲染表现枪战happening over at JavaGaming.org,libGDX是目前的领跑者。如果处理得当,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中使用的方法不是最好的(我还没看过代码)?