上一篇我们说了下Profiler分析器的基本情况,接下来看看具体的分析器。
Rendering分析器长这个样子,它下面的4个小分类数据我们已经在Stats统计面板介绍过了。
再来回顾一下这几个参数。
- Batches
批处理次数,可以把它当作Draw Call的次数。 - SetPass Calls
场景中调用Shader中Pass的次数,一个Pass表示GPU一次完整的渲染(即一个完整的渲染流水线),与材质球的种类密切相关 。 - Triangles
三角面片数,对应Stats面板的Tris。 - Vertices
顶点数,对应Stats面板的Vert。
再来看看Rendering分析器的详细信息。
现在我们来测试一下动态批处理,然后看看Rendeing分析器。
咱们先新建一个空场景,将摄像机的Clear Flags设为Solid Color,平行光的Shadow Type设置为No。
然后新建5个Cube(一定要是Cube哈,不能去创建Sphere,因为动态批处理要求网格的顶点属性规模要小于900,什么意思呢?比如shader中使用了顶点位置、法线和纹理坐标3个顶点属性,那么要想让模型能够动态批处理,它的顶点数目不能操作300。简单的说,就是如果模型顶点数过高,Unity就不能对这个模型进行动态批处理)
再来看看静态批处理。
把那5个Cube删除掉,然后新建5个Sphere(注意:这次是Sphere了哈)。运行情况如下图。
然后把五个物体全部勾选上静态Static,再运行测试。可以看到静态批处理能极大降低Draw Call次数。
批处理除了会占用更多内存外,还有其他缺点,具体见这篇文章。
至于第4行Instancing是什么,可参考这篇文章,英语好的可以看原文。
顺带安利自己一波的小站哈。