如下图,URP默认Shader的设置中,已经没有了以往的Render Queue的设置。

   

那么我们要如何来控制渲染顺序呢?

我们先简单的搭建一个测试场景,在场景中创建两个Cube,使其位置重叠,将其中一个命名为RedCube。然后新建一个默认的Material(即shader为URP/Lit),设置Base Map的颜色为红色,将该material挂到RedCube上即可。

如上图,按照默认的渲染顺序我们只能看见灰色的方块。

Priority属性

在Material中有一个名为Priority属性,修改其值可以来改变material的渲染顺序,值越小,渲染的越晚。

我们将RedCube的Priority值设置为-1,可以发现我们可以看见红色小块了,因为其渲染在灰色小块的后面。

这么简单?No!

当我们把红色小块往后移一点,发现摄像头变得依旧只能看见灰色小块了。因此Priority属性似乎只有在深度测试(Z Test)相同的情况下才能起到效果。

Render Objects

使用URP后,会在Project Settings的Graphics关联一个URP的asset文件,在其Renderer List中,会默认关联一个Forward Render的asset文件,其内容如下。

  

在Renderer Features中点击小加号,添加一个Render Objects,在这里我们就可以进行一些渲染上的处理了。

Event 可以设置在Render的哪个阶段触发效果
Queue 设置影响的是不透明物体还是透明物体
Layer Mask 设置影响的Layer层
Depth 开启后可以设置深度写入和深度测试
Camera 重新设置camera效果

此时我们Layer Mask选择Default,勾选Depth,Depth Test选Disabled(关闭深度测试),如下左图

    

此时的效果图如上右图,摄像机可以看见红色方块,但是有莫名其妙的黑影,这其实是灰色小方块的阴影。将小方块的Case Shadows选为Off,此时显示就正常了,红色方块显示在了前面(注意红色方块的Priority依旧要低于灰色的)

拓展

我们此时再新建一个material,取名GreenAlphaPanel,将其Surface Type选为Transparent,Blending Mode为Alpha这样就可以通过调整Base Map颜色的透明度影响物体的透明度。然后我们在红色方块下面添加一个Panel,设置合适的大小,并使用我们前面的GreenAlphaPanel。同时适当的放大灰色小块,方便测试。由于我们期望的效果是红色方块现在在最前面,然后是绿色的面片,最后是灰色大块,因此它们三个的Priority值应该是红色<绿色<灰色。效果图如下

    

可以发现我们的绿色面片并没有和红色小块一样显示在前面,这是因为我们之前的设置只影响不透明物体,因此我们需要再新建一个RenderObjects来影响透明物体,效果如下

  

可以发现虽然绿色的透明面片显示出来了,但是却覆盖了红色方块,因此我们还需要调整一下设置。由于现在三个物体的Layer都一样,防止相互影响,我们新建一个Layer层名为Building,将红色方块和绿色面片设置为该Layer。由于默认情况下,透明物体会在不透明物体后面渲染,因此我们要让不透明的红色方块渲染在透明的绿色面片之后的话,需要修改其Event,使其在透明的设置之后,例如选择After Rendering Transparents。最终效果如下:

        

更多知识点还需后续研究补充。

URP 渲染顺序设置 RenderObjects相关推荐

  1. Unity半透明特效原理讲解(为什么半透明设置渲染顺序和深度写入这么重要)

    Unity半透明特效原理讲解(为什么半透明设置渲染顺序和深度写入这么重要 写在前面 实验场景 实验1:红(不透明)+蓝(不透明)+默认渲染顺序(先渲染蓝Cube) 实验2:红(不透明+优先渲染)+蓝( ...

  2. U3D中物体的渲染顺序

    U3D中物体的渲染顺序 1,由SHADER中渲染队列及队列中的值决定 2,在同一队列中,若材质相同 2.1 对于UI,按其在场景层级中的先后顺序绘制 2.2 对于3D不透明物体,按其离相机的距离,由近 ...

  3. Unity 中渲染顺序的理解以及一些坑点 以及2.5D游戏中的渲染排序解决方案

    1.ZTest & ZWrite ZTest:深度测试,开启后测试结果决定片元是否被舍弃,可配置  ZWrite:深度写入,开启后决定片元的深度值是否写入深度缓冲,可配置 ZTest可设置的测 ...

  4. UnityShader RenderTypeQueue 渲染顺序

    整理自这两篇博文 https://blog.csdn.net/u013477973/article/details/80607989?depth_1-utm_source=distribute.pc_ ...

  5. Unity中的物体渲染顺序

    big seven 文章目录 前言 一.摄像机渲染 二.划分渲染队列 三.不透明物体的渲染 四.透明物体的渲染 五.UGUI元素的渲染 总结 前言 Unity中物体的渲染顺序 提示:以下是本篇文章正文 ...

  6. Unity 渲染顺序

    Unity中的渲染顺序自上而下大致分为三层 渲染优先级 Camera depth > Sorting Layer > Order in Layer > RenderQueue Cam ...

  7. Unity UGUI NGUI 模型 粒子特效 三者之间 渲染层级设置

    目录 1.介绍两大UI插件NGUI和UGUI  2.unity渲染顺序控制方式  3.NGUI的控制  4.UGUI的控制  5.模型深度的控制  6.粒子特效深度控制  7.NGUI与模型和粒子特效 ...

  8. Three.js 透明物体不能正常显示(闪烁)/渲染顺序的控制问题

    Three.js的渲染机制 three的渲染器是基于webGL的.它的渲染机制是根据物体离照相机的距离来控制和进行渲染的.对于透明的物体,则是按照从最远到最近的顺序进行渲染.也就是说,它根据物体的空间 ...

  9. Unity渲染顺序(1)

    添加排序层级 在Unity编辑器的右上角选择Layers 按钮,在下拉菜单中点击Edit Layers-选项,将显示当前Unity的Tags, Sorting Layers,和Layers 编辑选项. ...

最新文章

  1. 定位插件_微创新 | 开发PL/SQL插件,快速定位所需字段
  2. linux中的shell脚本case,【shell】Linux shell 之 case 详解
  3. jQuery 常用的方法
  4. HRBP执行工具——PDCA
  5. 调用vba_VBA代码解决方案的第86讲内容:VBA代码的优化篇
  6. mac系统linux不能ping外网,Mac上配置Linux网络适配器(NAT模式),无法ping通
  7. Flash Cs4 安装之后打不开
  8. 微型计算机控制技术设计题库,微型计算机控制技术复习题答案
  9. 计算机技术专业求职简历,计算机技术专业求职简历模板
  10. 数值作业:改进欧拉法求常微分方程C语言代码
  11. Windows10系统如何开启和关闭隐藏的卓越性能模式
  12. html网页背景图片 菜鸟教程,CSS3 背景
  13. 2D激光雷达和视觉相结合的SLAM概述
  14. 求求你了,不要再浪费抗原了!!!
  15. 大一计算机专业考什么证书,计算机专业大一的学生能考什么证书?
  16. 数据探针 Mysql 数据库
  17. 学数学计算机课的心得,课程学习心得体会
  18. 生鲜配送系统有哪些功能?搭建生鲜配送系统有什么优势?
  19. cakephp视图用php文件,cakephp使用笔记
  20. 【持续学习】清华最新持续学习综述

热门文章

  1. 天地劫pc版不显示服务器,怎么pc版老是闪退-天地劫电脑版运行问题-66街机网
  2. 1-9.vue指令:v-slot指令与插槽
  3. Python字符串切片(s[::-1])巧解回文字符串判定
  4. 我用计算机最难忘的事,让我最难忘的一件事作文(通用10篇)
  5. 沙拉比巨无霸更容易让人发胖
  6. linux 内核编译_如何在21世纪编译Linux内核
  7. python给图片添加半透明背景文字
  8. 欢迎您到威斯康星大学的CSE人工智能网站
  9. 《Unity 游戏案例开发大全》一导读
  10. JAVA中的endorsed技术