简单粗暴的告诉你Unity绘制优化的原由---合批

文章探讨了Unity引擎中的动态合批机制,解释了如何通过图集优化减少CPU到GPU的数据传输,以及如何避免不同绘制导致的合批中断。层次顺序和材质差异会影响SetPassCall的数量,但不会打断图形的合批绘制。优化方法包括调整Hierarchy层级和使用统一材质。
摘要由CSDN通过智能技术生成

图集动态合批

图集
在这里插入图片描述

常直观的看到同一图集的sprite 在默认材质球的条件下Unity进行了动态合批
注意看 batches 此时只有一次
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
有四个 材质在使用,确调用了5次Pass通道,原则来讲一个shader中一个pass最好效率最高
原因:
在这里插入图片描述
两个Canvas 绘制 里面是TextMeshPro 和 Default UI 材质各调用 “1次”
在这里插入图片描述
这四个动态合批 用的都是 Sprite-Default 默认材质 SetPassCall “1次”

在这里插入图片描述
角色和敌人 本身 用同材质 SetPassCall 用同一个 但是因为 Trail Render的材质不同,所以又多了一次从中间中断 “3次”

以上就是 SetPassCall 5个的原由

Unity 绘制顺序是按照 Hierarchy 层级从上而下的这里有个注意的地方
在这里插入图片描述
敌人和角色都是使用精灵格式材质 按照Hierarchy绘制顺序他两的Pass是同一个 Trail 不是 所以这里有两个PassCall
在这里插入图片描述
下面在放一个敌人Pass就被Trail隔断了要再调用一次Pass变成了三次

在这里插入图片描述
hierarchy 不会打断合批绘制

总结优化方式

hierarchy 层级顺序影响材质SetPass Call数量,不会打断图形绘制的动态合批,但是中间插入不同绘制会打断合批。

材质球不会打断绘制合批,不同的绘制(图像数据CPU到GPU)交叉会打断合批。

打图集进行动态合批减少CPU向GPU发送图像数据(顶点数据,UV数据)绘制次数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值