文档章节

UGUI图片层级和渲染顺序的奇怪关系

m
 myctrd
发布于 02/27 18:47
字数 909
阅读 84
收藏 0

之前见别人的文章总是说,在Hierachy下,相同图集的图片要连续排列,这样Unity会对相同图集的图片进行合批,从而减少draw call。今天做了简单的试验发现情况并不是这么简单的。

第一种情况:

如上图所示,在Hierachy下图片层级从低到高分别是(p,+,+),得到draw call为2。

第二张情况:

如上图所示,在Hierachy下图片层级从低到高分别是(+,p,p),得到draw call为3。

第三种情况:

如上图所示,在Hierachy下图片层级从低到高还是(+,p,p),只不过我把p的图片由瓶子换成了一个鸡蛋,其实就是换了一个图集,得到draw call为2。

目前总结来的结论应该是这样的,如下图所示,A,B两张图应该是先渲染的,因为它们分别处于更远的depth,C是后渲染的,因为它处于更近的depth。但是A和B谁先渲染决定与它们使用的图集,这个优先级在我刚刚举的三个例子中应该是 瓶子图集 > 加号图集 > 鸡蛋图集。所以在下图中 A和B应该是先渲染A,所以渲染顺序是 A(瓶子) - B(加号) - C(瓶子),无法合批,一共三次draw call。但是如果把瓶子换成鸡蛋,那么A和B应该是先渲染B,所以渲染顺序是 B(加号) - A(鸡蛋) - C(鸡蛋),后两次鸡蛋可以合批,一共两次draw call。

但是在上图的情况下,我们稍稍改变B的pos.z(无论正负),会发现draw call会由3降到2,如下图。通过分析FrameDebug下的Draw Mesh发现,渲染顺序变成了B(加号) - A(瓶子) - C(瓶子),后两次瓶子可以合批,一共两次draw call。

我们再做一次试验,在加号的下面再放一张瓶子的图片,在所有图片z都是0的情况下有三次draw call,三次渲染结果如下:

如果改变加号图片的z,还是三次draw call,但是三次渲染的结果发生了变化,如下图:

结合上面两个例子可以粗略总结出,如果改变一个图片的z,它比所有Hierachy里在他下层的图片渲染顺序高,哪怕它的图集渲染优先级要低于其他图片的图集,但是如果遇到相互重叠图片,会由Hierachy下的顺序决定渲染顺序。

最后总结一下规律,如果相互重叠的图片,会由Hierachy下的顺序决定渲染顺序(不管任意图片的z)。不相互重叠的图片会由depth决定渲染顺序,同depth下的图片遵循一个默认的图集渲染的优先级决定渲染顺序(至于什么决定了不同图集的渲染优先级还不知道)。如果一个图片的z发生了改变,它会比所有Hierachy里在他下层的图片渲染顺序高(忽视depth和图集的渲染优先级)。只要是连续渲染顺序的同图集图片就会进行合批。

 

 

© 著作权归作者所有

上一篇: 六边形网格笔记
下一篇: C#弱引用
m
粉丝 0
博文 62
码字总数 21452
作品 0
浦东
私信 提问
加载中

评论(0)

UGUI_UI和特效结合使用问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wwlcsdn000/article/details/81319137 UGUI_UI和特效结合使用问题 一般我们会有UI、3D模型、粒子特效的穿插排...

那远远的云端
2018/07/31
0
0
Unity的UGUI调节层次而不影响位置

Hello,我是 KitStar。 早在之前就写了这个文章,但是之前样式太难看了。而且现在有了扩充。所以,从新整理,再使用MarkDown 来写。 哦,对了,在这里推销一下自己QQ讨论组 :559666429。大家...

KiTok
2017/12/06
0
0
UGUI 特效怎样在UI上裁剪

  刚好碰到有人问怎样把粒子特效放到 UI 上并且能正确被 Mask 裁剪, 首先想到给粒子效果的 Shader 添加模板模仿一般 UI 的模板方式, 应该就能正确裁剪了吧, 不过没那么简单, 我们看到在一般...

tiancaiKG
2019/12/24
0
0
如何快速优化手游性能问题?从UGUI优化说起

WeTest 导读 本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法。 在之前的文章《手游内存占用过高?...

依依言若
2016/12/08
0
0
实现新手引导简单遮罩(无需shader)

效果如下: 大部分教程都有shader实现遮罩,shader可以控制更好效果的遮罩。unity自带的功能也能实现简单的新手引导遮罩,只是unity自带的遮罩会有锯齿。之后再更新加shader的版本。 以下是具...

lisa0626
2018/04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

打造Worktile敏捷开发管理工具的思与惑

从2019年初,我们团队准备开发一款适合研发团队使用的敏捷开发管理工具,那时候我们也在思考,到底什么样的工具才算是优秀的研发管理工具,研发管理的场景、方法和流派有很多,市面上关于研发...

Worktile
5分钟前
5
0
Android知识体系总结2020之Android部分自定义View篇

1.自定义View需要具备的知识点 View坐标系 Android的角度与弧度 View绘制机制 View事件分发 Android动画机制 Paint类 Canvas类 Path类 贝塞尔曲线 ...... 2.自定义View的几种方式 《Android...

ClAndEllen
7分钟前
13
0
星云精准测试有力提升金融复杂系统的测试能效

随着国内大数据、云计算、人工智能等新技术的发展,银行业的前中后台正面临着全面改造,金融科技是业务转型发展的一个核心发力点。金融行业信息系统集中度高、规模庞大、多系统之间关联性强、...

星云测试
10分钟前
9
0
Leech for mac(轻量级mac下载工具) v3.14

Leech一个轻量级但功能强大的下载管理器。掌握你的浏览器下载,让你轻松下载,不再受浏览器限速带宽,以及下载多个数据,Leech让你最高最快的速度下载,不再受限于浏览器下载 软件特点 必须....

麦克W
14分钟前
12
0
js 迅雷 批量下载

参考 http://open.thunderurl.com/#/ 效果 点击下载按钮, 会弹出批量下载对话框 主要函数 function f2() { let link = [ // 'magnet:?xt=urn:btih:884DDE11B387DD22248B4F3......

阿豪boy
22分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部