间接光照控制器 (Indirect Lighting Controller)
间接光照控制器是一个体积 (Volume) 组件,可用于全局控制烘焙或预先计算的间接光照强度。
在需要全局设置光照动画的情况下,此覆盖非常有用。
使用间接光照控制器
间接光照控制器使用体积 (Volume) 框架,因此若要启用和修改间接光照控制器属性,必须将间接光照控制器覆盖添加到场景中的体积。要向体积添加间接光照控制器,请执行以下操作:
- 在 Scene 视图或 Hierarchy 视图中,选择一个包含 Volume 组件的游戏对象以在 Inspector 中查看该游戏对象。
- 在 Inspector 中,导航到 Add Override > Lighting,然后单击 Indirect Lighting Controller。现在便可以使用间接光照控制器来控制烘焙或预先计算的间接光照。
API
要在运行时访问和控制此覆盖,请使用体积脚本 API。由于体积系统的工作原理,可以使用与标准 Unity 组件不同的方式来编辑属性。也需要注意其他细微差别,例如每个属性都有一个 overrideState。这个参数向体积系统指示是使用你设置的属性值,还是使用存储在体积配置文件中的默认值。有关如何正确使用 API 的信息,请参阅体积脚本 API。
属性
要编辑任何 Volume 组件覆盖中的属性,请启用属性左侧的复选框。这也告诉 HDRP 使用您为 Volume 组件指定的属性值而不是使用默认值。如果禁用该复选框,HDRP 将忽略您设置的属性,并改用该属性在 Volume 组件中的默认值。
属性 | 描述 |
---|---|
Indirect Diffuse Lighting Multiplier | 光照贴图、光照探针、光照探针体积、屏幕空间全局光照和光线追踪全局光照的乘数。HDRP 将所有这些光照数据乘以此值。 |
Indirect Diffuse Lighting Layers | 指定用于间接漫射光照的光源层。如果启用光源层,可以使用光源层将场景中的网格与上述乘数分离。 |
Reflection Lighting Multiplier | 烘焙、实时和自定义反射探针和平面探针、屏幕空间反射、光线追踪反射和天空反射的乘数。HDRP 将所有这些光照数据乘以此值。 |
Reflection Lighting Layers | 指定用于反射光照的光源层。如果启用光源层,可以使用光源层将场景中的网格与上述乘数分离。 |
Reflection/Planar Probe Intensity Multiplier | 烘焙、实时和自定义反射探针和平面探针的乘数。HDRP 将反射探针数据乘以此值。 |
详细信息
适合使用间接光照控制器的一个例子是,摄像机处于黑暗区域,而您想要突然照亮该区域。要创建此效果,请执行以下操作:
- 创建 Scene Settings 游戏对象(菜单:GameObject > Rendering > Scene Settings)并添加 Indirect Lighting Controller(单击 Scene Settings 游戏对象,然后在 Volume 组件的 Inspector 中单击 Add Override 并选择 Indirect Lighting Controller)。
- 将一个碰撞体添加到 Scene Settings 游戏对象并启用 Is Trigger 复选框。将碰撞体的 Size 设置为想要更改间接光照的区域大小。
- 在 Indirect Lighting Controller 中,将 Indirect Diffuse Intensity 和 Indirect Specular Intensity 设置为 0。这会使所有间接光照变暗为黑色。
- 当照亮该区域时,请动画化(使用时间轴或动画)Volume 组件的 Weight 属性以从 1 过渡到 0。这将逐渐在 Volume 内设置的值和影响摄像机的其他 Volume 的值之间进行插值。
- 因此,间接光照将全局淡入。请更改动画的长度以加快或减慢淡入淡出过程。