Unity中的渲染分析工具
Unity内置了一些工具,来帮助我们方便的查看和渲染相关的各个统计数据。这些数据可以帮助我们分析游戏渲染性能,从而更有针对性进行优化。在Unity5中,这些工具包含了渲染统计窗口(Rendering Statistics Window)、性能分析器(Profiler),以及帧调试器(Frame Debugger)。需要注意的是,在不同的目标平台上,这些工具中显示的数据也会发生变化。
1.认识Unity 5的渲染统计窗口
Unity 5提供了一个全新的窗口,即渲染统计窗口(Rendering Statistics Window)来显示当前游戏的各个渲染统计变量,我们可以通过Game视图右上方的菜单中单击Stats按钮来打开它,如下图所示:
从图中可以看出,渲染窗口主要包含了3个方面的信息:音频(Audio)、图像(Graphics)和网络(Network)。我们在这里只关注第二个方面,即图像相关的渲染统计结果。
渲染统计窗口显示了很多重要的渲染数据,例如FPS、批处理数目、顶点和三角网格的数目等。下表列出了渲染统计窗口中显示的各个信息:
信息名称 | 描述 |
每帧的时间和FPS | 在Graphic的右侧显示,给出了处理和渲染一帧所需的时间,以及FPS数目 |
Batches | 一帧中需要进行的批处理数目 |
Saved by batching | 合并的批处理数目,这个数字表明了批处理为我们节省了多少draw call |
Tris和Verts | 需要绘制的三角面片和顶点数目 |
Screen | 屏幕的大小,以及它占用的内存的大小 |
SetPass | 渲染使用的Pass的数目,每个Pass都需要Unity的runtime来绑定一个新的Shader,这可能造成CPU的瓶颈 |
Visible Skinned Meshes | 渲染的蒙皮网格的数目 |
Animations | 播放的动画数目 |
帧调试器的调试面板上显示了渲染这一帧所需要的所有渲染事件,在本例中,事件数目为14,而其中包含了10个draw call事件(其它渲染事件多为清空缓冲等)。通过单击面板上的每个事件,我们可以在Game视图查看该事件的绘制结果,同时渲染统计面板上的数据也会显示成截止到当前事件为止的各个渲染统计数据。以本例为例,要渲染一帧共需要花费10个draw call,其中4个draw call用于更新深度纹理(对应UpdateDepthTexture),4个draw call用于渲染平行光的阴影映射纹理,1个draw call用于绘制动态批处理后的3个立方体模型,1个draw call用于绘制球体。
在Unity的渲染统计窗口、分析器和帧调试器这3个利器的帮助下,我们可以获得很多有用的优化信息。但是,很多诸如渲染时间这样的数据是基于当前的开发平台得到的,而非真机上的结果。