版本:Unity 6 (6000.0)
语言:英语
2D 灯光的类型
为 2D 照明准备项目

URP 中的 2D 照明系统简介

了解用于创建带照明的 2D 场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是在设计和构建游戏的各个部分。 更多信息
请参阅 词汇表
的工具和运行时组件。

这些工具旨在与 2D 渲染器无缝集成,例如 Sprite 渲染器一个组件,允许您显示图像作为精灵,用于 2D 和 3D 场景。 更多信息
请参阅 词汇表
Tilemap 渲染器../Sprite 形状渲染器。这种工具和组件系统针对移动系统进行了优化,并可在多个平台上运行。

与 3D 灯光的区别

2D 光和 3D 光的实现和行为之间存在一些关键区别,包括以下内容

新的 2D 特定组件和渲染通道

2D 照明系统包含其自身的一组 2D 光组件、着色器图 子目标和自定义 2D 渲染通道,这些通道专门为 2D 照明和渲染而设计。该软件包中还包括 2D 光和通道配置的编辑器工具。

共面

2D 照明模型专门设计用于与共面且多层级的 2D 世界一起工作。2D 光不需要在它与它照亮的对象之间进行深度分离。2D 阴影系统也适用于共面,不需要深度分离。

非基于物理

2D 光中的照明计算不像 3D 光那样基于物理。照明模型计算的详细信息可以在此处找到。

与 3D 光和 3D 渲染器不兼容

3D 光和 2D 光只能分别影响 3D 和 2D 渲染器。2D 照明不适用于或不影响 3D 渲染器,例如 网格渲染器一个网格组件,它从网格过滤器获取几何体,并在对象变换组件定义的位置渲染它。 更多信息
请参阅 词汇表
,而 3D 照明类似地对 2D 渲染器(如 Sprite 渲染器)没有影响。目前,为了在一个场景中实现 2D 和 3D 光以及 2D 和 3D 渲染器的组合,您可以使用多个 摄像机一个组件,它创建场景中特定视点的图像。输出要么绘制到屏幕上,要么作为纹理捕获。 更多信息
请参阅 词汇表
,并让其中一个摄像机渲染到 渲染纹理一种特殊的纹理类型,在运行时创建和更新。要使用它们,首先创建一个新的渲染纹理,并指定您的摄像机之一渲染到其中。然后,您可以在材质中像普通纹理一样使用渲染纹理。 更多信息
请参阅 词汇表
,并在另一个摄像机渲染的材质中对该纹理进行采样。

2D 照明图形管道的技术细节

2D 照明图形管道的渲染过程可以分解为两个不同的阶段:1)绘制光渲染纹理 2)绘制渲染器

光渲染纹理是 渲染纹理,包含有关光在屏幕空间中的颜色和形状的信息。

这两个阶段仅针对每个不同的照明灯光层集重复。换句话说,如果 排序层 1 到 4 具有完全相同的灯光集,它只会执行上述操作集一次。

默认设置允许在绘制渲染器之前提前绘制多个 批次,以减少目标切换。理想的设置将允许管道渲染所有批次的灯光渲染纹理,然后才继续绘制渲染器。这可以防止颜色目标的加载和卸载。有关更详细的信息,请参阅 优化

预阶段:计算排序层批处理

在继续进行渲染阶段之前,2D 照明图形管道首先分析场景,以评估哪些层可以在单个绘制操作中一起批处理。以下是确定层是否一起批处理的标准:1. 它们是连续的层。 2. 它们共享完全相同的灯光集。

强烈建议尽可能多地批处理层,以最大程度地减少灯光渲染纹理绘制操作的数量并提高性能。

阶段 1:绘制灯光渲染纹理

在预阶段批处理之后,管道然后绘制该批次的灯光纹理。这实际上是在渲染纹理上绘制光的形状。可以使用加色或 Alpha 混合将光的颜色和形状混合到目标灯光渲染纹理上,具体取决于光的设置。

值得注意的是,只有当至少有一个 2D 光针对它时,才会创建灯光渲染纹理。例如,如果层的灯光全部使用 **混合样式 #1**,则只创建一个灯光渲染纹理。

阶段 2:绘制渲染器

绘制完所有灯光渲染纹理后,管道将继续绘制渲染器。该系统将跟踪哪些渲染器集由哪些灯光渲染纹理集绘制。它们在 预阶段 的批处理过程中相关联。

当绘制渲染器时,它将能够访问所有(每个混合样式一个)可用的灯光渲染纹理。在 着色器在 GPU 上运行的程序。 更多信息
请参阅 词汇表
中,最终颜色通过使用指定的运算将输入颜色与灯光渲染纹理中的颜色组合来计算。

一个带有四个活动混合样式的设置示例,说明了多个混合样式如何组合在一起。在大多数情况下,您通常只需要两个混合样式即可获得所需的特效。

其他资源

2D 灯光的类型
为 2D 照明准备项目