Unity Ui 合批学习

Unity Ui 合批学习
fastyUnity Ui 合批学习
Stats 统计面板
stats面板可以展示摄像机范围内,所有游戏对象元素的顶点、面片、批处理次数、CPU耗时等。
| 参数 | 说明 | 备注 |
|---|---|---|
| tris | 三角形面数 | |
| verts | 顶点数 | |
| Batches | 批处理个数 | |
| Saved By batching | 批处理被合并后的批处理个数 | 实际执行的批处理个数Draw Call |
| CPU | cpu执行耗时 | |
| FPS | 时间段执行次数 | 流畅度 |
天空盒子
新建一个场景发现,有1.7k的三角和5k的顶点。
++ 这些顶点和三角面其实来源于天空盒,天空盒也是一个模型。 ++
修改为适用纯色背景:
可以看到此时,降低到了2个三角面和4个顶点。如下图所示的分割情况.
批处理
我们最常看到的优化技术大概就是批处理了。批处理的实现原理就是为了减少每一帧需要的draw call数目。为了把一个对象渲染到屏幕上,CPU需要检查哪些光源影响了该物体,绑定Shader 被设置它的参数,再把渲染纹理发送给GPU。当场景中包含了大量对象时,这些操作就会非常耗时。一个极端的例子是,
如果我们需要渲染一千个三角形,把它们按一千个单独的网格进行渲染所花费的时间要远远大于渲染一个包含了一千个三角形的网格。在这两种情况下,GPU的性能消耗其实并没有多大的区别,但CPU的draw call数目就会成为性能瓶颈。因此,批处理的思想很简单,就是在每次面对draw call 时尽可能多地处理多个物体。
使用同一个材质的物体可以一起处理。对于使用同一个材质的物体,它们之间的不同仅仅在于顶点数据的差别。我们可以把这些顶点数据合并在一起,再一起发送给GPU,就可以完成一次批处理。
Batches和Saved by batching
- Batches 表示批处理次数
- Saved byBatching 表示节省的批处理次数
动态批处理和静态批处理
将物体标记为Static可以大幅优化批处理。—— 静态批处理
参考资料
评论
匿名评论隐私政策







