
从Unity2021.2开始,可以在URP(通用渲染管线)中使用光照层,此功能可以创建仅影响特定对象的灯光,那么本文将介绍如何实现这一点。
首先需要创建一个示例来验证灯光层的功能。
创建示例场景
创建一个具有两个球形和两个点光源的场景。
如下所示:

在上方可以看到红色和绿色点光源分别在两个球体中反射,本文的目标是使用来自该状态的光层使每个球体反射一种光,如下图所示。

设置光层
现在设置光层,首先,按下Universal Render Pipeline Asset中Lighting右侧看起来像省略号的按钮并启用Show Additional Properties。

然后,Lighting中会出现一个名为Light Layers的复选框,勾选它。

然后从点光源的检查器中,General → Light Layer选择1: Light Layer 1将其更改为仅选中。
此外,更改另一个点光源2: Light Layer 2,以便仅选中。

最后,更改球形的设置Additional Settings → Rendering Layer Mask,并设置Mesh Renderer,另一个球体应设置为0: Light Layer default 1: Light Layer 1和0: Light Layer default 2: Light Layer 2。

如果得到如下图的渲染结果,说明光层设置成功。

此外,设置两个灯光影响地板平面的结果,
如下所示:

重命名光层
现在,可以自由更改光层的名称,这是从Project Settings → Graphics → URP Global Settings → Light Layer Names更改。

实际使用的时候,根据用途设置一个合适的名字就好了。
自定义阴影层
对于每盏灯,还可以设置一个图层来影响其阴影。
为此,请选中Light组件并从Shadows → Custom Shadow Layers设置想要Layer影响的灯光层。

在下面的应用示例中,可以看到红光只照亮了一个物体,但同时影响了两个物体的阴影。

…
以上是3D天堂关于如何使用Unity的URP光层制作只影响特定对象光的全部内容,如果你有任何反馈,请随时在本页面下方留言。