程序化天空 (Procedural Sky)
程序化天空体积 (Procedural Sky Volume) 组件覆盖允许您指定高清渲染管线 (High Definition Render Pipeline, HDRP) 生成的天空类型。例如,可以设置太阳大小、地面颜色和天空色调。
此天空类似于 Unity 内置渲染管线中的程序化天空。不同在于此天空包含内置渲染管线所没有的额外属性。HDRP 的程序化天空会显示 Multiplier、Update Mode 属性以及用于在 HDRP 烘焙过程中包含太阳的选项。
弃用功能
HDRP 在 2019.3 中弃用了程序化天空 (Procedural Sky),并将其替换为基于物理的天空 (Physically Based Sky)。要在 Unity 2019.3 或更高版本中将程序化天空用于 HDRP 项目,请遵循从 2019.2 升级到 2019.3 指南中的说明。
使用程序化天空
程序化天空使用体积 (Volume) 框架,因此若要启用和修改程序化天空属性,必须将程序化天空覆盖添加到场景中的体积。要向体积添加程序化天空,请执行以下操作:
- 在 Scene 视图或 Hierarchy 视图中,选择一个包含 Volume 组件的游戏对象以在 Inspector 中查看该游戏对象。
- 在 Inspector 中,导航到 Add Override > Sky,然后单击 Procedural Sky。
添加程序化天空覆盖后,必须将体积设置为使用程序化天空。体积使用的天空类型由视觉环境 (Visual Environment) 覆盖进行控制。在视觉环境覆盖中,导航到 Sky 部分,然后将 Type 设置为 Procedural Sky。HDRP 现在会为此体积所影响的任何摄像机渲染程序化天空。
API
要在运行时访问和控制此覆盖,请使用体积脚本 API。由于体积系统的工作原理,可以使用与标准 Unity 组件不同的方式来编辑属性。也需要注意其他细微差别,例如每个属性都有一个 overrideState。这个参数向体积系统指示是使用你设置的属性值,还是使用存储在体积配置文件中的默认值。有关如何正确使用 API 的信息,请参阅体积脚本 API。
属性
要编辑任何 Volume 组件覆盖中的属性,请启用属性左侧的复选框。这也告诉 HDRP 使用您为 Volume 组件指定的属性值而不是使用默认值。如果禁用该复选框,HDRP 将忽略您设置的属性,并改用该属性在 Volume 组件中的默认值。
属性 | 描述 |
---|---|
Enable Sun Disk | 启用此复选框可以使 HDRP 显示由 Sky Size、Sun Size Convergence、Exposure 和 Multiplier 定义的太阳圆盘。 |
Sun Size | 使用滑动条设置太阳圆盘的大小修改器。 |
Sun Size Convergence | 使用滑动条设置太阳的大小收敛,较小的值使太阳看起来更大。 |
Atmospheric Thickness | 使用滑动条设置大气密度,较高密度的大气可以吸收更多光。 |
Sky Tint | 使用拾色器来选择天空的颜色。 |
Ground Color | 使用拾色器来选择地面(地平线以下的区域)的颜色。 |
Exposure | 设置 HDRP 作为环境光应用于场景的曝光。HDRP 使用 2 的幂次方(指数为 Exposure 值)来计算场景中的环境光。 |
Multiplier | 设置 HDRP 作为环境光应用于场景的乘数。HDRP 将场景中的环境光乘以此值。 |
Update Mode | 使用下拉选单设置 HDRP 更新天空环境的速率(使用环境探针和反射探针)。 • On Changed:当其中一个天空属性发生变化时,HDRP 更新天空环境。 • On Demand:HDRP 等待,直到您从脚本手动调用天空环境更新。 • Realtime:HDRP 按照 Update Period 定义的定期间隔更新天空环境。 |
- Update Period | 设置 HDRP 更新天空环境的周期(以秒为单位)。如果希望 HDRP 每帧都更新天空环境,请将值设置为 0。仅当 Update Mode 设置为 Realtime 时,才显示此属性。 |