Unity3D:光照设置资源
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
光照设置资源
照明设置资源表示 LightingSettings 类的已保存实例,该类存储烘焙全局照明和 Enlighten 实时全局照明系统的数据。Unity 编辑器在为使用其中一个或两个系统的场景预先计算光照数据时,会使用此数据。
您可以为多个场景指定相同的光照设置资源或 LightingSettings
类的实例,这使得跨多个场景共享全局光照系统设置变得容易。
创建光照设置资源
有两种方法可以在 Unity 编辑器中创建光照设置资源。
要从项目视图创建光照设置资源:
- 在项目视图中,单击添加 (+) 按钮,或者打开上下文菜单并导航至 Create。
- 单击 Lighting Settings。Unity 会在项目视图中创建新的光照设置资源。
要从 Lighting 窗口创建并自动指定光照设置资源:
- 打开 Lighting 窗口(菜单:Window > Rendering > Lighting)。
- 打开 Scene 选项卡。
- 单击 New Lighting Asset。Unity 会在项目视图中创建一个新的光照设置资源,并立即将其指定给活动场景。
您还可以从脚本创建光照设置资源。为此,请创建一个 LightingSettings 类的实例并将其保存到磁盘,或将其指定给场景并保存该场景。有关更多信息和代码示例,请参阅 LightingSettings API 文档。
将光照设置资源指定给场景
要在 Unity 编辑器中为场景指定光照设置资源:
- 打开要为其指定光照设置资源的场景。
- 如果您打开了多个场景,请确保您要为其指定光照设置资源的场景是活动场景。
- 打开 Lighting 窗口(菜单:Window > Rendering > Lighting)。
- 打开 Scene 选项卡。
- 将光照设置资源拖到 Lighting Settings 字段,或单击 Lighting Settings 字段右侧的图标,并从列表中选择光照设置资源。
您还可以从脚本将光照设置资源指定给活动场景。为此,请加载光照设置资源以获取 LightingSettings
类的实例,然后使用"Lightmapping.lightingSettingsAPI 将该
LightingSettings` 实例指定给活动场景。有关更多信息和代码示例,请参阅 LightingSettings API 文档。
查看和编辑光照设置资源的属性
您可以在 Unity 编辑器中的两个位置查看和编辑光照设置资源的属性:
在项目视图中,如果您选择一个光照设置资源,您可以在 Inspector 中查看和编辑其属性。 如果活动场景具有为其指定的光照设置资源,您可以在 Lighting 窗口的 Scene 选项卡中查看和编辑该光照设置资源的属性。
您还可以从脚本读取或写入光照设置资源的属性。为此,请加载光照设置资源以获取 LightingSettings
类的实例,并访问其属性。有关更多信息和代码示例,请参阅 LightingSettings API 文档。
默认 LightingSettings 数据
当场景没有为其制定的光照设置资源时,Unity 会为该场景使用默认的 LightingSettings
对象。默认的 LightingSettings
对象是一个 LightingSettings
类的内部只读实例。
您不能对使用默认 LightingSettings
的场景的 LightingSettings
数据进行任何更改,但 Unity 可以使用其设置执行烘焙。
要更改场景的 LightingSettings
数据,您必须使用 Unity 编辑器创建和指定光照设置资源,或使用脚本创建、配置和指定一个 LightingSettings
对象。有关更多信息和代码示例,请参阅 LightingSettings API 文档。
Unity 会自动生成一个环境探针和一个默认的反射探针,以确保默认情况下环境光照会影响您的场景和其中的游戏对象。要了解有关此功能的更多信息,请参阅 SkyManager。
属性
当您在 Inspector 或 Lighting 窗口中查看光照设置资源时,可查看或编辑的属性分为以下部分:
- Realtime Lighting
- Mixed Lighting
- Lightmapping Settings
- Auto Generation

Realtime Lighting
This section contains settings related to the Enlighten Realtime Global Illumination system.
属性 | 功能 |
---|---|
实时全局光照 | 如果选中此复选框,Unity 将在使用此光照设置资源的场景中启用 Enlighten 实时全局光照系统。 |
Realtime Environment Lighting | 启用此属性以使用 Enlighten 实时全局照明系统实时计算和更新环境光。 仅当场景中同时启用了 Enlighten 实时全局光照和烘焙全局光照时,此属性才可用。 |
Mixed Lighting
在使用光照设置资源的场景中,此部分包含的设置会影响烘焙光源和混合光源的行为。
属性: | 功能: | |
---|---|---|
烘焙全局光照 | 启用此设置后,Unity 将为使用此光照设置资源的场景启用烘焙全局光照系统。禁用此设置时,Unity 会为使用此光照设置资源的场景禁用烘焙全局光照系统。 当烘焙全局光照系统启用时,Unity 将场景中的烘焙光源仅用于光照贴图,而混合光源的行为取决于 Lighting Mode 设置。禁用烘焙全局光照系统后,Unity 会强制场景中的所有烘焙光源和混合光源的行为就像实时光源一样。 | |
Lighting Mode | 指定 Unity 将哪个 Lighting Mode 用于场景中使用此光照设置资源的所有混合光源。 当您更改 Lighting Mode 时,您需要为使用此光照设置资源的场景重新烘焙光照数据。 | |
Baked Indirect | 将 Baked Indirect Lighting Mode 用于场景中使用此光照设置资源的所有混合光源。 | |
减去的 | 对使用此照明设置资源的场景中的所有混合光源使用减法照明模式。 | |
Shadowmask | 对使用此光照设置资源的场景中的所有混合光源使用阴影蒙版照明模式。 |
Lightmapping Settings
属性 | 功能 |
---|---|
Lightmap Resolution | 指定用于光照贴图的单位纹素数。增加此值可提高光照贴图质量,但也会增加烘焙时间。请注意,将此值加倍会导致纹素数翻两番,因为它决定了光照贴图的高度和宽度。请参阅“照明”窗口的统计区域中的“占用纹素计数”。 |
Lightmap Padding | 确定烘焙光照贴图中不同形状之间的间隔(以纹素为单位)。默认值为 2。 |
Max Lightmap Size | 指定完整光照贴图纹理的大小(以像素为单位),该纹理为每个包含的游戏对象包含一个单独的区域。默认值为 1024。 |
Lightmap compression | 编辑器用于光照贴图的压缩级别。 - 无:不压缩光照贴图。 - 低质量:这可能比正常质量使用更少的内存和存储,但也可能会引入视觉伪影。 - 正常质量:这是内存使用和视觉质量之间的良好权衡。 - 高质量:需要比正常质量更多的内存和存储空间,但提供更好的视觉效果。 |
Ambient Occlusion | 控制烘焙环境光遮蔽中曲面的相对亮度。这仅适用于由用于烘焙光照的光照贴图器计算的间接光照。默认启用。如果启用了环境光遮蔽,它将公开三个设置:“最大距离”、“间接贡献”和“直接贡献”。对于所有三个设置,较高的值表示遮挡区域和完全照明区域之间的对比度更大s. |
Max Distance | 指定照明系统投射光线的距离,以确定是否对对象应用遮挡。较高的值会产生较长的光线,并为光照贴图提供更多的阴影,而较低的值产生较短的光线,仅当对象彼此非常接近时才提供阴影。值为 0 将投射没有最大距离的无限长光线。默认值为 1。 |
Indirect Contribution | 缩放最终光照贴图中对象反射和发射的间接环境光的亮度。这是介于 0 和 10 之间的值。默认值为 1。小于 1 的值会降低强度,而大于 1 的值会增加强度。 |
Direct Contribution | 缩放直射光的亮度。这是介于 0 和 10 之间的值。默认值为 0。此值越高,编辑器应用于直接照明的对比度就越大。 |
Directional Mode | 使光照贴图能够存储有关对象表面上每个点的主要入射光的特征的信息。有关详细信息,请参阅定向光照贴图。默认模式为定向模式。 |
Directional | 在“方向”模式下,Unity 会生成第二个光照贴图来存储入射光的主要方向。这使得漫反射法线贴图材质可以与全局照明系统配合使用。着色器在渲染期间对两种光照贴图纹理进行采样。因此,对于额外的光照贴图数据,定向模式需要的视频内存大约是非定向模式的两倍。生成额外的方向性纹理会影响烘焙性能。定向光照贴图无法在 SM2.0 硬件或使用 GLES2.0 时解码。 |
Non-directional | 非定向模式光照贴图仅包含单个纹理。因此,与定向光照贴图相比,它们需要更少的视频内存和更少的存储空间,并且在着色器中解码速度更快。这些优化会降低视觉质量。 |
Indirect Intensity | 确定实时和烘焙光照贴图中存储的间接光的亮度。这是介于 0 和 5 之间的值。大于 1 的值会增加间接光的强度,而小于 1 的值会降低间接光强度。默认值为 1。 |
Albedo Boost | 指定 Unity 在曲面之间反射的光量。此值介于 1 和 10 之间。增加此值会将反照率值拉向白色,以进行间接光计算。默认值 1 在物理上是准确的。 |
Lightmap Parameters | 光照贴图参数资源存储与烘焙全局照明相关的设置的值。编辑器提供了多个默认的光照贴图参数资源供您选择,但您也可以使用“新建”选项创建自己的光照贴图参数文件。有关详细信息,请参阅光照贴图参数。默认值为“默认-中”。选项包括“默认-中”、“默认-高分辨率”、“默认-低分辨率”和“默认-非常低分辨率”。 |
某些设置特定于某些光照贴图器后端。要查看这些设置,请访问相关光照贴图程序的页面:
- 渐进式 CPU 光照贴图器;还包括渐进式 GPU 光照贴图程序的设置
- 启迪烘焙全局照明
Auto Generation
当您在 Inspector 中查看光照设置资源时,此属性位于 Inspector 的顶部。当您在 Lighting 窗口中查看光照设置资源时,此属性位于 Lighting 窗口的底部,在 Generate Lighting 按钮附近。
属性 | 功能: |
---|---|
Auto Generate | 如果启用了自动生成,Unity 会在您更改场景时自动预计算光照数据。 此数据包括烘焙全局照明系统的光照贴图、Enlighten 实时全局照明系统的数据、光照探针和反射探针。 |
Unity 通常在您对场景进行更改后几秒钟开始烘焙。如果禁用了自动生成,则必须使用“光照”窗口中的“生成光照”按钮或光照贴图.Bake 或“光照贴图.烘焙异步 API”手动调用烘焙。 请注意,使用自动生成预计算光照数据时,预计算的光照数据不会作为资源存储在项目中。相反,它存储在内存中,并作为场景的一部分进行序列化。 |
由3D建模学习工作室整理翻译,转载请注明出处!