Unity中的Mask组件增加DrawCall的原因

news2025/1/16 17:09:23

Unity中的Mask组件增加DrawCall的原因

简介

  • 常说mask组件不要常用,因为会增加drawcall,增加性能消耗;当然作为一个需要背八股文的同学而言,仅仅知道会增加性能消耗是不够的,所以这里简单看下其原理。

首先看下在Unity中实验的UI层级结构
在这里插入图片描述
通常,mask组件的使用,是在一个父节点上添加mask组件,然后可以对子节点进行裁剪,也就是子节点超出父节点的部分会被裁剪掉。

增加DrawCall

通常使用mask组件,最少会增加两个drawcall,还有4个的情况,下面介绍

增加两个drawcal的原因

- 首先,我们看下mask节点的实现原理,通过调试功能FrameDebug,可以发现,mask组件是使用了模板测试,这里将模板的使用参数ref设置为1

在这里插入图片描述

- 这里将模板的使用参数ref设置为1,绘制的条件是Equal,也就是模板值为1的地方才绘制,否者舍弃掉像素值

在这里插入图片描述

  • 最后,清空模板的ref值,Stencil Pass的值是0,也就是把模板的值设置为0

在这里插入图片描述
所以增加了两个Draw Call, 两个Draw Call来至———1、需要设置模板区域,2、第二个是需要清空模板值。

增加4个的情况

当这些ui可以合批的时候,中间增加一个使用mask组件的ui对象,会打断合批,所以原来的一个合批就会变为三个,再加上mask组件增加的两个dp,总共就是4个dp,如下所示

- 使用了mask组件

在这里插入图片描述

- 没有使用mask组件

在这里插入图片描述

总结

Unity中的UI组件使用了mask,至少会增加2个DrawCall,如果打断原本的合批,增加的Drawcall数量就会大于2个。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

监控系列(三)自定义DM采集项(exporter)+主机监控+grafana展示

一、概括 本篇不涉及达梦数据库搭建,操作环境需提前准备prometheus以及grafana的搭建,请跳转到前文查看 监控系列(一)DM8PrometheusGrafana搭建 监控系列(二)Dem对接Prometheusgrafana显示 自定义的采集…

基于数字孪生技术的智慧变电站Web3D可视化系统

今天为大家分享一个采用 数维图 的 Sovit3D 构建轻量化 3D 可视化场景的案例——数字孪生智慧变电站三维可视化系统。多维度呈现变电站场景,实现变电站运行态势的实时监测,运维设备、控制系统和信息系统的互联互通。加强变电站设备的全状态感知力与控制力…

03-MySQL查询数据

目录 DQL语言 单表查询 AS子句 DISTINCT关键字的使用 WHERE条件语句 逻辑操作符 比较操作符 BETWEEN范围查询 LIKE模糊查询 使用IN进行范围查询 NULL空值条件查询 连接查询(多表查询) INNER JOIN内连接 等值和非等值的连接查询 外连接 JOIN对比…

49.Python的while循环

49.Python的while循环 文章目录49.Python的while循环1. 什么是循环2. 什么是while循环3.课题导入4.while循环语法5.while循环执行流程6. if和while的区别7.课堂练习1. 什么是循环 【循环的百度释义】 特指运行一周而回到原处,再转。 反复地连续地做某事。 【循环…

新征程-猿如意试用一波!

猿如意传送门(必带) 猿如意下载地址:猿如意-程序员的如意兵器,工具代码,一搜就有 猿如意使用了几次了,今天来想分享一下我对于猿如意的使用感受吧!! 先说结论:值得每个程序员都在电脑里安装一…

MySQL的基础架构简述

文章目录一、一条SQL查询语句是如何执行的1、连接器2、查询缓存3、分析器4、优化器5、执行器一、一条SQL查询语句是如何执行的 开篇先上基本架构示意图🤗: 大体来说,MySQL可以分为 Server 层和存储引擎两部分。 Server 层包括连接…

大一作业HTML网页作业 HTML校园篮球网页作业(12个页面)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

前沿系列--简述Diffusion Model 扩散模型(无代码版本)

文章目录前言why扩散简述how如何扩散逆向过程小结流程训练过程预测过程总结前言 OK,今天的话,我们来搞一下这个扩散模型,来对这个玩意进行一个简单的了解,因为这个也是目前还算比较前沿的东西,也挺有用的,…

CSAPP-Lab2 BombLab解析

文章目录ReferencePhase1Phase2Phase3Phase4Phase5Phase6Part1Part2Part3Part4Part5Part6SecretBombSummaryReference GDB Command Reference - disassemble command:怎么使用GDB进行反汇编调试GDB X CommandGDB and Debugging:GDB上手教程和如何进行de…

大一作业HTML网页作业 HTML CSS制作二十四节气网页

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

背包问题:蛇优化算法(Snake Optimizer,SO)求解背包问题(Knapsack Problem,KP)提供Matlab代码

一、背包问题 1.1背包问题描述 背包问题(Knapsack Problem,KP)是一种重要的组合优化问题,在生活的许多领域都有着十分广泛的应用。背包问题可以描述为:给定一个背包和n种物品,其中,背包的容量为VVV ,第i …

Linux tar报错 无法 stat: 没有那个文件或目录 tar: 由于前次错误,将以上次的错误状态退出

解决方法 解决方式:-czf 的f必须在最后,因为f标识指定压缩后的文件名,f后面紧跟着的字符串就是你所指定的压缩后的文件名,所以f必须在后面 我记忆的方法:czf 吃早饭 举例:压缩多个文件、目录,压缩后得到的文…

Go语言GOPATH是什么

一、GOPATH的概念 GOPATH 是 Go 语言中使用的一个环境变量,它使用绝对路径提供项目的工作目录(也称为工作区), 是存放 Golang 项目代码的文件路径, GOPATH 适合处理大量 Go语言源码、多个包组合而成的复杂工程。 工作目录是一个工程开发的相对…

【机器学习】特征独立性检验-特征太多删特征-删who呢

总结 MvTest独立性分析方法——检验数值型特征与label是否有关系,删除与label无关(独立)的特征;corr协方差函数 相关性分析——找到数值型特征与数值型特征之间相关性高的数值型特征,然后删除(相关性高的数…

Xcode 导入共享代码文件却提示找不到其中方法或类型的原因与解决

文章目录 问题现象问题分析1. 原景重现2. 为什么找不到共享代码文件中的方法?3. 解决之道总结结束语问题现象 正所谓“一个好汉三个帮,一块篱笆三个桩”,开发一款优秀的 App 也绝对少不了第三方高质量代码的加持。 但有时候,我们明明已在 Xcode 中导入了第三方共享代码文…

微服务框架 SpringCloud微服务架构 多级缓存 46 JVM 进程缓存 46.3 初识Caffeine

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 多级缓存 文章目录微服务框架多级缓存46 JVM 进程缓存46.3 初识Caffeine46.3.1 本地进程缓存46.3.2 Caffeine 示例46 JVM 进程缓存 46.3 初…

openGemini v0.2.0版本正式发布:5大特性全面增强

摘要:openGemini是华为云面向物联网和运维监控场景开源的一款云原生分布式时序数据库,兼容InfluxDB API,具有高性能、高并发、高扩展等特点。openGemini是华为云面向物联网和运维监控场景开源的一款云原生分布式时序数据库,兼容In…

Docker redis Connection refused 问题排查

问题描述: 用 docker分别运行2个容器,一个spring boot应用,一个是redis 然后发现Spring boot项目无法访问redis。在本地启动Spring boot项目可以访问Redis,然后打成JAR直接启动也能访问。但是做成容器访问Redis却总是报错。 2022-12-16 06:…

RK3588 调试 phy

参考:Rockchip_Developer_Guide_Linux_GMAC_CN Rockchip_Developer_Guide_Linux_GMAC_Mode_Configuration_CN GMAC 接口电路 RK3588 芯片拥有 2 个 GMAC 控制器,提供 RMII 或 RGMII 接口连接外置的 Ethernet PHY GMAC 控制器支持以下功能: …

LSTM前向传播代码实现——LSTM从零实现系列(3)

一、前言 这个LSTM系列是在学习时间序列预测过程中的一些学习笔记,包含理论分析和源码实现两部分。本质属于进阶内容,因此神经网络的基础内容不做过多讲解,想学习基础,可看之前的神经网络入门系列文章: https://blog.…