UWA支持了Unreal项目的性能测评后,我们收到了一些开发者的细致反馈和建议,目前我们的开发小队正如火如荼地支持和完善中。今天先安利两个新功能:GPU检测和重要参数解析,帮助大家快速定位性能瓶颈,下面小编带大家一一详述。
GPU功能
1、OverDraw
OverDraw功能主要用于统计场景中不透明和半透明物体渲染时,屏幕上每个像素被渲染的次数越多,则表明GPU的开销越大。如下图所示,第一排为当前场景渲染屏幕截图,第二排为对应的OverDraw可视化结果,颜色越亮的区域代表像素被渲染的次数越多。
结合游戏截图以及OverDraw可视化结果,我们不难发现,场景中火焰粒子特效的对应区域OverDraw较高,这是因为粒子系统通常由多层半透明Billboard叠加渲染而成,那么我们可以快速定位场景中造成OverDraw较高的物体,并可针对地对其进行优化。
此外,我们还对OverDraw进行了量化统计,包括项目测试中的总填充数峰值、总填充数均值、填充倍数峰值和填充倍数均值。总填充数表示采样结果中像素被渲染的总次数;填充倍数表示采样结果中平均每个像素被渲染的次数。通过填充倍数均值的大小,我们可以衡量OverDraw总体的开销。
上图中显示2.6x表示在游戏运行过程中,场景中的每个像素平均每帧被渲染2.6次。根据我们对不同项目长期优化积累的经验,对于移动平台该值控制在3.0较为合适。如果高于该值,建议开发者对项目的OverDraw进行针对性优化。
同时,我们统计了单像素填充峰值等数据,并展示了其在游戏运行过程中的走势曲线,如下图所示:
点击该曲线,可以查看对应值,并定位其对应采样帧的截图可OverDraw可视化结果,进而更快速地定位造成OverDraw峰值的物体。
2、Mipmap
Mipmap功能主要用于统计场景中不透明物体渲染时,材质中使用的纹理被采样的Mipmap层级(即LOD层级)数。纹理采样的Mipmap层级数越大,说明该纹理渲染到屏幕时占据屏幕像素相对于其分辨率较少,造成的内存浪费较大。
下图是游戏运行过程中,采样不同Mipmap层级像素占总像素数的比例走势曲线。第一排和第二排图像分别显示了渲染屏幕场景和对应场景中物体使用纹理的Mipmap层级数。
在第二排图中,黑色部分表示使用原始纹理大小进行渲染的像素,绿色、黄色和红色分别表示使用1/2、1/4和1/8大小进行渲染的像素。蓝色和紫色分别表示使用2x和4x(即拉伸2倍和4倍)进行渲染的像素。点击该曲线可查看该采样帧的数据统计,以及对应的测试场景和Mipmap可视化结果,从而快速定位纹理使用过大的场景物体,并针对性地对其进行优化。
重要参数
重要参数是UWA性能测评报告中的重点功能。经过大量的定量实验和归纳总结,我们发现了一些极具代表性的函数,通过分析这些函数的运行趋势并优化,可以达到快速提升性能的目的。在目前的版本中,我们展示了Tick Time函数的具体性能堆栈。
研发团队可以详细地查看游戏线程Tick各个函数中,对蓝图的Tick函数进行调用的时间开销,包括总耗时、自身耗时和调用次数等。选中子函数,可以通过图表直观地查看其运行走势,进而快速定位蓝图性能瓶颈。我们也可以选择查看总体堆栈信息和指定帧的堆栈信息,从总体和微观上对性能的各个瓶颈严格把关。
如何使用UWA测评服务
用户注册登录UWA官网(www.uwa4d.com)后,在项目标签下“新建项目”,填写项目名称并根据测试的平台下载对应的SDK。根据提示集成SDK后编译生成测试包,即可坐等报告生成。
目前,UWA支持Unreal游戏/应用在iOS、Android和PC三大平台的性能测评,同时随着对Unreal引擎更深入的测试和研究,我们将探索更多性能参数的规律。在后续的研发中,我们会不断更新UWA的测评机制,力求为Unreal开发者提供更有针对性的分析和参考。
现在即可点击此处,了解Unreal的demo报告哦!