HDRI 天空 (HDRI Sky)
HDRI 天空体积 (HDRI Sky Volume) 组件覆盖可以控制可用于设置 HDRI 天空的设置。HDRI 天空是一种使用立方体贴图纹理的简单天空表示形式。此组件还可用于定义 HDRP 如何更新天空在场景中产生的间接光照。
提示:Unity Asset Store 中提供了 Unity HDRI Pack,其中有 7 个预先转换的 HDR 立方体贴图,可在项目中立即使用。
使用 HDRI 天空
HDRI 天空使用体积 (Volume) 框架,因此若要启用和修改 HDRI 天空属性,必须将 HDRI 天空覆盖添加到场景中的体积。要向体积添加 HDRI 天空,请执行以下操作:
- 在 Scene 视图或 Hierarchy 视图中,选择一个包含 Volume 组件的游戏对象以在 Inspector 中查看该游戏对象。
- 在 Inspector 中,导航到 Add Override > Sky,然后单击 HDRI Sky。
添加 HDRI 天空覆盖后,必须将体积设置为使用 HDRI 天空。体积使用的天空类型由视觉环境 (Visual Environment) 覆盖进行控制。在视觉环境覆盖中,导航到 Sky 部分,然后将 Type 设置为 HDRI Sky。HDRP 现在会为此体积所影响的任何摄像机渲染 HDRI 天空。
API
要在运行时访问和控制此覆盖,请使用体积脚本 API。由于体积系统的工作原理,可以使用与标准 Unity 组件不同的方式来编辑属性。也需要注意其他细微差别,例如每个属性都有一个 overrideState。这个参数向体积系统指示是使用你设置的属性值,还是使用存储在体积配置文件中的默认值。有关如何正确使用 API 的信息,请参阅体积脚本 API。
属性
要编辑任何 Volume 组件覆盖中的属性,请启用属性左侧的复选框。这也告诉 HDRP 使用您为 Volume 组件指定的属性值而不是使用默认值。如果禁用该复选框,HDRP 将忽略您设置的属性,并改用该属性在 Volume 组件中的默认值。
属性 | 描述 |
---|---|
HDRI Sky | 分配 HDRP 用来渲染天空的 HDRI 纹理。 |
Enable Distortion | 启用或禁用 UV 失真。 |
- Distortion Mode | 使用下拉选单选择 HDRP 计算天空失真的方法: • Procedural:HDRP 使用均匀的风向使天空扭曲失真。 • Flowmap:HDRP 使用用户提供的流动贴图使天空扭曲失真。 |
-- Flowmap | 在 LatLong 布局中分配一个流动贴图以供 HDRP 在渲染天空时用于使 UV 失真。 仅当从 Distortion Mode 下拉选单中选择 Flowmap 时,才显示此属性。 |
-- Upper Hemisphere Only | 如果流动贴图仅包含地平线上方天空的失真,请选中此复选框。 仅当从 Distortion Mode 下拉选单中选择 Flowmap 时,才显示此属性。 |
- Scroll direction | 使用滑动条设置失真的滚动方向。 |
- Scroll speed | 修改 HDRP 滚动失真纹理的速度。 |
Intensity Mode | 使用下拉选单选择 HDRP 计算天空强度的方法。 • Exposure:HDRP 根据 EV100 中的曝光值计算强度。 • Multiplier:HDRP 通过单位乘数计算强度。 • Lux:HDRP 根据目标勒克斯 (Lux) 值计算强度。 |
- Exposure | 设置 HDRP 应用于 HDRI 天空立方体贴图的每单位面积的光量。 仅当从 Intensity Mode 下拉选单中选择 Exposure 时,才显示此属性。 |
- Multiplier | 设置 HDRP 作为环境光应用于场景的乘数。HDRP 将场景中的环境光乘以此值。 仅当从 Intensity Mode 下拉选单中选择 Multiplier 时,才显示此属性。 |
- Desired Lux Value | 为 HDRI Sky 中设置的 HDR 纹理设置绝对强度(以勒克斯为单位)。该值表示在垂直于地面的方向上接收到的光。这类似于用来代表太阳的勒克斯单位,因此可用作补充用途。 仅当从 Sky Intensity Mode 下拉选单中选择 Lux 时,才显示此属性。 |
- Upper Hemisphere Lux Value | 显示在 HDRI Sky 中设置的当前 HDR 纹理的相对强度(以勒克斯为单位)。HDRP 应用于强度的最终乘数为 Desired Lux Value / Upper Hemisphere Lux Value。此字段可提供参考信息。 仅当从 Sky Intensity Mode 下拉选单中选择 Lux 时,才显示此属性。 |
Rotation | 使用滑动条设置旋转立方体贴图的角度(以度为单位)。 |
Update Mode | 使用下拉选单设置 HDRP 更新天空环境的速率(使用环境探针和反射探针)。 • On Changed:当其中一个天空属性发生变化时,HDRP 更新天空环境。 • On Demand:HDRP 等待,直到您从脚本手动调用天空环境更新。 • Realtime:HDRP 按照 Update Period 定义的定期间隔更新天空环境。 |
- Update Period | 设置 HDRP 更新天空环境的周期(以秒为单位)。如果希望 HDRP 每帧都更新天空环境,请将值设置为 0。仅当 Update Mode 设置为 Realtime 时,才显示此属性。 |
高级属性
仅当启用更多选项时,才显示这些属性。
属性 | 描述 |
---|---|
Backplate | 指示是否将 HDRI 的底部直接投影到各种形状(例如矩形、圆形、椭圆形)的平面上或无限大的平面上。 |
- Type | 指定背板的形状。选项包括: • Disc:将 HDRI 纹理的底部投影到圆盘上。 • Rectangle:将 HDRI 纹理的底部投影到矩形上。 • Ellipse:将 HDRI 纹理的底部投影到椭圆上。 • Infinite:将 HDRI 纹理的底部投影到无限大的平面上。 |
- Ground Level | 场景中地平面的高度。 |
- Scale | 背板的缩放。HDRP 使用此属性的 X 和 Y 值来缩放背板(对于椭圆,X 和 Y 必须不同)。 |
- Projection Distance | HDRP 使用此数字来控制 HDRI 下半球在背板上的投影。投影距离越小,像素密度越高,失真越大;投影距离越大,像素密度越低,失真越小。 |
- Backplate Rotation | 物理背板的旋转。 |
- Texture Rotation | 由 HDRP 投射到背板上的 HDRI 纹理的旋转。 |
- Texture Offset | 应用于由 HDRP 投射到背板上的纹理的偏移值。 |
- Blend Amount | 背板和背景 HDRI 之间过渡的百分比。0 表示不进行混合,25 表示在背板边界的终点开始混合,50 表示从背板的中心开始混合,100 表示从背板的中心以平滑步进值开始过渡。 |
- Point Light Shadow | 指示背板是否接受来自点光源/聚光灯光源的阴影。 |
- Directional Light Shadow | 指示背板是否接受来自主方向光的阴影。 |
- Area Light Shadow | 指示背板是否接受来自面光源的阴影。 |
-Shadow Tint | 指定投射到背板上的阴影的着色颜色。 |
- Reset Color | 重置阴影已保存的 Shadow Tint。HDRI 改变时,HDRP 将计算新的默认阴影色调。 |
注意:为了能够在背板中使用环境光遮挡,请增大 Ambient Occlusion 组件覆盖上的 Direct Lighting Strength 属性值。由于背板没有全局光照,因此只能从直接光照中获取环境光遮挡。
限制:背板仅出现在局部反射探针中,不会出现在默认的天空反射中。这是因为默认的天空反射是在无穷远处投影的立方体贴图,这与 Unity 渲染背板的方式不兼容。