Unity图集优化原理

图集合批规则

计算层级号的算法:如果有一个UI元素,它所占的屏幕范围内(通常是矩形),如果没有任何UI在它的底下,那么它的层级号就是0(最底下);如果有一个UI在其底下且该UI可以和它Batch,那么它的层级号与底下的UI层级一样;如果有一个UI在其底下但无法与它Batch,那么它的层级号为底下的UI层级+1;如果有多个UI都在其下面,那么按前两种方式遍历计算所有的层级号,其中最大的那个作为自己的层级号。

合并时候:如果相邻间的两个批次正好可以Batch的话就会进行Batch。
Unity的UI渲染顺序的确定有2个步骤,第一步计算每个UI元素的层级号;第二步合并相同层级号中可以Batch的元素作为一个批次,并对批次进行排序;

例如1:Blue,Green,Orange三个图片,没有打包图集时候。


可以看到产生了三个DrawCall。原因:没有合并图集,需要CPU向GUI发送三次渲染请求。

例如2:Blue,Green,Orange三个图片,打包为一个图集

不相交情况
相交情况
可以看到无论是否相交与否,都只产生了一个DrawCall。原因:三个图片都在同一个图集当中,渲染时候合批到一起,统一由CPU向GPU发送一次渲染请求即可

例如3:Blue,Green,Orange三个图片,Blue和Green打包到同一个图集,而Orange打包到另外一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值