优化(3)——遮罩Mask,RectMask2D

Mask必须有一个Image,Mask会打断相邻的合批,mask下的和mask外的无法合批,mask会产生两个drallcall,最开始设置模板缓存的时候会产生一次drallcall,mask下子物体都都遍历结束,需要把模板缓存还原一下,又产生一次drallcall。

需要用到mask的时候会给mask添加一种特殊的材质,导致跟外部无法合批,

合批的条件,材质id一样, 图片id也一样,

开始mask之前,设置模板缓存,mask之后还原模板缓存,分别造成了一次drallcall

模板缓存需要隐藏的地方模板缓存为0,显示的地方模板缓存为1,渲染的过程中取出像素模板缓存为1渲染,为0不渲染。渲染的0和1存在每一个像素点上,模板缓存的操作是像素级的,一个像素像素的操作,

Mask下的物体,即使被遮挡,深度计算以及drallcall在用着,

Mask下的物体之前能进行正常的合批,Mask之间满足合批条件,他们之间的元素也是可以进行合批的,

隐藏物体的框不能和可以合批的物体重叠,

 

Mask2D子物体渲染区域的操作,不占用drallcall,Mask上的Img和Mask上的Img是可以合批的,  Mask2D下的与别的Mask2D下的物体无法合批

RectMask2D比Mask节省性能,RectMask2D是给子物体传一个区域,告诉子物体,那些点需要绘制,哪些点不需要,区域外的顶点不绘制,如果物体完全移出裁剪区域,不占用drallcall,不参与UI深度运算。RectMask2D的子物体和Mask的子物体没办法合批。

如果当前场景中只有一个mask,用RectMask2D比较省。

 

OverDrall

UI填充率问题,尽量减少UI之间的覆盖,减少重叠,

 

切九宫格优化填充率,减少Text的outline,shadow的使用,会大量增加顶点数4倍,用textmeshpro

主摄像机的设置,减少Unity默认天空盒的绘制,3D场景可以设置一个3D相机,一个2D相机。

Image的平铺模式Tiled会增加顶点数,正常情况下是8,使用平铺后变为变为了68=8+15*4,每增加一个图,增加4个顶点

Image组件,改用RawImage,把图标的模式改为Repeat

更改之后没有增加额外的顶点数

取消勾选

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值