NME中不同渲染方式的性能测试

来源:互联网 发布:漂亮妈妈 知乎 编辑:程序博客网 时间:2024/05/17 09:20

原文链接:http://www.joshuagranick.com/blog/2012/10/04/nme-rendering-methods-benchmarked/

作者的测试是在一台Mac pro笔记本上分别分别针对本地目标和flash目标进行测试。

其分数是在稳定的60帧/秒速率下,同屏显示的精灵(bunnies)数量,数量越多性能越好。

本地目标采用GPU加速,而Flash则是软件渲染。对于Flash使用Stage3D进行硬件加速的测试,原文中也给出了一个链接:http://esdot.ca/site/2012/runnermark-scores-july-18-2012,从此文的分析,可以看出在绝大多数平台上,NME依然大比例胜出。

 

下面是测试结果:

本地目标(也就是cpp/mac)

  • 35000 bunnies using drawTiles

  • 10750 bunnies using drawTriangles (no alpha)

  • 9250 bunnies using drawRect (no alpha, scale or rotation)

  • 1750 bunnies using Bitmap

  • 1750 bunnies using drawTiles (without batching)

  • 700 bunnies using copyPixels (no alpha, scale or rotation)

Flash

  • 11750 using copyPixels (no alpha, scale or rotation)

  • 900 using Bitmap

  • 900 using drawTriangles (no alpha)

  • 100 using drawRect (no alpha, scale or rotation)

 

那么结论就是:

* 本地渲染方法中,毫无疑问最牛的就是NME独有的drawTiles方法,这个是经过硬件加速的。

* 另外的好消息是,drawTriangles和drawRect的本地运行速度也很不错,这样给我们带来更多的灵活性和兼容性,尤其是drawTriangles很多时候可以用来实现drawTiles无能为力的图形特效。

* 在基于软件渲染的Flash平台中,copyPixels是飞快的,不过copyPixels不能实现任何转换效果,应用场景很受限制。而在本地,则恰恰相反,copyPixels最慢,我想这是因为在本地copyPixels不能利用图形硬件加速,是纯cpu完成的,而其它几个方法在底层都是经过GPU加速的。

* Bitmap(也就是flash.display.Bitmap类)在两个平台的性能表现都居于中游,而且Bitmap是支持各种图形转换效果的,因此还是可以善加利用的。

原创粉丝点击