VR的风口,让UWA借你一双翅膀

VR的风口,让UWA借你一双翅膀

移动游戏中,场景切换偶尔卡顿、粒子播放稍作停留......隔着与屏幕十几厘米的距离,手游上的这些性能问题或许还能让大部分玩家勉强接受,但VR的目标是赋予玩家在一个亦幻亦真的世界中几近真实的感受。在这过程中,任何的晕眩不适感都可能使得整个产品的体验差强人意,于是几乎翻了三倍的帧率以及一些更高的性能标准往往让产品的优化之路遥遥无期。


UWA是什么

作为游戏和VR应用性能诊断与优化工具,UWA通过真人真机对项目进行测试,提供详尽的性能分析测评报告。该报告既能从宏观上分析项目运行时的整体趋势,又能深入剖析内存占用和具体资源的使用情况,详细诊断用户代码在项目运行时的效率,帮助研发团队高效定位问题根源,及时对瓶颈问题进行修复。

一、优化简单不盲目

我们以一个VR开源项目《Unity Chan》在Oculus Rift上的表现为例,通过UWA测评以后数据展现如下:

UWA Tech Doc

可以看到,UWA报告对项目性能中的几个关键指标均做了详细的检测,包括CPU性能开销、GC调用频率、渲染模块、动画模块、内存占用等。

UWA Tech Doc

在分析与建议一栏中,UWA基于对引擎的了解和多年的行业服务经验,对每一个测试模块的数据给出合理的评定,即刻提供有针对性的解决方案。

例如在上述Demo的动画模块功能中,我们对 MeshSkinning.Update的CPU消耗均值和 Animation.Update/Animator.Update作出评估的同时,也提出以下建议:

  • 研发团队在尽可能保证动画效果的同时,需要对模型的网格进行简化,建议研发团队尝试使用Unity Asset Store中的>SimpleLOD插件来对骨骼蒙皮网格进行简化;
  • (如果Animation.Update耗时较高)建议研发团队尽可能使用Mecanim动画系统,而非旧版Animation动画系统。一般来说,>Mecanim动画系统的运行效率相较于旧版动画系统要优秀很多;
  • (如果Animator.Update耗时较高)建议研发团队对于每个角色尽可能开启“Optimize GameObject”选项(Rig->Optimize >GameObject),开启该选项,引擎将会极大地降低Mecanim动画系统和MeshSkinning.Update的开销。

这些实在的建议能帮助开发者高效定位问题瓶颈。另外,UWA中一些高级检测功能如重要参数解析、代码效率等,筛选出了CPU占用最高,堆内存分配最大的函数等重要性能相关的信息,免去了逐帧检测的大量人力和时间成本,让开发事半功倍,项目性能更上一层楼。

UWA Tech Doc

二、让技术围绕内容跑

在UWA推出后,我们也惊喜地收到了一些制作精良的VR作品。测试之余,我们不禁感慨开发者的想法是取之不竭的金矿,对于VR的未来,我们寄予厚望。 UWA希望通过为开发者高效解决技术难题,慢慢拉近 Virtuality与 Reality的距离。

当然,VR领域同大家熟知的游戏领域大不相同,更多的参数需要探索、定制和重新衡量,比如运动加速度、相机转速、深度变化等等,这些都对VR体验的舒适度产生很大的影响。在后续的研发中,我们也会不断更新UWA的测评机制,为VR内容开发提供更有针对性的考量。

目前,UWA支持的主流VR发布平台有Oculus Rift, Google Cardboard, Gear VR。关于其他VR平台的支持,我们也欢迎VR设备厂商提出合作意向。