当前位置: 首页 > news >正文

Unity 渲染顺序受哪些影响(相机depth、SortingLayer、Render Queue、透明)

目录

相机深度(Camera Depth)

Clear Flags

多相机渲染不同部分

SortingLayer

先后顺序

Render Queue

Render Queue的作用

Render Queue的分类

GeometryLast(值为2500)

渲染顺序总结


相机深度(Camera Depth)

  • 作用:相机的深度值用来确定多个相机之间的渲染顺序。深度值较低的相机先渲染,深度值较高的相机后渲染。
  • 应用场景:在使用多个相机的场景中,比如一个相机渲染3D场景,另一个相机专门渲染UI层。

在讲解这个上面应用之前需要先了解Clear Flag:

Clear Flags

"Clear Flags"是相机组件的一个设置,它决定了每次渲染之前相机如何清除其视口。这个设置主要用于确定在开始渲染当前相机的视图之前,应如何处理之前渲染的内容。这对于渲染的正确性和视觉效果都非常重要。

Unity提供了几种不同的Clear Flags选项,每种都有不同的用途:

  1. Skybox

    • 使用这个选项时,相机会在每一帧渲染之前使用当前的Skybox来清除视图。如果场景中没有Skybox,将使用默认的背景颜色。
    • 这是3D游戏中最常用的选项,特别是当场景有天空盒时。
  2. Solid Color

    • 这个选项会让相机用指定的单一颜色来清除其整个视图。
    • 它常用于需要单色背景的场景,或者在不使用天空盒的情况下。
  3. Depth only

    • 当选择这个选项时,相机只会清除深度缓冲区(Z-buffer),而不会清除颜色缓冲区。这意味着先前渲染的图像将保留在屏幕上,而新的渲染将在其上进行。
    • 这个选项通常用于多相机设置中,例如,一个相机渲染3D场景,另一个相机渲染UI层。
  4. Don't Clear

    • 选择这个选项时,相机不会清除颜色或深度缓冲区。这就意味着新的渲染将直接覆盖在先前渲染的内容之上。
    • 这个选项在特殊情况下使用,例如需要在多次渲染之间保留图像的后处理效果。

多相机渲染不同部分

在UI复杂的应用中,可能需要一个相机来渲染3D世界,另一个相机来渲染UI。通过设置不同的深度值,可以确保UI始终渲染在3D世界之上。

1. 创建并设置3D世界相机

首先,你需要一个相机来渲染3D世界:

  1. 在场景中创建一个新的相机(如果已经有一个默认相机,可以使用它)。
  2. 将这个相机的Clear Flags设置为Skybox(如果有天空盒)或Solid Color(如果没有天空盒)。
  3. 设置相机的Depth值为较低的值,例如0。这将是用来渲染3D场景的主相机。

2. 创建并设置UI相机

接下来,创建一个专门用于渲染UI的相机:

  1. 在场景中再创建一个新的相机。
  2. 将这个相机的Clear Flags设置为Depth only。这样,它就不会清除主相机的渲染结果,而只负责渲染UI元素。
  3. 设置UI相机的Depth值为比3D世界相机更高的值,例如1。这确保UI相机在3D世界相机之后渲染,从而UI元素会显示在3D场景之上。
  4. 设置UI相机的Culling Mask以仅渲染UI层(或者你放置UI元素的特定层)。这样,UI相机不会渲染3D世界中的对象。

3. 配置UI元素

确保你的UI元素(如Canvas)配置为使用UI相机:

  1. 选择或创建一个Canvas对象。
  2. 在Canvas的Render Mode属性中选择Screen Space - Camera
  3. 将UI相机分配给Canvas的Camera属性。

SortingLayer

它允许开发者控制2D对象(如Sprite和UI元素)的渲染顺序。Sorting Layer主要用于确定哪些对象应该先绘制,哪些对象后绘制,从而实现不同2D元素之间的正确层叠和遮挡关系。

(SortingLayer只针对于2D的物体)

同一SortingLayer下的还可以通过order In Layer来设置先后的顺序。

先后顺序

在不同Sorting Layer之间,渲染顺序是根据Sorting Layer在项目设置中的排列顺序决定的,列表中越上面的Sorting Layer越先渲染。

Order in Layer值较小的对象会先于值较大的对象渲染,从而在视觉上出现在后者的后面。

如果Sorting LayerOrder in Layer相同,在Hierarchy窗口中更靠下的对象会被渲染在更靠前的对象之上。

Render Queue

在Unity中,Render Queue(渲染队列)是一个用于决定材质和着色器在渲染过程中的顺序的属性。每个材质都有一个与之关联的Render Queue值,这个值决定了材质在渲染管线中的位置,从而影响渲染的顺序。

Render Queue的作用

  1. 决定渲染顺序

    • Render Queue值用于决定一个对象(及其材质)相对于其他对象被渲染的先后顺序。这对于透明度、遮挡和深度测试等渲染效果至关重要。
  2. 处理透明度

    • 对于透明物体,正确的渲染顺序尤其重要。透明物体需要在不透明物体之后渲染,以确保透明度和混合效果正确实现。

Render Queue的分类

Unity中的Render Queue被分为几个预设范围:

  • Background:这个范围用于背景元素,如天空盒。Render Queue值通常在1000以下。
  • Geometry:这是大多数不透明物体的默认队列。Render Queue值在2000左右。
  • AlphaTest:用于需要alpha测试的透明物体。Render Queue值在2450左右。
  • Transparent:透明物体的队列。这些对象需要在不透明对象之后渲染。Render Queue值通常在3000以上。
  • Overlay:用于在所有其他内容之上渲染的元素,如UI元素。Render Queue值在4000以上。

GeometryLast(值为2500)

  • 含义

    • “GeometryLast”是指Render Queue值为2500的分类,它标志着被视为“不透明”(opaque)的渲染队列的末尾。

透明物体的渲染

  • 当所有Render Queue值为2500或以下的物体渲染完成后,随后才开始渲染Render Queue值大于2500的透明物体。透明物体通常需要在不透明物体渲染完成后渲染,以确保正确的混合和遮挡效果。

渲染顺序总结

1.Camera Depth: 越小越优先
2.RenderQueue 2500以下
1. Sorting Layer/Order in Layer
1. 按照Sorting Layer/Order in Layer 设置的值,越小越优先
2. 无此属性,等同于 Sorting Layer=default ,Order in Layer=0 参与排序
2.RenderQueue 越小越优先
3.RenderQueue 相等,由近到远排序优先
3.RenderQueue 2500以上

相关文章:

Unity 渲染顺序受哪些影响(相机depth、SortingLayer、Render Queue、透明)

目录 相机深度(Camera Depth) Clear Flags 多相机渲染不同部分 SortingLayer 先后顺序 Render Queue Render Queue的作用 Render Queue的分类 GeometryLast(值为2500) 渲染顺序总结 相机深度(Camera Depth&am…...

【论文笔记】Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks

论文地址:Run, Dont Walk: Chasing Higher FLOPS for Faster Neural Networks 代码地址:https://github.com/jierunchen/fasternet 该论文主要提出了PConv,通过优化FLOPS提出了快速推理模型FasterNet。 在设计神经网络结构的时候&#xff…...

python常用函数汇总

python常用函数汇总 对准蓝字按下左键可以跳转哦 类型函数数值相关函数abs() divmod() max() min() pow() round() sum()类型转换函数ascii() bin() hex() oct() bool() bytearray() bytes() chr() complex() float() int() 迭代和循环函数iter() next() e…...

阶段十-物业项目

可能遇到的错误&#xff1a; 解决jdk17javax.xml.bind.DatatypeConverter错误 <!--解决jdk17javax.xml.bind.DatatypeConverter错误--><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>…...

使用 Jekyll 构建你的网站 - 初入门

文章目录 一、Jekyll介绍二、Jekyll安装和启动2.1 配置Ruby环境1&#xff09;Windows2&#xff09;macOS 2.2 安装 Jekyll2.3 构建Jekyll项目2.4 启动 Jekyll 服务 三、Jekyll常用命令四、目录结构4.1 主要目录4.2 其他的约定目录 五、使用GitLink构建Jekyll博客5.1 生成Jekyll…...

【数据库】postgressql设置数据库执行超时时间

在这篇文章中&#xff0c;我们将深入探讨PostgreSQL数据库中的一个关键设置&#xff1a;SET statement_timeout。这个设置对于管理数据库性能和优化查询执行时间非常重要。让我们一起来了解它的工作原理以及如何有效地使用它。 什么是statement_timeout&#xff1f; statemen…...

SQL语言之DDL

目录结构 SQL语言之DDLDDL操作数据库查询数据库创建数据库删除数据库使用某个数据库案例 DDL操作表创建表查看表结构查询表修改表添加字段删除字段修改字段的类型修改字段名和字段类型 修改表名删除表案例 SQL语言之DDL ​ DDL&#xff1a;数据定义语言&#xff0c;用来定义数…...

hive高级查询(2)

-- 分组查询 SELECT sex,SUM(mark) sum_mark FROM score GROUP BY sex HAVING sum_mark > 555; SELECT sex,sum_mark FROM( SELECT sex,SUM(mark) sum_mark FROM score GROUP BY sex ) t WHERE sum_mark > 555; SELECT AVG(gid),SUM(gid)/COUNT(gid) FROM …...

golang的jwt学习笔记

文章目录 初始化项目加密一步一步编写程序另一个参数--加密方式关于StandardClaims 解密解析出来的怎么用关于`MapClaims`上面使用结构体的全代码实战项目关于验证这个项目的前端初始化项目 自然第一步是暗转jwt-go的依赖啦 #go get github.com/golang-jwt/jwt/v5 go get githu…...

第十五节TypeScript 接口

1、简介 接口是一系列抽象方法的声明&#xff0c;是一些方法特征的集合&#xff0c;这些方法都应该是抽象的&#xff0c;需要有由具体的类去实现&#xff0c;然后第三方就可以通过这组抽象方法调用&#xff0c;让具体的类执行具体的方法。 2、接口的定义 interface interface_…...

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口&#xff1f;&#xff01;&#x1f60e; 前言&#x1f64c;【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口&#xff1f;&#xff01;查看自己的配置文件&#xff1a;最终成功访问如图所示&#xff1a; 总结撒花…...

14.bash shell中的for/while/until循环

文章目录 shell循环语句for命令**读取列表中的值****读取列表中的复杂值****从变量读取列表**迭代数组**从命令读取值****用通配符读取目录**C语言风格的shell for循环 shell循环while命令shell 循环的until命令shell循环跳出的break/continue命令break命令continue命令trick 欢…...

RPC(6):RMI实现RPC

1RMI简介 RMI(Remote Method Invocation) 远程方法调用。 RMI是从JDK1.2推出的功能&#xff0c;它可以实现在一个Java应用中可以像调用本地方法一样调用另一个服务器中Java应用&#xff08;JVM&#xff09;中的内容。 RMI 是Java语言的远程调用&#xff0c;无法实现跨语言。…...

strlen和sizeof的初步理解

大家好我是Beilef&#xff0c;一个美好的下我接触到编程并且逐渐喜欢。我虽然不是科班出身但是我会更加努力地去学&#xff0c;有啥不对的地方请斧正 文章目录 目录 文章目录 前言 想必大家对sizeof肯定很了解&#xff0c;那对strlen又了解多少。其实这个问题应该让不少人困扰。…...

纯CSS的华为充电动画,它来了

&#x1f4e2; 鸿蒙专栏&#xff1a;想学鸿蒙的&#xff0c;冲 &#x1f4e2; C语言专栏&#xff1a;想学C语言的&#xff0c;冲 &#x1f4e2; VUE专栏&#xff1a;想学VUE的&#xff0c;冲这里 &#x1f4e2; Krpano专栏&#xff1a;想学Krpano的&#xff0c;冲 &#x1f514…...

在架构设计中,前后端分离有什么好处?

前后端分离是一种架构设计模式&#xff0c;将前端和后端的开发分别独立进行&#xff0c;它带来了多方面的好处&#xff1a; 1、独立开发和维护&#xff1a; 前后端分离允许前端和后端开发团队独立进行工作。这意味着两个团队可以并行开发&#xff0c;提高了整体的开发效率。前…...

C语言中的结构体和联合体:异同及应用

文章目录 C语言中的结构体和联合体&#xff1a;异同及应用1. 结构体&#xff08;Struct&#xff09;的概述代码示例&#xff1a; 2. 联合体&#xff08;Union&#xff09;的概述代码示例&#xff1a; 3. 结构体与联合体的异同点相同点&#xff1a;不同点&#xff1a;代码说明 结…...

文件夹共享(普通共享和高级共享的区别)防火墙设置(包括了jdk安装和Tomcat)

文章目录 一、共享文件1.1为什么需要配置文件夹共享功能&#xff1f;1.2配置文件共享功能1.3高级共享和普通共享的区别&#xff1a; 二、防火墙设置2.1先要在虚拟机上安装JDK和Tomcat供外部访问。2.2设置防火墙&#xff1a; 一、共享文件 1.1为什么需要配置文件夹共享功能&…...

❀My排序算法学习之冒泡排序❀

目录 冒泡排序(Bubble Sort):) 一、定义 二、算法原理 三、算法分析 时间复杂度 算法稳定性 算法描述 C语言 C++ 算法比较 插入排序 选择排序 快速排序 归并排序 冒泡排序(Bubble Sort):) 一、定义 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单…...

服务器数据恢复-raid6离线磁盘强制上线后分区打不开的数据恢复案例

服务器数据恢复环境&#xff1a; 服务器上有一组由12块硬盘组建的raid6磁盘阵列&#xff0c;raid6阵列上层有一个lun&#xff0c;映射到WINDOWS系统上使用&#xff0c;WINDOWS系统划分了一个GPT分区。 服务器故障&分析&#xff1a; 服务器在运行过程中突然无法访问。对服务…...

为什么92%的车载Java应用在-40℃环境崩溃?:嵌入式JRE热稳定性加固实战手册

第一章&#xff1a;车载Java应用低温崩溃现象全景透视在-20℃至-30℃的严寒环境下&#xff0c;车载信息娱乐系统&#xff08;IVI&#xff09;中基于Android Framework构建的Java应用频繁出现ANR、SIGSEGV及ClassLoader初始化失败等非预期终止行为。此类崩溃并非由业务逻辑缺陷直…...

番茄小说下载器:如何轻松搭建你的个人离线图书馆?

番茄小说下载器&#xff1a;如何轻松搭建你的个人离线图书馆&#xff1f; 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 还在为网络不稳定无法畅读小说而烦恼吗&#xff1f;番…...

千问3.5-2B多场景落地:教育答题辅助、医疗报告图解、工业设备图识别实战分享

千问3.5-2B多场景落地&#xff1a;教育答题辅助、医疗报告图解、工业设备图识别实战分享 1. 引言&#xff1a;视觉语言模型的新应用 在数字化浪潮中&#xff0c;视觉语言模型正悄然改变着多个行业的运作方式。千问3.5-2B作为Qwen系列的小型视觉语言模型&#xff0c;凭借其图片…...

告别手动逐个校验,用快马快速构建vmware密钥批量验证工具提升效率

告别手动逐个校验&#xff0c;用快马快速构建vmware密钥批量验证工具提升效率 最近在帮朋友处理一批VMware16的密钥验证工作&#xff0c;发现手动逐个检查不仅耗时耗力&#xff0c;还容易出错。特别是当需要验证几十甚至上百个密钥时&#xff0c;这种重复劳动简直让人崩溃。于…...

3分钟破解百度网盘提取码难题:智能解析工具完全指南

3分钟破解百度网盘提取码难题&#xff1a;智能解析工具完全指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘加密资源的提取码而烦恼吗&#xff1f;每次点击分享链接却卡在"请输入提取码"的弹窗前…...

千万级日志清洗仅需11秒:Polars 2.0流式分块+并行UDF实战(附可复用清洗模板库)

第一章&#xff1a;千万级日志清洗仅需11秒&#xff1a;Polars 2.0流式分块并行UDF实战&#xff08;附可复用清洗模板库&#xff09;传统Pandas在处理千万级Nginx或Kafka日志时&#xff0c;常因内存暴涨与单线程瓶颈导致清洗耗时超3分钟。Polars 2.0引入的scan_csv()流式扫描 …...

PhotoMaker性能基准测试终极指南:建立你的AI人像生成速度参考标准

PhotoMaker性能基准测试终极指南&#xff1a;建立你的AI人像生成速度参考标准 【免费下载链接】PhotoMaker 项目地址: https://ai.gitcode.com/hf_mirrors/TencentARC/PhotoMaker 想要了解PhotoMaker的实际性能表现吗&#xff1f;作为一款革命性的AI人像生成工具&#…...

Clipboard命令行参数完整指南:掌握所有可用选项的终极手册

Clipboard命令行参数完整指南&#xff1a;掌握所有可用选项的终极手册 【免费下载链接】Clipboard &#x1f60e;&#x1f3d6;️&#x1f42c; Your new, &#x1d667;&#x1d65e;&#x1d659;&#x1d664;&#x1d663;&#x1d660;&#x1d66a;&#x1d661;&#x1…...

为什么选择Sammy.js:轻量级JavaScript框架的终极优势解析

为什么选择Sammy.js&#xff1a;轻量级JavaScript框架的终极优势解析 【免费下载链接】sammy Sammy is a tiny javascript framework built on top of jQuery, Its RESTful Evented Javascript. 项目地址: https://gitcode.com/gh_mirrors/sa/sammy 在当今前端开发领域&…...

Wan2.2-I2V-A14B部署教程:混合云架构下边缘节点视频生成能力下沉

Wan2.2-I2V-A14B部署教程&#xff1a;混合云架构下边缘节点视频生成能力下沉 1. 镜像概述与核心价值 Wan2.2-I2V-A14B私有部署镜像是一款专为文生视频场景优化的解决方案&#xff0c;特别适合需要在边缘节点部署视频生成能力的企业用户。这个镜像最大的特点是"开箱即用&…...