Unity_降低OverDraw提高性能
1.OverDraw : 重复绘制,即在一个已存在像素的位置再次绘制其他像素0。
Unity渲染时,渲染整个屏幕,该屏幕由数百万个像素组成。如果这些像素总被绘制了一次以上,那么就造成了OverDraw,导致GPU渲染压力增大。
这种情况最常见于透明几何体,因为首先绘制不透明世界,然后逐次将其与半透明对象混合绘制。
2. 填充率: Fill Rate(填充率)是指显卡每帧或者说每秒能够渲染的像素数。在每帧绘制中,如果一个像素被反复绘制的次数越多,那么它占用的资源也必然更多。
目前在移动设备上,FillRate 的压力主要来自半透明物体。因为多数情况下,半透明物体需要开启 Alpha Blend 且关闭 ZTest(深度测试)和 ZWrite(深度写入),同时如果我们绘制像 alpha=0 这种实际上不会产生效果的颜色上去,也同样有 Blend 操作,这是一种极大的浪费。
3、在Unity中,填充率并不能被直接统计到,但是我们可以通过查看来大致查看,但是Unity提供的查看OverDraw的视图其实是不太准确的,如果需要精确的查看的话,需要自己实现。
4、如何降低 OverDraw:
(1)尽量减少 alpha = 0 的资源的使用,因为这种资源也会参与绘制,占用一定的GPU。
(2)制作图片的时候,尽量使其排布紧凑,避免大面积透明。
(3)避免无用对象及组件的过度使用。

5、另外,游戏运行时导致手机发烫,主要就是CPU和GPU的占用率过高引起的,而填充率或者说是OverDraw过高,是导致GPU占用率过高的原因之一。
减少overdraw,一般出现在渲染模式为透明的场景中。在场景【scene】下拉列表中选择overdraw就能看见,越亮的地方就是overdraw最多的部分。
