Unity UGUI如何计算drawcall

简介: Unity UGUI如何计算drawcall

看这个问题的时候,先来两张图,一样的ui,只是有一个遮挡为啥batches数据增加了1

我们用framedebug来慢放,你会发现

很明显的,文字覆盖了,打断了合批的问题,而原来是可以先渲染图片image,在渲染文字的

ugui合批原理

UGUI在合批之前,会根据ui的Depth、MatID 、ImgID、RendererOrder进行排序,之后对相邻的UI进行检测,判断ImgID和MatID是否相同,如果相同则可以进行合批处理,如果这两个UI的MatID和ImgID都相同,但是不连续,中间有其他不同MatID或ImgID的UI则会打断合批。


Depht排序:


   先筛选掉Depht为-1的值,这部分默认不渲染


   接着判断是否该元素底部是否有物体,如果没有则赋值Depth为0,如果盖住物体(这块是通过Mesh进行判断,判断Mesh是否相交)则等于底部盖住的UI元素中Depth最大的值+1、


   如果两个相邻元素通过了合批测试,则这两个相邻元素的深度值相等。


深度排序之后,就会根据matID进行排序,如果材质相同则对ImgID进行排序,如果也相同,那会根据inspection面板上的RendererOrder,最后真正进行UI的合批。

相关文章
|
6天前
|
图形学
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
8 1
|
6天前
|
数据可视化 大数据 API
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用
9 0
|
6天前
|
编解码 前端开发 Java
【推荐100个unity插件之12】UGUI的粒子效果(UI粒子)—— Particle Effect For UGUI (UI Particle)
【推荐100个unity插件之12】UGUI的粒子效果(UI粒子)—— Particle Effect For UGUI (UI Particle)
16 0
|
6天前
|
开发工具 图形学
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
【推荐100个unity插件之11】Shader实现UGUI的特效——UIEffect为 Unity UI 提供视觉效果组件
7 0
|
7天前
|
前端开发 图形学
技术经验解读:【Unity3d游戏开发】UGUI插件入门之游戏菜单
技术经验解读:【Unity3d游戏开发】UGUI插件入门之游戏菜单
|
2月前
|
编解码 前端开发 人机交互
【Unity 3D】UI系统中UGUI各个组件的详细讲解(附源码 超详细)
【Unity 3D】UI系统中UGUI各个组件的详细讲解(附源码 超详细)
123 0
|
10月前
|
图形学
|
11月前
|
前端开发 图形学 异构计算
Unity优化之Drawcall
Unity优化之Drawcall
341 0
|
11月前
|
图形学
unity如何计算drawcall
unity如何计算drawcall
144 0
|
11月前
|
前端开发 图形学 异构计算
unity优化之DrawCall
unity优化之DrawCall
194 0