环境光照
使用环境光照可以模拟场景周围发出的光照。通常使用环境光照来模拟天空光照,但是您也可以使用环境光照来模拟彩色环境光或照明工作室。 在高清渲染管线 (High Definition Render Pipeline, HDRP) 中,环境光照分为两个部分:
- 视觉环境,由视觉环境体积 (Visual Environment Volume) 覆盖进行控制。这可以控制您能通过摄像机看到的天空盒,并代表环境光照的视觉侧。在内置渲染管线中,可以根据每个场景自定义视觉环境光照设置。相比之下,HDRP 的视觉环境使用体积框架在同一场景中天空(和雾)的不同环境光照设置集合之间进行平滑插值。
- 光照环境,由 Lighting 窗口的 Environment (HDRP) 部分进行控制。HDRP 使用光照环境来计算场景的间接环境光照。不会使用体积框架,因为 HDRP 的间接环境光照目前仅支持一种环境光照来源。
本质上,您使用视觉环境来控制天空在场景中的外观,而使用光照环境来控制天空对间接环境光照的影响。
视觉环境
视觉环境 (Visual Environment) 是一个体积覆盖,告诉 HDRP 您希望透过摄像机看到该体积影响什么类型的天空和雾效。有关如何自定义视觉环境的信息,请参阅视觉环境 (Visual Environment) 文档。
Unity 项目的 HDRP 资源具有以下也会影响所有视觉环境的属性:
- Reflection Size:控制天空立方体贴图的分辨率。对于不受局部反射探针影响的区域,Unity 将此立方体贴图用作回退反射探针。通过摄像机直接看到的天空质量不受影响。
- Lighting Override Mask:这是一种 LayerMask,允许将通过摄像机看到的天空与受到环境光照影响的天空分离。例如,您可能希望在夜间有一片黑暗的天空,但还希望拥有更明亮的光照,确保仍然可以看清楚。请参阅将视觉环境与光照环境分离。
HDRP 内置天空类型
HDRP 具有三种内置的天空类型:
HDRP 还允许您实现自己的天空类型来显示背景和处理环境光照。请参阅自定义 HDRP文档了解关于如何实现自己的天空的说明。
注意:程序化天空已弃用,不再内置于 HDRP 中。有关如何将程序化天空添加到 HDRP 项目的信息,请参阅从 2019.2 升级到 2019.3 指南。
光照环境
Environment (HDRP) 是 Lighting 窗口中的一部分,允许您指定要用于间接环境光的天空。要打开该窗口,请选择 Window > Lighting Settings。
Environment (HDRP) 部分位于顶部,有两个可以编辑的设置:
设置 | 描述 |
---|---|
Profile | 天空的体积配置文件 (Volume Profile)。此体积配置文件必须包含至少一个天空体积覆盖。 |
Static Lighting Sky | 用于间接环境光模拟的天空。下拉选单仅包含在 Profile 中包含且激活的天空类型。例如,如果 Profile 中激活了渐变天空 (Gradient Sky) 体积覆盖,则您可以从此下拉选单中选择 Gradient Sky 选项。 如果 Profile 中激活了云层 (Cloud Layer) 体积覆盖,则会影响间接环境光。 仅当您将一个体积配置文件分配给 Profile 字段且该 Profile 字段至少激活了一个天空体积覆盖时,才能编辑此设置。 |
可以将相同的体积配置文件分配给场景中的 Static Lighting Sky 字段和体积 (Volume)。如果执行了这一操作,并且对体积中的烘焙光照和视觉背景使用相同的天空设置,则烘焙光照将在运行时精确匹配背景。如果要将环境光照的光照烘焙分别控制到场景中的视觉背景,则可以为每个过程分配不同的体积配置文件。
注意:对烘焙环境的更改仅在烘焙过程中影响烘焙光照贴图和光照探针。
将视觉环境与光照环境分离
可以使用 Unity 项目的 HDRP 资源中的天空 Lighting Override Mask 将视觉环境与环境光照分开。如果将 Lighting Override Mask 设置为 Nothing,或者设置为没有体积的一系列层 (Layer),则不会层 (Layer) 用作覆盖 (override)。这意味着环境光照来自所有影响摄像机的体积。如果将 Lighting Override Mask 设置为有体积的层,则 HDRP 仅使用这些层上的体积来计算环境光照。
希望将天空光照与视觉天空分离并为每一方使用不同的体积配置文件的一个例子,就是当您拥有包含阳光的 HDRI 天空 (HDRI Sky) 时。为了在应用程序运行时显示太阳,天空背景必须显示一个具有太阳的 HDRI 天空。为了实现太阳的实时光照,必须在场景中使用方向光,而且对于烘焙过程,应使用与第一个相同但不包括太阳的 HDRI 天空。如果使用包含太阳的 HDRI 天空来烘焙光照,太阳将影响光照两次(一次通过方向光,一次通过烘焙过程),使光照看起来不真实。
环境光照探针
HDRP 使用环境光照探针作为间接漫射光照的最终回退目标。影响的对象包括:
- 如果没有为场景计算任何间接环境光,则会影响所有网格渲染器(当 Unity 尚未为场景计算任何光照贴图或光照探针时适用)
- Light Probe Mode 设置为 Off 的网格渲染器
- 如果 Global Light Probe Dimmer 设置为大于 0 的值,则会影响体积雾
环境光照探针可以是静态的(仅生成一次),也可以是动态的(在运行时更新)。注意:如果场景中有一个光照探针组,并且您已经计算出间接环境光照,那么环境光照探针只会影响 Light Probe Mode 设置为 Off 的网格渲染器以及具有体积雾(如果在场景中启用)的网格渲染器。
环境反射探针
HDRP 使用环境反射探针作为间接镜面反射光照的回退目标。这意味着只有不受局部反射探针、屏幕空间反射和光线追踪反射影响的区域才会受此影响。
反射
反射探针的工作原理与摄像机类似:它们都使用体积系统,因此会使用天空中的环境光照,而此设置可以在影响它们的体积 (Volume) 的视觉环境 (Visual Environment) 中进行。