UGUI合批个人学习心得

        从目前学到的知识上看,合批就是最基础的条件就是需要贴图和材质相同,这两个一样才有可能合批,UGUI合批是以Canvas为单位的。

        UGUI的合批就是把某个Canvas下满足合批规则的UI控件的网格合并为一个大的网格,然后将这些网格合并在一起,调用一次Draw Call,然后提交给GPU进行绘制

       

一、先按Depth从小到大的顺序排序

Depth的算法可以看我后面的链接,简单来说就是逐个遍历Canvas下所有节点,每个节点去和自己上面的所有节点比较,如果和上面的节点都没相交那么自己的Depth就是0,如果有相交的情况,那么就是看和相交的那个节点是不是材质和贴图一样,如果一样那么Depth就和相交的节点一样,如果有材质或贴图不一样的,那么就比这个节点的Depth多1,然后取对比后这里面的最大值作为自己的Depth。ps:隐藏或者透明度是0的depth=-1

按照图示例子,最先开始Image1这个节点,他的上面没有其他节点,那个他自己Depth就是0。然后到Image2,上面只有Image1,有情况如下

1.这两个image没有相较,那么image2的Depth也是0

2.这两个image有相交,那么又有两种情况

        2.1 两个材质和贴图一样,那么image1和image2的Depth相等

        2.2 两个材质或贴图不一样,那么image2的Depth = Image1的Depth + 1

接下来到image3了,上面有image1和image2,比较方法和前面一样,就是看1和2有没有和自己相交,如果都没相交那么Depth就是0,如果有相交,那么就按照前面相交的情况来确定Depth,然后取最大值赋给自己。

各个节点的Depth计算完毕后,如果Depth一样,那么就比较material ID,如果material ID相同就比较texture ID,如果texture ID也想同就比较RendererOrder,也就是UI层级队列顺序,即Hierarchy面板上的顺序,所有排序都是从小到大排序。然后剔除Depth = -1的UI元素,得到Batch前的UI 元素队列,这个队列被称之为VisiableList

得到这个队列之后,就开始相邻节点看是否材质和贴图想同,如果相同那么这两个节点就能合批,如果不同就打断合批单独渲染了。

 这篇文章讲很详细,可以看这篇文章,我这里主要是做自己的知识点汇总
原文链接:https://blog.csdn.net/sinat_25415095/article/details/112388638

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401743.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何修复掉入水中的 iPhone 且不丢失数据

“最近我的 iPhone 15 进水了,苹果能修吗?” 将 iPhone 掉进水里是一场灾难。手机完全干燥可能需要一段时间。但无需惊慌,因为大多数情况下,进水损坏的 iPhone 都可以修复。本指南汇总了一个完整的解决方案,向您展示如…

从直播美颜工具到视频美颜SDK:实时美颜技术的实现与挑战

从最初的直播美颜工具到如今的高级视频美颜SDK,这一技术经历了快速的发展和演进。今天,笔者将讲解实时美颜技术的实现过程与其面临的挑战。 一、实时美颜技术的背景与需求 美颜技术不仅仅是对皮肤瑕疵的简单修饰,更涵盖了智能化的人脸识别、…

鸿萌数据恢复服务:SQL Server 中的“PFS 可用空间信息不正确”错误

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、网络及终端数据安全等解决方案与服务。 同时,鸿萌是国际主流数据恢复软件(Stellar、UFS、R-Studio、ReclaiMe Pro 等)的授权代理商,为专…

Sublime Text常用快捷键大全

Sublime Text 是一款功能强大且广受欢迎的文本编辑器,其丰富的快捷键支持使得开发者能够更高效地编写和编辑代码。以下是 Sublime Text 中一些常用的快捷键,帮助你更加高效地使用这款工具: 功能分类快捷键 (Windows)快捷键 (Mac)新建文件Ctr…

【二分查找】--- 二分模板总结

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 算法Journey 从本博客开始,博主将开始分享二分查找算法的相关知识。 🏠 朴素二分模板 --- 二分查找 📌 题目内容 二…

“失业浪潮中的转机:程序员自学AI绘画,打造副业黄金通道“

正文: 一、失业潮下的焦虑 近年来,随着互联网行业的快速发展,程序员这个职业在我国逐渐成为热门。然而,随着市场竞争的加剧,程序员们也开始面临失业的风险。小张,一名90后程序员,就在这波失业潮…

【Unity教程】使用 Animation Rigging实现IK制作程序化的动画

在 Unity 开发中,为角色创建逼真且自适应的动画是提升游戏体验的关键。在本教程中,我们将结合 Animation Rigging 工具和 IK(Inverse Kinematics,反向运动学)插件来实现程序化的动画。 视频教程可以参考b战大佬的视频 …

notepad++安装HexEdit插件

notepad安装HexEdit插件 打开notepad,选择插件—>插件管理 在这里找到HexEdit点击安装就可以 点击完,notepad会自动重启,重启完成就安装好了

(24)(24.3) MSP OSD(二)

文章目录 前言 3 OSD面板项目配置 4 使用SITL测试OSD 5 使用任务规划器配置布局 6 视频 前言 ArduPilot 支持 MSP OSD 协议,该协议允许在 DJI 护目镜上显示飞行数据,就像许多自动驾驶仪中的外部 MAVLink OSD 或内部集成模拟 OSD 一样。如果配置了 …

打靶记录11——Billu_b0x

靶机: https://download.vulnhub.com/billu/Billu_b0x.zip难度: 中(两种攻击路线) 目标: 取得root权限 涉及的攻击方法: 主机发现端口扫描Web信息收集SQL注入(Sqlmap跑不出来)…

最新的APS高级计划排程系统推动的MRP供应链计划是什么?

在当下“内卷”的市场环境下,制造业的订单需求从过去大批量标准品生产已经演变成小批量、多订单的非标订单生产,这对制造业的供应链提出了更高的要求。为了应对市场实现产销平衡,中大型的企业都开始重视供应链的建设工作,以应对企…

win10配置pytorch环境+CUDA安装

步骤 1:更新显卡驱动 参考:如何在windows上 安装&更新 显卡的驱动_显卡驱动series和notebook-CSDN博客 进入英伟达官网:下载 NVIDIA 官方驱动 | NVIDIA 根据GPU类型选择对应的NVIDIA驱动,选好后点击“查找” 选择下载 GeFo…

记录|C#中panel与panel重叠显示问题

目录 前言一、问题在现二、方案解决三、效果展示更新时间 前言 参考文章: C#中winform中panel重叠无法显示问题的解决 一、问题在现 问题是我实现上图中效果,但是panel和panel的交界处放入其他组件后,会被部分覆盖【如下图示】 二、方案解决…

UniApp的神器-开启前端开发的全新篇章

本文介绍了DIYGW UniApp可视化工具作为一款低代码开发平台的特点和优势。该工具采用拖拽式设计和模块化开发,能够快速转化想法为可运行应用,并支持多种平台部署。它具有所见即所得的设计体验、丰富的组件库、前后台通信模块和跨平台兼容性等特点。使用该…

Astro + Cloudflare Pages 快速搭建个人博客

目录 1 选择 Astro 模板2 使用代码3 修改代码4 上传 Github5 部署 Cloudflare Pages6 后续修改 最近我搭建完了我的个人网站,很多人问是怎么做的,今天就来写一篇教程吧。 全部干货,看完绝对能成功搭建自己的网站!(还不…

服装行业的利器:RFID智能吊挂分拣系统

服装行业的利器:RFID智能吊挂分拣系统 服装业继续走粗放型老路的利润空间越来越小,行业内过度竞争利润降低,原料价格上涨导致成本上升。企业内部生产技术创新不足、工厂生产效率低,导致产出不够、货期竞争乏力。企业为了盈利生存…

【乐吾乐大屏可视化组态编辑器】动态图表

动态图表 在线使用:https://v.le5le.com/ 1. 建立数据列表 左侧选择数据栏,列表栏建立数据(变量)列表。具体查看: 数据绑定 2.绑定数据点 官方图表默认都开启了模拟数据,可以在数据-列表中取消“开启全…

SDL 锁屏视频卡死bug原因

最近在封装播放库,我用的是FFMPEGSDL库封装,这个库其实用起来不难,因为网上可供参考的资源也多,所以我自己也封装了一个,但是播放视频时只要我电脑一锁屏再重新打开,我靠视频卡住不动了,我调试看…

gitlab自动部署是什么 gitlab自动部署如何进行操作

在现代软件开发流程中,自动化部署是提高效率和确保软件质量的关键环节。GitLab作为一个强大的DevOps平台,提供了完整的自动部署工具,帮助开发团队实现代码从编写到生产的无缝转换。本文将详细解析GitLab的自动部署功能是什么,如何…

C语言典型例题37

《C程序设计教程(第四版)——谭浩强》 例题3.5 按照按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为 60~69分,D等在60分以下,成绩的等级从键盘输入 代码: //…