包含此页的版本:
不含此页的版本:
光照场景包含场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表或烘焙套装。你可以将不同的光照设置烘焙到不同的光照场景资产中,并更改通用渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表(URP) 在运行时使用。
例如,你可以创建一个灯光打开的光照场景,以及另一个灯光关闭的光照场景。在运行时,你可以在玩家关闭灯光时启用第二个光照场景。
要使用光照场景,请转到活动的URP资产,并在 光照场景(Lighting Scenarios) > 光照探针光照(Light Probe Lighting) > 启用光照场景(Light Scene)。
要创建新的光照场景,以便将烘焙结果存储在其中,请执行以下作:
要烘焙到光照场景中,请按照以下步骤作:
你可以使用 ProbeReferenceVolume API 设置 URP 在运行时使用的光照场景。
如果您在运行时更改活动光照场景,URP 仅更改光源探针光源探针存储有关光线如何穿过场景中空间的信息。在给定空间中排列的光源探针集合可以改善移动对象的光照和该空间内的静态LOD场景。更多信息
请参阅术语表.您可能仍需要使用脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表以移动几何体、修改灯光或更改直接照明。
要启用光照场景之间的混合,请转到活动的URP资产,然后启用 光照探针光照(Light Probe Lighting) > 场景混合(Scenario Blending)。
你可以使用 BlendLightingScenario API 在运行时在光照场景之间进行混合。
例如,以下脚本执行以下作:
scenario01作为活动照明场景。scenario01和scenario02.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) 预览光照场景之间的过渡。按着这些次序:
如果在烘焙之间移动静态几何体,光照探针位置可能会有所不同。这意味着你不能在光照场景之间进行混合,因为在你混合的每个光照场景中,光源探针的数量及其位置必须相同。
为避免这种情况,你可以阻止URP在烘焙时重新计算探针位置。按着这些次序: