雾效 (Fog)
高清渲染管线 (High Definition Render Pipeline, HDRP) 实现了由指数成分组成的多层雾,雾的密度随着与摄像机的距离以及雾高度的变化呈指数变化。HDRP 允许您向此指数雾添加可选的体积分量,以逼真地模拟光与雾的交互作用,这样就可以在物理上合理地渲染辉光和云状光线,即从中心点穿过云朵和树木等对象间缝隙的光束。
使用雾效
雾效使用体积 (Volume) 框架,因此若要启用和修改雾效属性,必须将雾效覆盖添加到场景中的体积。要向体积添加雾效,请执行以下操作:
- 在 Scene 视图或 Hierarchy 视图中,选择一个包含 Volume 组件的游戏对象以在 Inspector 中查看该游戏对象。
- 在 Inspector 中,导航到 Add Override > Fog,然后单击 Fog。
添加雾效覆盖后,必须在覆盖本身中启用这个覆盖。在覆盖中,选中 Enable 属性。HDRP 现在会为此体积所影响的任何摄像机渲染雾效。
此时,场景包含全局雾。但是,该效果可能不符合您的需求。要使用您自己选择的值覆盖默认属性,请按照自定义全局雾部分中的步骤操作。
高清渲染管线 (High Definition Render Pipeline) 会估算 3D 网格上映射到视锥体体积部分的体积光照。网格的分辨率非常低(使用 1080p 的默认质量设置时为 240x135x64),因此应保持视锥体的尺寸尽可能小以确保高质量,这非常重要。调整 Depth Extent 参数可以定义体积雾相对于摄像机视锥体的最大范围。
API
要在运行时访问和控制此覆盖,请使用体积脚本 API。由于体积系统的工作原理,可以使用与标准 Unity 组件不同的方式来编辑属性。也需要注意其他细微差别,例如每个属性都有一个 overrideState。这个参数向体积系统指示是使用你设置的属性值,还是使用存储在体积配置文件中的默认值。有关如何正确使用 API 的信息,请参阅体积脚本 API。
自定义全局雾
请使用全局体积雾,而不是局部雾,因为全局雾可提供最佳性能和最佳质量。
全局雾是具有两个逻辑成分的高度雾:
- 与摄像机的距离比 Base Height 更近的区域是恒定(均质)雾。
- 所处距离超过 Base Height 的区域是指数雾。
活动体积的雾效覆盖将控制全局雾的外观。这个覆盖包括两个主要属性,可用于覆盖默认密度。
- Fog Attenuation Distance:控制雾的全局密度。
- Maximum Height:控制随高度变化的密度衰减;允许在地面附近具有较高的密度,而在较高的位置具有较低的密度。
属性
要编辑任何 Volume 组件覆盖中的属性,请启用属性左侧的复选框。这也告诉 HDRP 使用您为 Volume 组件指定的属性值而不是使用默认值。如果禁用该复选框,HDRP 将忽略您设置的属性,并改用该属性在 Volume 组件中的默认值。
属性 | 功能 |
---|---|
Enable | 启用雾效。 |
Fog Attenuation Distance | 控制雾的基础密度,决定了透过雾可以看到的距离(以米为单位)。在此距离处,雾已吸收并散射 63% 的背景光。 |
Base Height | 恒定(均质)雾与指数雾之间边界的高度。 |
Maximum Height | 控制高度雾的衰减率(以米为单位)。较高的值会垂直拉伸雾效。在此高度,衰减使初始基础密度降低 63%。 |
Max Fog Distance | 控制在将雾效应用于天空盒或背景时的距离(以米为单位)。也决定了 Distant Fog 的范围。为获得最佳效果,请将此属性设置为大于摄像机的远裁剪面值。否则,场景游戏对象上和天空盒上的雾效之间会出现差异。请注意,摄像机远裁剪面是平坦的,而 HDRP 在摄像机周围的球体内应用雾效。 |
Color Mode | 使用下拉选单选择 HDRP 用于计算雾颜色的模式。 • Sky Color:HDRP 使用从天空立方体贴图及其 Mipmap 中采样的颜色对雾进行着色。 • Constant Color:HDRP 使用在选择此选项时出现的 Constant Color 字段中手动设置的颜色对雾进行着色。 |
- Tint | HDR 颜色乘以天空颜色。 仅当从 Color Mode 下拉选单中选择 Sky Color 时,才显示此属性。 |
- Mip Fog Near | 与摄像机的距离(以米为单位):HDRP 在此位置停止从最低分辨率 Mipmap 中采样雾颜色。 仅当从 Color Mode 下拉选单中选择 Sky Color 时,才显示此属性。 |
- Mip Fog Far | 与摄像机的距离(以米为单位):HDRP 在此位置开始从最高分辨率 Mipmap 中采样雾颜色。 仅当从 Color Mode 下拉选单中选择 Sky Color 时,才显示此属性。 |
- Mip Fog Max Mip | 使用滑动条设置 HDRP 用于 Mip 雾效的最大 Mipmap。这定义了 HDRP 针对大于 Mip Fog Far 的距离进行采样的 Mipmap。 仅当从 Color Mode 下拉选单中选择 Sky Color 时,才显示此属性。 |
- Constant Color | 使用拾色器选择雾的颜色。 仅当从 Color Mode 下拉选单中选择 Constant Color 时,才显示此属性。 |
Volumetric Fog | 指示 HDRP 是否应计算体积雾。 |
- Albedo | 体积雾的颜色。体积雾对光照进行着色,因此该雾效会将光散射到此颜色。只会对雾后方或内部的光源发出的光照进行着色。这意味着不会对雾后方或内部的游戏对象反射出去的光照进行着色:随着雾密度的增加,反射的光照只会变暗(逐渐变为黑色)。例如,如果使用红色 Albedo 在穿过雾的白墙上发出光照,则雾看起来是红色的。如果在白墙上发出光照并从雾的另一侧观察,则会看到雾使光线变暗,而不会使光线着色为红色。 |
- Ambient Light Probe Dimmer | 使天空产生的全局环境光照探针强度变暗的程度。值 0 不会使光照探针变暗,而值 1 会使光照探针完全变暗。 |
- Volumetric Fog Distance | 与摄像机之间的距离(以米为单位):视锥体的体积雾部分在此位置结束。 |
- Denoising Mode | 用于体积雾的降噪技术。选项包括: • None:不应用降噪。 • Reprojection:此降噪技术对静态光照非常有效,但对于高动态光照可能会导致严重的重影。 • Gaussian:此降噪技术对于动态光照而言优于 Reprojection。 • Both:同时应用 Reprojection 和 Gaussian 技术。使用这两种技术可以产生高质量的结果,但也会大大增加效果的资源消耗。 |
- Slice Distribution Uniformity | 沿摄像机前向轴的切片分布均匀性。HDRP 在距摄像机多个距离处对体积雾采样。这些样本区域中的每一个区域称为切片。值为 0 使切片分布呈指数关系(切片之间的间距随着与摄像机的距离而增加),靠近摄像机时精度更高,而远离摄像机时精度更低。值为 1 会产生均匀分布,无论与摄像机的距离如何,均具有相同的精确度。 |
- Quality | 指定一个预设以供 HDRP 用于填充以下嵌套属性的值。选项包括: • Low:这是强调性能胜于质量的预设。 • Medium:这是在性能和质量之间达成平衡的预设。 • High:这是强调质量胜于性能的预设。 • Custom:允许分别覆盖每个属性。 如果选择非 Custom 的其他值,则 Fog Control Mode 会切换为 Balance。 |
- - Fog Control Mode | 指定用于控制体积雾性能和质量的方法。选项包括: • Balance:使用面向性能的方法来定义体积雾的质量。 • Manual:允许你访问直接控制效果的内部属性集。 |
- - - Volumetric Fog Budget | 体积雾的性能与质量之比。值为 0 表示最不占用资源,值为 1 表示最高质量。 仅当 Fog Control Mode 设置为 Balance 时,才显示此属性。 |
- - - Resolution Depth Ratio | HDRP 用于在屏幕(x 轴和 y 轴)和深度(z 轴)分辨率之间共享资源的比率。 仅当 Fog Control Mode 设置为 Balance 时,才显示此属性。 |
- - - Screen Resolution Percentage | 沿 x 轴和 y 轴的体积缓冲区(3D 纹理)分辨率(相对于屏幕分辨率)。 仅当 Fog Control Mode 设置为 Manual 时,才显示此属性。 |
- - - Volume Slice Count | 沿摄像机焦轴用于体积缓冲区(3D 纹理)的切片数。 仅当 Fog Control Mode 设置为 Manual 时,才显示此属性。 |
- Directional Lights Only | 指示 HDRP 是仅处理方向光还是所有光源的体积雾。包含非方向光会增加效果的资源消耗量。 |
- Anisotropy | 控制散射光的角度分布。0 表示各向同性,1 表示前向散射,-1 表示后向散射。请注意,非零值会对性能产生中度的影响。较高的值可能与 Enable Reprojection for Volumetrics Frame Setting 之间有兼容性问题。这是 HDRP 应用于全局雾和局部雾的一个实验性属性。 |
特定于光源的属性
Light 组件有几个对体积光照有用的属性:
- Emission Radius 用于模拟填充光照。此属性通过几乎“推动”光源远离场景来起作用。因此可以柔化精准光源的核心。请始终使用非零值来减少重投影导致的重影瑕疵。
- Volumetric Multiplier 仅影响雾效并取代 HDRP 用于表面的光线倍增器 (Light Multiplier)。
- Shadow Dimmer 仅影响雾效并取代 HDRP 用于表面的阴影调光器 (Shadow Dimmer)。