光照设置资源表示一个已保存的 LightingSettings 类的实例,用于存储烘焙全局光照系统和实时全局光照系统的数据。Unity 编辑器在为使用这些系统的场景预计算光照数据时使用此数据。
您可以为多个场景指定相同的光照设置资源或 LightingSettings
类的实例,这使得跨多个场景共享全局光照系统设置变得容易。
有两种方法可以在 Unity 编辑器中创建光照设置资源。
要从项目视图创建光照设置资源:
1.在项目视图中,单击添加 (+) 按钮,或者打开上下文菜单并导航至 Create。 2.单击 Lighting Settings。Unity 会在项目视图中创建新的光照设置资源。
要从 Lighting 窗口创建并自动指定光照设置资源:
1.打开 Lighting 窗口(菜单:Window > Rendering > Lighting)。 2.打开 Scene 选项卡。 3.单击 New Lighting Asset。Unity 会在项目视图中创建一个新的光照设置资源,并立即将其指定给活动场景。
您还可以从脚本创建光照设置资源。为此,请创建一个 LightingSettings 类的实例并将其保存到磁盘,或将其指定给场景并保存该场景。有关更多信息和代码示例,请参阅 LightingSettings API 文档。
要在 Unity 编辑器中为场景指定光照设置资源:
1.打开要为其指定光照设置资源的场景。 2.如果您打开了多个场景,请确保您要为其指定光照设置资源的场景是活动场景。 3.打开 Lighting 窗口(菜单:Window > Rendering > Lighting)。 4.打开 Scene 选项卡。 5.将光照设置资源拖到 Lighting Settings 字段,或单击 Lighting Settings 字段右侧的图标,并从列表中选择光照设置资源。
您还可以从脚本将光照设置资源指定给活动场景。为此,请加载光照设置资源以获取 LightingSettings
类的实例,然后使用"Lightmapping.lightingSettingsAPI 将该
LightingSettings` 实例指定给活动场景。有关更多信息和代码示例,请参阅 LightingSettings API 文档。
您可以在 Unity 编辑器中的两个位置查看和编辑光照设置资源的属性:
在项目视图中,如果您选择一个光照设置资源,您可以在 Inspector 中查看和编辑其属性。 如果活动场景具有为其指定的光照设置资源,您可以在 Lighting 窗口的 Scene 选项卡中查看和编辑该光照设置资源的属性。
您还可以从脚本读取或写入光照设置资源的属性。为此,请加载光照设置资源以获取 LightingSettings
类的实例,并访问其属性。有关更多信息和代码示例,请参阅 LightingSettings API 文档。
当场景没有为其制定的光照设置资源时,Unity 会为该场景使用默认的 LightingSettings
对象。默认的 LightingSettings
对象是一个 LightingSettings
类的内部只读实例。
您不能对使用默认 LightingSettings
的场景的 LightingSettings
数据进行任何更改,但 Unity 可以使用其设置执行烘焙。
要更改场景的 LightingSettings
数据,您必须使用 Unity 编辑器创建和指定光照设置资源,或使用脚本创建、配置和指定一个 LightingSettings
对象。有关更多信息和代码示例,请参阅 LightingSettings API 文档。
当您在 Inspector 或 Lighting 窗口中查看光照设置资源时,可查看或编辑的属性分为以下部分:
此部分包含与实时全局光照系统相关的设置。此部分仅在使用内置渲染管线时可见;实时全局光照仅在内置渲染管线中受支持,在 URP 或 HDRP 中不受支持。
请注意,目前已弃用实时全局光照系统,很快就会被删除。想了解更多相关信息,请参阅 Unity 博客。
属性: | 功能: |
---|---|
Realtime Global Illumination (deprecated) | 如果选中此复选框,Unity 将在使用此光照设置资源的场景中启用实时全局光照系统。 |
Realtime Environment Lighting | 启用此属性以使用实时全局光照系统实时计算和更新环境光。禁用此属性以使用烘焙全局光照系统在编辑器中预先计算环境光,然后在运行时应用它。 此属性仅当实时全局光照和烘焙全局光照均在场景中启用时可用。 |
在使用光照设置资源的场景中,此部分包含的设置会影响烘焙光源和混合光源的行为。
属性: | 功能: | |
---|---|---|
Baked Global Illumination | 启用此设置后,Unity 将为使用此光照设置资源的场景启用烘焙全局光照系统。禁用此设置时,Unity 会为使用此光照设置资源的场景禁用烘焙全局光照系统。 当烘焙全局光照系统启用时,Unity 将场景中的烘焙光源仅用于光照贴图,而混合光源的行为取决于 Lighting Mode 设置。禁用烘焙全局光照系统后,Unity 会强制场景中的所有烘焙光源和混合光源的行为就像实时光源一样。 |
|
Lighting Mode | 指定 Unity 将哪个 Lighting Mode 用于场景中使用此光照设置资源的所有混合光源。 当您更改 Lighting Mode 时,您需要为使用此光照设置资源的场景重新烘焙光照数据。 |
|
Baked Indirect | 将 Baked Indirect Lighting Mode 用于场景中使用此光照设置资源的所有混合光源。 | |
Subtractive | 将 Subtractive Lighting Mode 用于场景中使用此光照设置资源的所有混合光源。 注意:高清渲染管线 (HDRP) 不支持 Subtractive Lighting Mode。 |
|
Shadowmask | 将 Shadowmask Lighting Mode 用于场景中使用此光照设置资源的所有混合光源。 注意:通用渲染管线 (URP) 不支持 Shadowmask Lighting Mode。 |
此部分包含与光照贴图相关的设置。
Lightmapping Settings 特定于每个光照贴图后端。要查看光照贴图的设置,请参见:
当您在 Inspector 中查看光照设置资源时,此属性位于 Inspector 的顶部。当您在 Lighting 窗口中查看光照设置资源时,此属性位于 Lighting 窗口的底部,在 Generate Lighting 按钮附近。
属性: | 功能: |
---|---|
Auto Generate | 如果启用 Auto Generate ,Unity 会在您更改场景时自动预计算光照数据。 该数据包括烘焙全局光照系统的光照贴图、实时全局光照系统的光照贴图、光照探针和反射探针。 Unity 通常会在您更改场景后几秒钟开始烘焙。如果禁用 __Auto Generate__,您必须自己手动调用烘焙,在 Lighting 窗口中使用 Generate Lighting 按钮,或者 Lightmapping.Bake 或 Lightmapping.BakeAsync API。 请注意,当您使用 Auto Generate 预先计算的光照数据时,预计算的光照数据不会作为资源存储在您的项目中。相反,它存储在内存中,并作为场景的一部分进行序列化。 |
*光照设置资源添加于 2020.1 NewIn20201