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的配置文件走
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组件
可以在组件中添加修改一些渲染相关的的参数,这个相比于帧设置直接作用在相机的渲染和反射探针的渲染上,这个组件修改的场景渲染相关信息是直接作用在场景上的。
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高清渲染管线的大概框架,具体的每个设置的作用以及使用的位置在后面的篇章会做详细的讲解