Version: 6000.3
语言: 中文
选择在运行时更改照明的方法
使用天空遮挡在运行时更新来自天空的光源

使用光照场景烘焙不同的光照设置

光照场景包含场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
或烘焙套装。你可以将不同的光照设置烘焙到不同的光照场景资产中,并更改通用渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
(URP) 在运行时使用。

例如,你可以创建一个灯光打开的光照场景,以及另一个灯光关闭的光照场景。在运行时,你可以在玩家关闭灯光时启用第二个光照场景。

启用光照场景

要使用光照场景,请转到活动的URP资产,并在 光照场景(Lighting Scenarios) > 光照探针光照(Light Probe Lighting) > 启用光场景(Light Scene)。

添加光照场景

要创建新的光照场景,以便将烘焙结果存储在其中,请执行以下作:

  1. 在“照明”窗口中打开“自适应探针体积”面板
  2. 光照场景(Lighting Scenarios) 分段中,选择 添加(Add) (+) 按钮以添加光照场景。

烘焙到光照场景中

要烘焙到光照场景中,请按照以下步骤作:

  1. 光照场景(Lighting Scenarios) 分段中,选择一个 光照场景(Lighting Scenario) 以使其处于活动状态。
  2. 选择 生成光照(Generate Lighting)。URP将烘焙结果存储在活动的光照场景中。

你可以使用 ProbeReferenceVolume API 设置 URP 在运行时使用的光照场景。

如果您在运行时更改活动光照场景,URP 仅更改光源探针光探针存储有关光线如何穿过场景中空间的信息。在给定空间中排列的光源探针集合可以改善移动对象的光照和该空间内的静态LOD场景。更多信息
请参阅术语表
.您可能仍需要使用脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
以移动几何体、修改灯光或更改直接照明。

光照场景之间的混合

要启用光照场景之间的混合,请转到活动的URP资产,然后启用 光照探针光照(Light Probe Lighting) > 场景混合(Scenario Blending)。

你可以使用 BlendLightingScenario API 在运行时在光照场景之间进行混合。

例如,以下脚本执行以下作:

  1. scenario01作为活动照明场景。
  2. 设置每帧要混合的单元格数,这对于优化目的很有用。
  3. 更新每帧的自适应探针体积混合因子,以便在两帧之间进行混合scenario01scenario02.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BlendLightingScenarios : MonoBehaviour
{
    UnityEngine.Rendering.ProbeReferenceVolume probeRefVolume;
    public string scenario01 = "Scenario01Name";
    public string scenario02 = "Scenario02Name";
    [Range(0, 1)] public float blendingFactor = 0.5f;
    [Min(1)] public int numberOfCellsBlendedPerFrame = 10;

    void Start()
    {
        probeRefVolume = UnityEngine.Rendering.ProbeReferenceVolume.instance;
        probeRefVolume.lightingScenario = scenario01;
        probeRefVolume.numberOfCellsBlendedPerFrame = numberOfCellsBlendedPerFrame;
    }

    void Update()
    {
        probeRefVolume.BlendLightingScenario(scenario02, blendingFactor);
    }
}

光照场景之间的预览混合

你可以使用 渲染调试器(Rendering Debugger) 预览光照场景之间的过渡。按着这些次序:

  1. 转到 Window > Analysis > Rendering Debugger 以打开渲染调试器。
  2. 场景混合目标设置为光照场景。
  3. 使用场景混合因子(Scenario Blending Factor) 检查场景视图:您正在创建的世界的交互式视图。您可以使用场景视图来选择和定位场景、角色、摄像机、灯光和所有其他类型的游戏对象。更多信息
    请参阅术语表
    .

在不同的光照场景中保持光照探针相同

如果在烘焙之间移动静态几何体,光照探针位置可能会有所不同。这意味着你不能在光照场景之间进行混合,因为在你混合的每个光照场景中,光源探针的数量及其位置必须相同。

为避免这种情况,你可以阻止URP在烘焙时重新计算探针位置。按着这些次序:

  1. 烘焙一个光照场景。
  2. 将另一个光照场景设置为活动光照场景。
  3. 更改场景照明或几何体。
  4. 在“探针放置”部分中,将“探针位置”设置为“不重新计算”
  5. 选择“生成照明”(Generate Lighting) 以仅重新计算间接照明,并跳过探头放置计算。

其他资源

选择在运行时更改照明的方法
使用天空遮挡在运行时更新来自天空的光源