Unity | HDRP高清渲染管线学习笔记:HDRP Custom Pass

news2024/10/3 20:32:46

目录

一、Custom Pass Volume组件介绍

1.Mode(模式)

2.Injection Point(注入点)

3.Priority

4.Fade Radius

5.custom passes

二、查看Custom Pass的渲染阶段


        Custom Pass允许你执行以下操作(官方文档):

  • 更改场景中材质的外观。
  • 更改 Unity 渲染游戏对象的顺序。
  • 允许 Unity 将摄像机缓冲区读取到着色器。

        在 HDRP 渲染循环期间,Unity 使用注入点在某个特定点执行自定义通道。可通过更改注入点来控制自定义通道如何影响场景的外观。

        Custom Pass也是用Volume框架对各项设置进行管理的。但Custom Pass的Volume框架和之前详细描述过的Volume框架有以下区别:

  • 无法对Custom Pass像对普通Volume一样进行混合。如果有多个重叠的Custom Pass,拥有最小Bounding Volume的Custom Pass Volume会被执行,其他Custom Pass则会被忽略。
  • Custom Pass的数据不像普通Volume那样被保存在HDRP配置文件中,而是被保存在当前Custom Pass Volume的GameObject中。

一、Custom Pass Volume组件介绍

1.Mode(模式)

        可以在Custom Pass Volume中选择两种模式:Global或者Local。这两种模式与普通Volume中两种模式的使用方法基本相同。在Global(全局)模式下Custom Pass影响整个场景。在Local(本地)模式下我们需要额外添加一个碰撞体用于碰撞测试,只有当场景中的相机与带碰撞体的Custom Pass Volume物体发生碰撞时,Custom Pass才会影响整个场景。

2.Injection Point(注入点)

        可以选择一个注入点以执行Custom Pass上的逻辑。选项中的6个注入点按照从上到下的顺序执行。在每一个点我们可以读写某些缓冲(buffer)数据,我们也知道每一个注入点开始执行Custom Pass逻辑之前已经渲染好了什么物体。

3.Priority

        如果为同一注入点分配了多个 Custom Pass Volume,可使用此属性来控制 Unity 执行它们的顺序。Unity 按优先级顺序(从 0 开始)执行这些Volume。

4.Fade Radius

        Local模式下多了一个Fade Radius选项,默认数值为0,单位为m。

  • 如果设置为0,就意味着只要相机一离开Custom Pass Volume关联的Box Collider,Custom Pass就会失效。
  • 如果设置为大于0,比如3m,那么相机离开Box Collider大于3m时,Custom Pass才会失效。

5.custom passes

  • FullScreen Custom Pass:用于执行由 Unity 应用于摄像机视图或存储在自定义通道缓冲区中的效果。
  • DrawRenderers Custom Pass:用于将自定义通道应用于摄像机视图中的游戏对象。
    • Filters(过滤器):在此处设置条件,选择需要替换材质的物体。
      • Layer Mask:用于选择场景中物体所在的Layer。
      • Queue:通过这里的标签选择我们需要影响的材质。如:不透明材质选择All Opaque。
    • Overrides:在此选择用于重写的材质信息。
      • Material:关联一个材质用于替换通过Filters条件找到的材质。
      • Pass Name:因为所有的不透明(Opaque)物体都是在Forward pass中被渲染,所以我们在此选择Forward(注:如果在HDRP配置文件中设置了Deferred模式,则要选择Both以支持Forward模式)。
      • Override Depth(重写深度):如果要渲染只通过Custom Pass渲染的物体,那么要打开这个选项并选择Less Equal,这样不透明物体的信息才能被写入深度缓冲中,然后被正确渲染。
  • ObjectID Custom Pass:将由ObjectID控制的唯一颜色应用于场景中的GameObjects。

二、查看Custom Pass的渲染阶段

        通过菜单Window→Analysis→Frame Debugger打开Frame Debugger窗口,我们可以在Frame Debugger窗口查看渲染每一帧画面的整个过程。打开Frame Debugger窗口以后,可以通过左上角的Enable按钮启用它。

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

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

相关文章

Linux--在当前路径下创建目录/文件夹指令:mkdir

语法: mkdir [选项] 文件名 功能: 在当前目录下创建一个名为 “文件名”的目录 常用选项: -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些不存在的目录,即一次可以建立…

HTML5 游戏开发实战 | 贪吃蛇

在该游戏中,玩家操纵一条贪吃的蛇在长方形场地里行走,贪吃蛇按玩家所按的方向键折行,蛇头吃到食物(豆)后,分数加10分,蛇身会变长,如果贪吃蛇碰上墙壁或者自身的话,游戏就结束了(当然也可能是减去…

开放式耳机漏音严重吗?开放式耳机会不会吵到别人?

​在了解开放式耳机是否漏音的时候,首先要知道什么是开放式耳机。 开放式耳机是一种不入耳,没有封闭耳朵的蓝牙耳机,可以听歌的同时接收来自外界声音,安全性高,也减少长期佩戴耳机带来的负担,更适合运动佩…

E. Singers‘ Tour(数学推导)

Problem - 1618E - Codeforces 将n个城镇按顺序排列成一个环。这些城镇按顺时针顺序编号为1到n。在第i个城镇里,有一名歌手,他的曲目列表中每首歌的演唱时间为ai分钟,其中i∈[1,n]。 每位歌手按顺时针顺序访问所有n个城镇,并在…

为什么可以直接使用简单名字访问java.lang包中的公开类、接口

java.lang包中有一些基本类,在代码中访问这些公开的类、接口可以直接用简单的名字访问,而不需要用import语句显式导入。 先看下面两段示例代码,这两段代码的执行效果是一样的。 示例代码1–访问Math类的时候直接写简单的名字,而且…

pwn学习day4——ret2text

文章目录 原理&#xff1a;例子x64x32 原理&#xff1a; 覆盖函数返回地址到程序内存在的gadgets获取shell 例子 #include<stdio.h> #include<stdlib.h>void hint(){system("$0"); } int main(){char buf[0x10];printf("input: ");scanf(&q…

1.5、JAVA 初识JAVA运算符

1 运算符 1.1 概述 运算符 用于连接 表达式 的 操作数&#xff0c;并对操作数执行运算。 例如&#xff0c;表达式num1num2&#xff0c;其操作数是num1和num2&#xff0c;运算符是””。 在java语言中&#xff0c;运算符可分为5种类型&#xff1a; 算术运算符、赋值运算符、关…

数据中心可视化合集 | 图扑数字孪生机房,解锁运维新境界

IDC&#xff08;Internet Data Center&#xff09;数据中心可视化是指通过可视化的方式对数据中心的运行状态、资源使用情况、安全监控等进行展示和管理。可以帮助管理员更好地了解数据中心的运行情况和趋势&#xff0c;及时发现问题并采取措施&#xff0c;提高数据中心的运行效…

libevent实践01:准备源码、搭建项目、编译脚本和入门例子

编译源码 libevent是一个Reactor事件库。 我的理解&#xff0c;就是封装了select、epoll、poll的函数库。有使用select&#xff0c;poll&#xff0c;epoll的需求就可以使用的。 官网地址&#xff1a;https://libevent.org/ 下载源码&#xff1a; https://github.com/libev…

2023亚马逊云科技中国峰会主题演讲,分享基础架构在AI浪潮的求新求变

2023亚马逊云科技中国峰会第二天精彩继续&#xff01;6月28日&#xff0c;亚马逊云科技大中华区产品总经理陈晓建在《专注创新&#xff0c;摆脱基础架构束缚》主题演讲中提出&#xff0c;云服务是支持数字创新的关键生产力。在当前生成式AI技术爆发的大环境下&#xff0c;亚马逊…

一种快速估算PCB走线电阻的方法:方块统计

我们通常需要快速地估计出印刷电路板上一根走线或一个平面的电阻值&#xff0c;而不是进行冗繁的计算。 虽然现在已有可用的印刷电路板布局与信号完整性计算程序&#xff0c;可以精确地计算出走线的电阻&#xff0c;但在设计过程中&#xff0c;我们有时候还是希望采取快速粗略…

通过BeautifulSoup获取【领域赛道--大数据与算法】top100用户

文章目录 前言介绍实现帖子地址请求地址引入模块提取代码程序入口提取到的数据 总结最后 前言 博主空空star主页空空star的主页 大家好&#xff0c;我是空空star&#xff0c;本篇给大家分享一下《通过BeautifulSoup获取【领域赛道--大数据与算法】top100用户》。 介绍 Beautif…

社区团购爆品怎么做?社区团购小程序有什么功能?

社区团购爆款可以通过拉新&#xff0c;打好用户基础。刚上线就推行低价爆款拉新&#xff0c;利用一些低成本的奶制品类和禽蛋类&#xff0c;蔬菜类来引流拉新。这一招非常有效&#xff0c;吸引源源不断的客流量汇集平台&#xff0c;庞大的用户流量是订单爆棚的保障。商家/运营方…

这所顶级双非,学硕爆冷上线即录取,保护一志愿!

一、学校及专业介绍 华侨大学是福建省“双一流”建设A类高校&#xff0c;在泉州、厦门分别设有校区&#xff0c;现有28个学院&#xff1b;11个学科门类&#xff0c;9个一级学科博士点&#xff0c;25个一级学科硕士点&#xff0c;23个专业学位硕士点&#xff0c;5个博士后流动站…

性能测试中如何使用RunnerGo还原混合并发场景

我们在进行软件开发时经常需要进行性能测试、压力测试和负载测试。其中有一类测试场景叫做混合并发测试&#xff0c;需要模拟多个接口下不同数量的用户使用场景&#xff0c;检查同时处理多个并发任务的能力&#xff0c;本文将展示如何使用开源的RunnerGo还原混合并发场景。 在…

C语言排序算法实现

1.概述 所谓排序&#xff0c; 就是使一串记录&#xff0c; 按照其中的某个或某些关键字的大小&#xff0c; 递增或递减的排列起来的操作。 排序算法&#xff0c; 就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视&#xff0c; 尤其是在大量数据的处理方面…

数据分析回头看1——Pandas中数据处理总结

0、前言&#xff1a;因为之前自己在学习pandas的过程中就简单做了下笔记&#xff0c;发现在用的时候还是会比较乏力&#xff0c;很多东西容易忘&#xff0c;所以我就决定结合之前笔记的内容&#xff0c;按照使用pandas的习惯&#xff0c;把知识点梳理一下&#xff0c;方便之后查…

网段扫描攻击

攻击简介 如果网络中有用户向设备发送大量目标IP地址不能解析的IP报文&#xff08;即路由表中存在该IP报文的目的IP对应的路由表项&#xff0c;但设备上没有该路由表项中下一跳对应的ARP表项&#xff09;&#xff0c;将导致设备触发大量的ARP Miss消息。 大量的网段扫描报文会…

软件测试的自我学习和提升

软件测试是一项非常重要的工作&#xff0c;它可以确保软件在发布前能够正常运行&#xff0c;在软件开发过程中扮演着至关重要的角色。在这个不断变化和创新的时代&#xff0c;软件测试人员需要不断地学习和提升自己的技能和能力&#xff0c;以适应不同软件发展的需求。 1. 学习…

LeetCode刷题 | 309. 最佳买卖股票时机含冷冻期、714. 买卖股票的最佳时机含手续费

309. 最佳买卖股票时机含冷冻期 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 卖出股票后&…