灯光模式
在灯光检查器中提供了三种灯光模式定义灯光用途的灯光属性。可以设置为实时、烘焙和混合。 更多信息
参见 术语表。
- 烘焙:这些灯光的直接和间接照明会被烘焙到光照贴图预渲染的纹理,包含光源对场景中静态对象的影响。光照贴图叠加在场景几何体上以创建照明效果。 更多信息
参见 术语表中,这可能是一个耗时的过程。但是,处理这些灯光没有任何运行时成本,不过将生成的光照贴图应用到场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,放置环境、障碍物和装饰物,本质上是分段设计和构建游戏。 更多信息
参见 术语表确实会产生少量成本。
- 实时:这些灯光的直接照明和阴影是实时的,因此不会烘焙到光照贴图中。它们的运行时成本可能很高,具体取决于场景的复杂程度、投射阴影灯光的数量、重叠灯光的数量等。此外,如果启用EnlightenGeomerics 在 Unity 中用于 Enlighten 实时全局照明的照明系统。 更多信息
参见 术语表实时全局照明一组模拟直接和间接照明的技术,以提供逼真的照明效果。
参见 术语表,则在运行时更新间接照明将产生额外的性能成本。
- 混合:这是一种混合模式,提供烘焙和实时功能的混合,例如烘焙的间接照明和实时的直接照明。场景中所有混合灯光的行为及其性能影响取决于该场景的灯光模式。
需要注意的是,灯光的模式只有在启用烘焙全局照明系统时才相关。如果未使用任何全局照明系统或仅使用 Enlighten 实时全局照明系统,则所有烘焙和混合灯光都将表现得好像它们的 Mode 属性设置为实时一样。
实时
这些也称为实时灯光。
Unity 在运行时每帧执行一次实时灯光的照明计算。可以在运行时更改实时灯光的属性,以创建闪烁灯泡或手电筒穿过黑暗房间等效果。
实时灯光可用于照亮角色或可移动几何体并对其投射阴影。
实时灯光行为
- 实时灯光最多可投射到阴影距离处的阴影。
- 默认情况下,实时灯光仅对场景贡献实时直接照明。如果使用内置渲染管线一系列操作,获取场景内容并在屏幕上显示。Unity 允许您从预建的渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 术语表并在项目中启用Enlighten 实时全局照明,则实时灯光还会对场景贡献实时间接照明。
实时灯光的限制
- 对实时灯光执行运行时计算可能成本很高,尤其是在复杂场景或低端硬件上。
- 因为实时灯光默认情况下仅对场景贡献直接照明,所以阴影看起来完全是黑色的,并且没有任何间接照明效果(例如颜色反弹)。这可能会导致场景中的照明不真实。
混合
这些也称为混合灯光。
混合灯光结合了实时和烘焙照明的元素。可以使用混合灯光将动态阴影与来自同一光源的烘焙照明结合起来,或者当希望灯光贡献实时直接照明和烘焙间接照明时。
要使用混合灯光,必须首先了解实时灯光其 Mode 属性设置为实时的灯光组件。Unity 在运行时每帧计算和更新实时灯光的照明。不会预计算任何实时灯光。 更多信息
参见 术语表和烘焙灯光其 Mode 属性设置为烘焙的灯光组件。Unity 在运行时之前预先计算烘焙灯光的照明,并且不将其包含在任何运行时照明计算中。 更多信息
参见 术语表的优点和局限性。
混合灯光行为
- 场景中所有混合灯光的行为取决于灯光窗口中的灯光模式设置。不同的灯光模式具有非常不同的性能特征和不同的视觉保真度级别。有关更多信息,请参见灯光模式。
- 可以在运行时更改混合灯光的属性。这会更新它们的实时照明,但不会更新它们的烘焙照明。执行此操作时,请注意避免出现不需要的视觉效果。
混合灯光的限制
- 混合灯光的性能成本差异很大,具体取决于灯光模式。但是,因为混合灯光始终至少结合了一些实时照明和一些烘焙照明,所以混合灯光始终比完全烘焙的照明涉及更多的运行时计算,并且比完全实时的照明占用更高的内存使用量。
请注意,如果在场景中禁用烘焙全局照明,Unity 会强制混合灯光表现得好像将它们的Mode设置为实时一样。发生这种情况时,Unity 会在灯光组件检查器Unity 窗口,显示有关当前选定游戏对象、资源或项目设置的信息,允许检查和编辑值。 更多信息
参见 术语表上显示警告。
烘焙
这些也称为烘焙灯光。
Unity 在 Unity 编辑器中执行烘焙灯光的计算,并将结果保存到磁盘作为照明数据。此过程称为烘焙。在运行时,Unity 加载烘焙的照明数据并使用它来照亮场景。因为复杂的计算是在预先执行的,所以烘焙灯光减少了运行时的着色成本,并降低了阴影的渲染成本。
烘焙灯光可用于照亮在运行时不会发生变化的事物,例如风景。
烘焙灯光行为
- Unity 将烘焙灯光的直接照明和间接照明都烘焙到光照贴图中。有关使用光照贴图的更多信息,请参见光照贴图。
- Unity 将烘焙灯光的直接和间接照明都烘焙到灯光探测器中。有关使用灯光探测器的更多信息,请参见灯光探测器灯光探测器存储有关光线如何穿过场景中空间的信息。在给定空间内布置的灯光探测器集合可以改善该空间内移动对象和静态 LOD 场景的照明。 更多信息
参见 术语表。
烘焙灯光的限制
- 无法在运行时更改烘焙灯光的属性。
- 烘焙灯光不会对镜面照明做出贡献。
- 动态游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路点等。游戏对象的用途由附加到它的组件定义。 更多信息
参见 术语表不会接收来自烘焙灯光的灯光或阴影。
请注意,如果在场景中禁用烘焙全局照明,Unity 会强制烘焙灯光表现得好像将它们的Mode设置为实时一样。发生这种情况时,Unity 会在灯光组件检查器上显示警告。