上文提到不同UI之间的交叉重叠是产生OverDraw的主要原因。那么除此之外是不是还有别的影响呢,答案是肯定的,本文就做个简单的实验。
前提:
场景中没有skybox,去除所有摄像机效果,只有一个Canvas
问题:
1)场景里有三张Image,都没有打包Atlas,不存在重叠区域,有多少DrawCall?
2)场景里有三张Image,打包在同一个Atlas,不存在重叠区域,有多少DrawCall?
3)场景里有三张Image,打包在两个Atlas,不存在重叠区域,有多少DrawCall?
4)场景里有三张Image,都没有打包Atlas,互相重叠交叉,有多少DrawCall?
5)场景里有三张Image,打包在同一个Atlas,互相重叠交叉,有多少DrawCall?
6)场景里有三张Image,打包在两个Atlas,互相重叠交叉,有多少DrawCall?
猜想:
按照UGUI会自动合并同一Atlas的Sprite统一渲染的说法,我们猜想实验应该结果是3、1、2、3、1、2,那么事实是怎样的的呢?
结果: