I updated everything to the latest Unity Editor. Also realized I had the wrong shaders on my hairs, those are fixed and the hairs look MUCH better!
4.8 KiB
Light Layers
The Light Layers feature lets you configure certain Lights to affect only specific GameObjects.
For example, in the following illustration, Light A
affects Sphere D
, but not Sphere C
. Light B
affects Sphere C
, but not Sphere D
.
To read how to implement this example, see section How to use Light Layers.
How to enable Light Layers
To enable Light Layers in your project:
-
In the URP Asset, in the Lighting section, click the vertical ellipsis icon (⋮) and select Show Additional Properties
-
In the URP Asset, in the Lighting section, select Light Layers.
When you enable Light Layers, Unity shows the following extra properties on each Light:
How to edit Light Layer names
To edit the names of Light Layers:
-
Go to Project Settings > Graphics > URP Global Settings.
-
Edit the Light Layer names in the Light Layer Names (3D) section.
How to use Light Layers
This section describes how to configure the following application example:
-
The Scene contains two Point Lights (marked
A
andB
in the illustration) and two Sphere GameObjects (C
andD
in the illustration). -
Light
A
affects SphereD
, but not SphereC
. LightB
affects SphereC
, but not SphereD
.
The following illustration shows the example:
Light A
affects Sphere D
, but not Sphere C
. Light B
affects Sphere C
, but not Sphere D
.
To implement the example:
-
Enable Light Layers in your project.
-
Create two Point Lights (call them
A
, andB
) and two Spheres (call themC
, andD
). Position the objects so that both Spheres are within the emission range of Lights. -
Go to Project Settings > Graphics > URP Global Settings. Rename Light Layer 1 to
Red
, and Light Layer 2 toGreen
. -
Select Light
A
, change its color to green. Select LightB
, change its color to red. With this setup, both Lights affect both Spheres. -
Make the following settings on Lights and Spheres:
Light
A
: in the property Light > General > Light Layer, clear all options, and selectGreen
.Light
B
: in the property Light > General > Light Layer, clear all options, and selectRed
.Sphere
C
: in the property Mesh Renderer > Additional Settings > Rendering Layer Mask, select all options, clearGreen
.Sphere
D
: in the property Mesh Renderer > Additional Settings > Rendering Layer Mask, select all options, clearRed
.Now Point Light
A
affects SphereD
, but not SphereC
. Point LightB
affects SphereC
, but not SphereD
.
How to use Custom Shadow Layers
In the illustration above, Light A
does not affect Sphere C
, and the Sphere does not cast shadow from Light A
.
The Custom Shadow Layers property lets you configure the Scene so that Sphere C
casts the shadow from Light A
.
-
Select Light
A
. -
In Light > Shadows, select the Custom Shadow Layers property. Unity shows the Layer property.
-
In the Layer property, select the Light Layer that Sphere C belongs to.
Now Light A
does not affect Sphere C
, but Sphere C
casts shadow from Light A
.
The following illustrations show the Scene with the Custom Shadow Layers property off and on.