2D动画实现效率评测

简介: 2D动画实现效率评测

目前基于Flash平台,如果我们要在屏幕上实现动画,可以有哪些技术方案?当然,动画师们最先想到的是Flash传统的电影剪辑(MovieClip),这个曾经让动画制作变的如此简单的方式,如今却面临性能的严峻考验。为了实现高性能的动画,开发者们可谓各显神通,不过总结起来,实现方式基本围绕着位图操作,或基于Stage3D API进行。

那么这些方式的效率对比如何?让我们通过一个测试来看看实际效果吧。测试是通过由ESDOT提供的一个测试项目进行的(点击这里),原项目中已经包含了位图动画和Starling的部分,笔者做了进一步性能优化,并添加了ND2D和Genome2D的部分。

注:本数据仅供开发者参考,评测的目的也并非为了评价框架的优劣(用例有限,不足以覆盖所有情况)。从测试可以看出Stage3D的2D框架在处理这些动画时占据整体优势,而文中涉及的3个框架应该也是各有千秋,您可以根据自己项目的特性,人员安排,框架特性等多方面因素考虑,选择一个合适的框架。

测试项目下载:MobileRenderTests

测试的动画如上图所示:每一个小熊都在不断重复爬行动作,而每一个小熊同时也在向左或向右进行移动。

项目中引用的3个2D框架(Starling, ND2D, Genome2D)均采用GitHub上的最新版本(截止2012-6-20),测试分两个平台进行:Lenovo T410 (Windows 7) 和 iPad 1 (iOS 5)

编译采用Flex SDK 4.6+AIR SDK 3.3

2D框架版本:Starling为GitHub最新代码,介于1.1和1.2之间吧(下一个版本1.2)。ND2D也是GitHub最新代码,应该是接近1.0的版本了。Genome2D采用了Genome2D-v0.9.1.swc

衡量标准:满帧为30 FPS,(移动设备测试为正常打包模式,确保性能最佳)。

渲染方式说明:

  • MovieClip 用传统的Flash的电影剪辑来测试。
  • CacheSpriteSheetTest 这种方式是,在屏幕上添加N个Bitmap对象,然后不断替换这些对象的bitmapData属性,来实现动画 (运行)。
  • CopyPixels这种方式大家也比较熟悉,就是用类似Canvas绘图的机制,不断的在一个大Bitmap上用copyPixels方法绘制来完成动画过程 (运行)。
  • StarlingMovieClip 用Starling框架的MovieClip类进行测试 (运行)。
  • StarlingQuadBatch 用Starling框架的QuadBatch类进行测试(批处理模式) (运行) 。
  • ND2DSprite2D 用ND2D的Sprite2D进行测试(运行)。
  • ND2DSprite2DBatch 用ND2D的Sprite2DBatch进行测试(批处理模式)(运行)。
  • Genome2D 用Genome2D的动画机制进行测试 (运行)。

测试开始。

测试1:Lenovo T410 (Windows 7)

这是一台Lenove笔记本,性能中等,可开启硬件加速。测试结果:

注:这里使用Flash Builder创建的AIR项目,位图部分设置了wmode=gpu,这会对结果产生影响。用HTML包裹测试的数据,和本表会有些出入。因为每个机器的情况不同,您可以从上面的网页链接,打开HTML包裹的测试用例进行测试。


从这个结果可以看出,在PC上如果采用位图方式,copyPixes的效率比不断替换bitmapData的方式还是要高不少;而Stage3D的2D框架则整体都很给力,性能均超过位图动画方式。然而在3个2D框架中,Starling的MovieClip类显的逊色一些,虽然最易用,效率却不太满意,而Starling的QuadBatch则太给力了,在上面的图上占据性能最优。ND2D的批处理模式则显得逊色一些。Genome2D仍然表现的性能强悍,批处理能力和Starling相当。

测试2:iPad 1 (iOS 5)

渲染模式设置:位图渲染采用<renderMode>gpu</renderMode>模式,而3个2D框架则采用<renderMode>direct</renderMode>模式。


从这个图可以看出,在iOS上,使用替换bitmapData的方式,效率要高于copyPixels的方式(和PC测试结果正好反过来)。而Stage3D仍然是性能上的最佳选择,这个测试中Starling和Genome2D的性能均超越了传统位图模式。而ND2D则看起来并没有在移动设备上实现很好的优化,表现比较逊色。Starling的MovieClip模式在这次测试中也有不俗表现。而采用批处理模式后,Starling和Genome2D性能相当,两者占据了性能之王的宝座。

测试3:iPad 2 (iOS 5)

感谢AIR移动小组委员式神完成了这个评测!测试设备为iPad 2,打包模式为正常打包模式,最高性能,数据如下:


在这张图里,明显传统位图动画已经和Stage3D不是一个层次的了。而Starling的强悍表现实在是太赞了!现在已经没有理由再怀疑Starling的执行效率了。

附上这个评测的屏幕截图:


欢迎您使用其它设备,来补充这个评测。

—————————————————————————————————————————

2012-6-22日补充:修改测试用例后的测试结果

我们修改了素材和测试代码,新的测试用例与上面的测试用例有所不同。上面的用例是一个单一动画,而下面的用例将使用8个动画(小鱼的动画有7种,猴子的动画1种)。


同样附上测试项目源码:MobileRenderTestsV2

测试4:多动画+Lenovo T410 (Windows 7)

测试结果:


因为这些素材没有普通电影剪辑版本,所以未对传统MovieClip模式进行测试。而其它测试结果,则与第一次单动画测试的结果基本吻合。

测试5:多动画+iPad 1 (iOS 5)

测试结果:


在iPad 1上,多动画模式,copyPixels依然表现不佳。Starling则表现稳定,与第一次单动画测试基本一致。Genome2D则表现有所下滑。到目前为止,Starling的QuadBatch确实让我们印象深刻。正如Starling作者丹尼尔所说,你找不到在Starling中比QuadBatch更快的渲染模式了。

这里还有一份ESDOT5月份做的一次评测,显示haxe-nme在性能上表现非常突出,后面我们也会评测并分享相关数据:

http://esdot.ca/site/2012/performance-showdown-starling-vs-nd2d-vs-genome2d-vs-haxe-nme

—————————————————————————————————————————

2012-7-3日补充:新增ARE2D的测试结果

ARE2D是另一个优秀的Stage3D 2D引擎,而且是中国开发者的作品,目前也在逐步完善之中。基于上面的小鱼和猴子动画,我们测试了ARE2D的两个实现(普通实现和Batch模式),见下面的链接:

测试源码可以从这里下载: ARE2DTest

测试6:多动画+Lenovo T410 (Windows 7)

测试结果:


可以看出ARE2D在性能上优化的不错,批处理能力和Starling相当,而普通渲染模式要优于Starling的MovieClip和ND2D的Sprite2D。

测试7:多动画+iPad 1 (iOS 5)

测试结果:


这个结果显示ARE2D的批处理能力还是很出色的,在移动设备上也表现稳定,仍然和Starling的QuadBatch齐头并进。但普通模式下的移动设备渲染性能优化做的还不够好,得分虽然比ND2D好,但还是比Starling差很多。期待ARE2D能在这个部分做出更多的改善。

以上测试都未测试Android设备,感兴趣的朋友可以下载SWF文件,打包为APK进行真机测试。欢迎继续补充数据。

目录
相关文章
|
Linux 开发工具 Windows
改善编程体验: IdeaVimExtension介绍
# 改善编程体验: IdeaVimExtension介绍 ## 动机 Intellij IDEA是个非常优秀的开发环境,提供了相当好用的快捷键,让用户有机会脱离鼠标来使用IDE. 另外官方还提供了IdeaVim插件,熟悉vim的用户可以使用几乎与vim相同的方式操作IDEA的编辑器来编写代码.
4750 0
|
15天前
|
存储 人工智能 自然语言处理
效率翻倍!2024免费AI流程图生成工具评测
2分钟了解有哪些好用的AI流程图生成工具。
54 4
效率翻倍!2024免费AI流程图生成工具评测
|
2月前
|
数据可视化 搜索推荐
如何利用动画效果来提高用户对产品的记忆度?
利用动画效果提高用户对产品的记忆度,需要从多个方面入手
44 1
|
2月前
|
数据挖掘
如何评估动画效果对用户记忆度的提升效果?
评估动画效果对用户记忆度的提升效果,需要综合运用多种方法和指标,从不同角度进行考量
39 1
|
2月前
|
人工智能 自然语言处理 测试技术
文生图参数量升至240亿!Playground v3发布:深度融合LLM,图形设计能力超越人类
【10月更文挑战第29天】Playground v3(PGv3)是最新发布的文本到图像生成模型,其在多个测试基准上取得了最先进的性能。与传统模型不同,PGv3采用了一种全新的结构,将大型语言模型与图像生成模型深度融合,展现出卓越的文本提示遵循、复杂推理和准确的文本渲染能力。此外,PGv3还具备超越人类的图形设计能力,支持精确的RGB颜色控制和多语言理解,为设计师和创意工作者提供了强大的工具。尽管存在一些挑战,但PGv3的发布标志着文本到图像生成技术的重大突破。
52 6
|
5月前
|
开发者 图形学 UED
深度解析Unity游戏开发中的性能瓶颈与优化方案:从资源管理到代码执行,全方位提升你的游戏流畅度,让玩家体验飞跃性的顺滑——不止是技巧,更是艺术的追求
【8月更文挑战第31天】《Unity性能优化实战:让你的游戏流畅如飞》详细介绍了Unity游戏性能优化的关键技巧,涵盖资源管理、代码优化、场景管理和内存管理等方面。通过具体示例,如纹理打包、异步加载、协程使用及LOD技术,帮助开发者打造高效流畅的游戏体验。文中提供了实用代码片段,助力减少内存消耗、提升渲染效率,确保游戏运行丝滑顺畅。性能优化是一个持续过程,需不断测试调整以达最佳效果。
134 0
|
5月前
|
API UED 开发者
超实用技巧大放送:彻底革新你的WinForms应用,从流畅动画到丝滑交互设计,全面解析如何在保证性能的同时大幅提升用户体验,让软件操作变得赏心悦目不再是梦!
【8月更文挑战第31天】在Windows平台上,使用WinForms框架开发应用程序时,如何在保持性能的同时提升用户界面的吸引力和响应性是一个常见挑战。本文探讨了在不牺牲性能的前提下实现流畅动画与交互设计的最佳实践,包括使用BackgroundWorker处理耗时任务、利用Timer控件创建简单动画,以及使用Graphics类绘制自定义图形。通过具体示例代码展示了这些技术的应用,帮助开发者显著改善用户体验,使应用程序更加吸引人和易于使用。
90 0
|
6月前
|
图形学
Sora信息问题之使用数据驱动的物理引擎进行训练如何解决
Sora信息问题之使用数据驱动的物理引擎进行训练如何解决
37 0
|
8月前
|
机器学习/深度学习 人工智能 算法
仅靠开源数据复刻出LLaMA3指令学习效果,在线迭代RLHF全流程解决方案来了
【5月更文挑战第27天】在线迭代RLHF方案使用开源数据复现LLaMA3指令学习效果,提供了一种动态收集和更新模型的新方法,提升大型语言模型的性能。通过代理偏好模型模拟人类反馈,降低训练成本,促进技术民主化。虽然面临数据利用、探索与利用平衡等挑战,且需解决长尾分布数据处理问题,该方案已在多基准测试中展现优秀性能,为LLM训练提供高效途径。论文链接:https://arxiv.org/pdf/2405.07863
85 1
|
8月前
|
移动开发 测试技术 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【5月更文挑战第15天】 在移动开发领域,一个成功的Android应用不仅需要具备吸引用户的功能,更应提供流畅和高效的用户体验。随着技术的不断进步,开发者面临着将先进技术集成到现有架构中以提高应用性能的挑战。本文将深入探讨如何通过最新的Android框架和工具来优化应用性能,包括对UI的响应性、内存管理以及多线程处理等关键方面的改进,旨在帮助开发者构建出更加强大、快速且稳定的Android应用。