在UGUI的开发中我们常谈少用Mask,但是为什么少用,用了Mask又会影响什么呢,今天我们就来简单说说。 (一)被mask的元素为什么不能和外部元素合批 首先我们先来聊聊mask的实现,我们简单搭建一个测试场景 会发现多了一个mask会多出 ...
UGUI在合批之前,会根据ui的Depth MatID ImgID RendererOrder进行排序,之后对相邻的UI进行检测,判断ImgID和MatID是否相同,如果相同则可以进行合批处理,如果这两个UI的MatID和ImgID都相同,但是不连续,中间有其他不同MatID或ImgID的UI则会打断合批。 Depht排序: 先筛选掉Depht为 的值,这部分默认不渲染 接着判断是否该元素底部是 ...
2020-10-22 16:22 0 1329 推荐指数:
在UGUI的开发中我们常谈少用Mask,但是为什么少用,用了Mask又会影响什么呢,今天我们就来简单说说。 (一)被mask的元素为什么不能和外部元素合批 首先我们先来聊聊mask的实现,我们简单搭建一个测试场景 会发现多了一个mask会多出 ...
RectMask2D 那我们同比分析一下UI上常用的第二个Mask组件RectMask2D,等同于Mask的测试场景,我们测试单个mask2D开启和关闭对drawCall的影响。 开启前: 开启后: 我们可以发现DrawCall只增加了一个,因为内部的元素无法和外部进行合批增加了 ...
发现自己只是知道合批怎么用,是可以减少drawcall,但却不知道这些底层的机制是怎么样的,为什么可以减少drawcall?这可是犯了大忌!决定潜心学习研究一下,在此记录。 首先什么是合批? 合批,也可以叫做批量渲染。合批就是通过减少CPU向GPU发送渲染命令(DrawCall)的次数 ...
可以通过Frame debugger查看每个drawcall绘制了哪些东西 UGUI源码下载地址:https://bitbucket.org/Unity-Technologies/ui/downloads/ 本文测试环境:unity2018.2.9f1,基于Unity Editor (PC平台 ...
,的意思在 实时渲染 中,已动态合批为例(Dynamic Batch)一般理解为:为了减少 DrawCal ...
to different static batches unity有一个枚举会把不能合批的原因列出来 这是 ...
我们先搭建一个测试场景 我们可以看到4个but的话是进行合批只有2个DrawCall,当我们将第二个button的RectTransform的PosZ进行修改 可以发现DrawCall增加了4个,我们通过FrameDebug来查看合批的过程可以发现 ...
1.UI/Default代码研究 首先,我想到的是,既然是对图集纹理进行采样,而且又不能统一更改材质的纹理UV值,我们通常写的shader都是直接根据模型UV值对主纹理进行采样,那会不会是sha ...