简介:在画面的最终渲染效果表现方面,后处理会占有很大的功能,如常见的辉光、大气散色、丁达尔现象、整体校色等。本文将讲解如何使用体积,后续会发文着重讲解几个常用体积功能和后处理的使用教程
版本:Unity2019.4.12f1 HDRP 7.5.1
什么是体积
- HDRP 不在使用以往 unity 的 postprocessing 包来做后处理效果,HDRP 在一个名为体积的框架内来实现后处理和一些特殊的效果。每个体积可以是全局的,也可以具有局部边界。它们各自包含一些场景设置属性值,HDRP 将在其间进行插值(具体取决于摄像机的位置)以便计算最终值。例如,可以使用局部体积来更改环境设置(例如雾颜色和密度),从而更改场景中不同区域的氛围。
- 一个场景可以包含许多体积,使每个体积都包含控制该体积与场景中其他对象交互方式的属性。全局体积会影响无论处于场景中什么位置的摄像机,而局部体积会影响封装在体积碰撞体边界内的摄像机。
- 体积可以包含不同的体积覆盖组合。例如,一个体积可以包含基于物理的天空体积 (Physically Based Sky Volume) 覆盖,而其他体积包含指数雾体积 (Exponential Fog Volume) 覆盖。
体积的种类
- 体积分为 Volume 和 CustomPassVolume
- Volume 为内置所带的体积
- CustomPassVolume 适用于用户自定义渲染 pass 的体积,需要手动指定 pass 在渲染流程的哪个环节进行渲染,可以用来实现类似老版 Unity 中的 ReplaceShader 效果
CustomPassVolume
- 所有的体积都具有的两种模式 全局体积(global)和局部体积(local),可以在体积组件的 Mode 属性上自由切换
- 全局体积和当前体积物体所在位置没有关系,全局生效
- 局部体积,需要给体积物体添加碰撞体,这样当相机进入物体的体积范围时才会生效
组成部分
- 体积(Volume)物体的实现包含两部分
- 一个是场景的一个带有 Volume 组件物体(任何物体,可以是空物体,只要有 Volume 组件就可以)
- 一个是与 Volume 物体 绑定的 Profile文件(Volume的详细参数配置文件)
包含的功能
- 目前的体积包含六个方面的效果功能
- 雾效
- 灯效
- 后处理
- 光线追踪
- 阴影
- 天空盒
体积组件介绍
创建一个体积物体
- Unity 默认为我们准备了五种预设好的体积,和一个自定 pass 体积,我们创建一个最基础的Global体积。在 Hierarchy 面板空白处,点击鼠标右键,在菜单中依次选择 Volume -> GlobalVolume
界面介绍
体积基础界面- Mode 模式可以用来设置当前的体积物体是全局的还是局部的。
- Weight 权重,体积对场景的影响程度。HDRP 将此乘数应用于通过摄像机位置和 Blend Distance 计算出的值。
- Priority 优先级,HDRP 使用此值来确定当多个体积对场景具有相同的影响程度时使用哪个体积。HDRP 首先使用具有更高优先级的体积。
- Profile 体积配置文件,这个属性用来绑定一个配置文件到当前的属性,绑定后,体积的属性面板会显示出配置文件的属性。右侧的 new 按钮可以新建一个配置文件。
体积配置文件介绍
- 体积配置文件内包含了体积需要生效的参数信息。
创建体积配置文件
- 有多种创建方式,我们这里介绍两种
- 一种是在体积物体上点击 new 按钮,会自动为我们创建一个体积配置文件
- 一种是在 Project 面板内点击鼠标右键,依次选择 Create -> VolumeProfile
- 建议使用右键模式,这样可以直接将我们的配置文件创建到我们指定的位置,如果不需要管理配置文件,可以使用new按钮创建,所有的配置文件会被创建到系统默认设置的路径下。
配置介绍
- 默认创建出来的体积配置文件是空的
- HDRP 在系统设置中有一套默认的后处理参数,如果我们什么都不做,或使用空的配置文件,那么它会默认使用最基础的后处理效果。
- 点击配置面板的 AddOverride(添加覆盖) 按钮,便可以添加一个指定的体积效果,我们添加一个 bloom(辉光) 效果
- 添加之后我们的 Bloom 效果属性就会显示出来,我们会看见所有属性前面都有一个 checkbox(勾选框),
- 效果名前面的勾选框,勾选后开启效果,不勾选,关闭效果。
- 参数名前面的勾选框,当它勾选后我们这里设置的参数就会替代默认参数,不然使用默认参数,
- 下图就表示我们开启了 bloom 效果,但是参数使用的全是默认参数。由于 bloom 的默认强度是 0 ,所以场景中不会有任何的辉光效果
- 同理我们可以添加更多的后处理效果,具体的常用后处理效果参数使用说明,我们会在后文再写。
绑定配置文件
-
将我们的配置文件直接拖拽到需要使用的体积物体上的 Profile 属性即可。
拖拽指认后处理属性 - 会发现我们的配置文件的属性内容,显示在了体积组件的面板内,证明文件指认成功。
- 配置文件是通过绑定的方式指认到体积物体的,所以我们在体积物体内直接编辑属性文件内容,也就等同于编辑了属性文件。
配置文件属性内容发生一样的变化
- 我们可以给不同的体积文件使用同一个体积配置文件。这在局部模式的体积物体上比较常用。
相机相关设置
- 相机的 general 面板下面有一个 VolumeLayerMask 属性,我们要确保这里包含我们 体积物体所在的层级。这个属性是一个多选属性,可以包含更多的层级。默认情况下这里是 Everything 意思是包含所有层级。
- 为了对比我们将相机的 VolumeLayerMask ,只设置为TransparentFX ,然后将体积物体的 Layer 也设置为TransparentFX。可以看到我们的场景效果是正常的。
体积物体的层级设置
- 我们单独将相机的 VolumeLayerMask 只设置为Default, 可以看到,效果变得不一样了,因为我们在TransparentFX 层内的体积物体不会对相机的渲染产生影响。
网友评论