Unity高清渲染管线

Unity高清渲染管线——1

请添加图片描述

unity高清渲染管线是渲染管线的一种,在看完《创造高清3D虚拟世界》这本书的前两章以及第三张第二小节后终于对unity的高清渲染管线也是有了一个初步的认知,以下是我个人理解仅作参考:

unity高清渲染管线项目模板比起普通的3D项目可以理解为多了一个高清渲染管线的资源包,当然普通的unity项目成品也是可以从PackageManager中导入高清渲染管线资源包的,不过那样子麻烦一些,所以我选择直接创建一个高清渲染管线模板作为学习用

在普通的unity的项目学习中我就看到过关于灯光探针以及反射探针的讲解,当时只觉得这是对光线和阴影的一种细微的运用,而后在小项目的学习中也从未用过,慢慢的也就把他忘记了,unity高清渲染管线项目的代码和普通项目并没有什么不同,那么前面我也说了就像是多了一个资源包,那么具体多了哪些东西呢:

最重要的HD Render Pipeline Asset

这个东西可以看成项目的总渲染大管家,他就相当于unity动画系统中动画控制器的地位,一个unity项目可以放置很多HDRP配置文件(也就是HD Render Pipeline Asset)但是一个项目只能配置使用一个HDRP文件(就像一个模型配置一个动画控制器一样),对于动画控制器可以预先配置好然后给模型的动画控制器做更换让模型拥有不同的动画组合,HDRP配置文件可以根据里面的参数设置配置灯光,渲染,材质等等,他将一个工程所需要的渲染参数汇总起来统一设置,然后在Window-Rendering-Lighting-Environment-Profile中进行配置,将自己创造设置的HDRP文件放入,这样场景的包括但不限于灯光,天空盒,渲染,材质等等都会跟着HDRP的配置文件走HDRP配置文件

Frame Settings帧设置

帧设置分为默认帧设置和自定义帧设置:
1,默认帧设置在Edit-Project Settings-HDRP DefaultSettings
看Default Frame Settings For的设置中有三个选项:
Camera:顾名思义场景中相机的帧设置的默认设置
Baked Or Custom Reflection:烘焙或自定义反射
Realtime Refleation:反射探针
这是场景中的的三大需要渲染的种类,可以在这里给他统一设置,也就是上面说的默认帧设置
默认帧设置

2,自定义帧设置在3个地方可以设置:
Camera的Cuntom Frame Settings勾选上就会出现相关设置
相机自定义帧设置
每个相机组件都会有这个选项,那么就可以给不同的相机设置不同的帧设置以达到不同相机的不同渲染效果
Reflection Probe反射探针组的Cuntom Frame Settings勾选上
勾选上后出现的选项和帧设置以及相机自定义帧设置相同,同样每个反射探针也都可以自定义帧设置以达到不同的效果
Planar Reflection Probe平面反射探针组的Cuntom Frame Settings勾选上
既然写到这里就顺便记录一下平面反射探针和反射探针的区别,
通俗点讲反射探针就是反射周围环境的各种光,适合复杂环境的光反射
平面反射探针反射出来的东西就比普通反射探针反射出来的效果要好很多,但是平面反射探针一般用于水面或者镜面,不适合复杂环境的光线和阴影反射
(反射探针部分我还没怎么学明白,这个留到后面的博客去记录)
帧反射差不多就是这样了,但是也有个疑问,为什么帧反射和HDRP的设置相同,他们不会冲突吗?
这个放在最后去说QAQ

Volume组件

可以在组件中添加修改一些渲染相关的的参数,这个相比于帧设置直接作用在相机的渲染和反射探针的渲染上,这个组件修改的场景渲染相关信息是直接作用在场景上的。
Volume组件

HDRP文件和帧设置以及Volume组件的区别

说了这么多,这3大设置调整的功能都是一样的,那他们存在的意义在哪?
最开始也说了HDRO文件相当于渲管线的大管家,负责整个项目的设置
而帧设置就会细化到物体上,在物体上调整
Voleme组件主要作用与场景中

但是他们的选项很多都一样,冲突了怎么办?
这就要说到3大设置的优先级了
HDRP文件>帧设置>Volume组件
在HDRP文件中的设置属于最上层,通俗些讲就是只有当HDRP配置文件中打开了某项设置才可以在帧设置中选择调整参数或是否开启,如果在HDRP文件中没有打开的设置那么在帧设置中就一定不能开启
帧设置和自定义帧设置的区别
那相机的默认帧设置举例,在Edit-Project Settings-HDRP DefaultSettings选择相机进行默认帧设置,那么全场的所有相机的帧设置都会是默认帧设置的,但是如果勾选上Cuntom Frame Settings就会出现帧设置的调整选项,这个时候那个相机组件使用的就是自定义帧设置了,在单个相机组件中调整的自定义帧设置只会影响到单个相机的帧设置,对于其他没有调整的相机没有影响,而自定义帧设置大于默认帧设置,可以把他理解为默认帧设置的重写

默认帧设置的作用在于可以方便的调整全局的相关设置,不然的话要给场景中的每个拥有帧设置的物体单独调整那么工作量也太大了,默认帧设置和自定义帧设置的出现主要是用于给开发者更多选项

Volume组件和帧设置的作用冲突
首先我们大概介绍一下Volume组件的作用,看上面的Volume组件的截图我们不难看出Volume组件的功能和帧设置以及HDRP文件的功能差不多,同样的,Volume的关系个HDRP文件的关系和帧设置与HDRP文件的关系相同,都属于HDRP文件的下级。

Volume组件作用与场景中,可以根据HDRP文件打开的设置来调整场景的渲染,比如灯光,雾气等等,在场景中设置的渲染效果终究是要通过摄像机传送到银幕的,所以就会在经过帧设置过滤一遍,也就是说,如果在帧设置中没有打开某个选项,那么就算在Volume中调整了他也不会在相机中显现出来,打个比方就是使用了Volume组件在场景中调整了雾气出来,但是相机的帧设置没有勾选雾气相关的选项,那么在Game窗口就看不到雾,如果反射探针的帧设置没有勾选雾气的选项那么反射出来的光线也不会有雾气的形状

总结

一张图片说明他们的关系
关系图片
上面只大概的总结了Unity高清渲染管线的大概框架,具体的每个设置的作用以及使用的位置在后面的篇章会做详细的讲解

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

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

相关文章

Python基础语法元素(学习笔记)

实例1:温度转换 # TempConvert.py #为单行注释 多行注释为: 这里写内容 TempStr input("请输入带有符号的温度值:") if TempStr[-1] in [F,f] :C (eval(TempStr[0:-1])-32)/1.8print("转换后的温度是{:.2f}C".format(C)) e…

C++20 中的std::c8rtomb和 std::mbrtoc8

文章目录 1. 引言2. std::c8rtomb 函数详解3. std::mbrtoc8 函数详解4. 使用示例5. 注意事项6. 总结 1. 引言 C20 标准引入了对 UTF-8 编码的更好支持,其中包括两个重要的函数:std::c8rtomb 和 std::mbrtoc8。这两个函数分别用于将 UTF-8 编码的字符转换…

数据可视化TensorboardX和tensorBoard安装及使用

tensorBoard 和TensorboardX 安装及使用指南 tensorBoard 和 TensorBoardX 是用于可视化机器学习实验和模型训练过程的工具。TensorBoard 是 TensorFlow 官方提供的可视化工具,而 TensorBoardX 是其社区驱动的替代品,支持 PyTorch 等其他框架。以下是它…

flutter-实现瀑布流布局及下拉刷新上拉加载更多

文章目录 1. 效果预览2. 结构分析3. 完整代码4. 总结 1. 效果预览 在 Flutter 应用开发中,瀑布流布局常用于展示图片、商品列表等需要以不规则但整齐排列的内容。同时,下拉刷新和上拉加载更多功能,能够极大提升用户体验,让用户方…

【day2】数据结构刷题 栈

一 有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的…

YAML是什么?

YAML(YAML Ain’t Markup Language)是一种以数据为中心、高度可读的序列化语言,广泛应用于配置文件、数据交换和自动化工具中。以下从多个维度对其进行全面解析: 1. 定义与历史演变 全称与定位: YAML的全称最初为“Yet…

熔断降级(Sentinel解决)

问题概述 在微服务架构中一定要预防微服务雪崩问题,微服务雪崩问题就是指在微服务架构中,当一个服务出现故障时,由于服务之间的依赖关系,故障可能会传播到其他服务,从而导致了大规模的服务失败,系统无法正…

反序列化漏洞

前提概要 本文章主要用于分享反序列化漏洞基础学习,以下是对反序列化漏洞的一些个人解析,请大家结合参考其他文章中的相关信息进行归纳和补充。 反序列化漏洞描述 反序列化漏洞是指程序在对输入的字节流进行反序列化时,因缺乏充分的验证和过…

吐血整理:Air8201如何使用LuatOS进行电源管理功能!

在物联网应用场景中,设备续航能力直接影响其部署成本与运维效率。LuatOS操作系统通过软件层面的精细化控制,为Air8201提供了灵活且高效的电源管理策略。本文将从系统架构、API接口、实战配置三个维度,解析如何利用LuatOS实现Air8201的智能电源…

STM32学习笔记之存储器映射(原理篇)

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

合宙780E开发学习-LUATOS-SOC云编译自定义固件

登录https://luatos.com 点击登录,使用合宙erp账号登录即可 点击右上角构建,点击右上角菜单新构建,自定义构建名称,可新建多个 勾选想要的组件 点击右上角保存修改,只有点击准备就绪(注意:一定…

react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析

一、React 15(2016) 核心架构:Stack Reconciler(栈协调器) 工作原理: 同步递归渲染:采用深度优先遍历方式递归处理 Virtual DOM,形成不可中断的调用栈渲染流程:1. 触发 …

【HarmonyOS NEXT】EventHub和Emitter的使用场景与区别

一、EventHub是什么? 移动应用开发的同学应该比较了解EventHub,类似于EventBus。标准的事件广播通知,订阅,取消订阅的处理。EventHub模块提供了事件中心,提供订阅、取消订阅、触发事件的能力。 类似的框架工具有很多…

QT记事本

记事本应用程序提供了基本的文本编辑功能,支持文件的新建、打开、保存和另存为操作,同时具备修改提示和关闭窗口时的保存确认功能。使用 UTF - 8 编码确保了对多语言文本的支持。 1. 项目整体结构 main.cpp:程序的入口点,负责初…

如何用 Postman 发送 POST 请求?

POST 请求是 HTTP 协议中用于提交数据的一种方法,Postman 提供了丰富的功能来支持用户发送包含各种信息的 POST 请求,如文本数据、JSON 或 XML 数据结构、文件等。 Postman 发送 post 请求教程

Ant Design Vue 中的table表格高度塌陷,造成行与行不齐的问题

前言: Ant Design Vue: 1.7.2 Vue2 less 问题描述: 在通过下拉框选择之后,在获取接口数据,第一列使用了fixed:left,就碰到了高度塌陷,查看元素的样式结果高度不一致,如&#x…

Flink 通过 Chunjun Oracle LogMiner 实时读取 Oracle 变更日志并写入 Doris 的方案

文章目录 一、 技术背景二、 关键技术1、 Oracle LogMiner2、 Chunjun 的 LogMiner 关键流程3、修复 Chunjun Oracle LogMiner 问题 一、 技术背景 在大数据实时同步场景中,需要将 Oracle 数据库的变更数据(CDC) 采集并写入 Apache Doris&am…

qt+opengl 加载三维obj文件

1前面我们已经熟悉了opengl自定义顶点生成一个立方体,并且我们实现了立方体的旋转,光照等功能。下面我们来用opengl来加载一个obj文件。准备我们首先准备一个简单的obj文件(head.obj)。资源在本页下载 2 在obj文件里面&#xff0c…

计算机组成原理的学习day01

一 计算机系统层次结构 1 计算机硬件的基本组成 好的,上个小节中我们了解了计算机系统的概念,还有计算机的一个发展历程,那这个小节中我们会着重的探讨计算机硬件的一个基本组成。我们需要掌握这样的两种结构,第一种是早期的冯诺…

ASP 应用HTTP.SYS短文件文件解析Access 注入数据库泄漏

#ASP- 默认安装 -MDB 数据库泄漏下载(路径是知道的话可以直接下载) 由于大部分 ASP 程序与 ACCESS 数据库搭建,但 ACCESS 无需连接,都在脚本文件中定 义配置好数据库路径即用,不需要额外配置安装数据库&#x…