diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/Inspectors/global-settings.png b/com.unity.render-pipelines.universal/Documentation~/Images/Inspectors/global-settings.png index efbc59c034e..3b108703fe5 100644 --- a/com.unity.render-pipelines.universal/Documentation~/Images/Inspectors/global-settings.png +++ b/com.unity.render-pipelines.universal/Documentation~/Images/Inspectors/global-settings.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb2960d5d346d0d62d8a040c10e814da356fdc793c49ea65ecb77d5272438a11 -size 46846 +oid sha256:e1c6912417ddbe474c48a0206e8ea26061a4280a32614bca6021a21e3a1d2c38 +size 48075 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/both-lights.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/both-lights.png new file mode 100644 index 00000000000..f8a59d56e16 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/both-lights.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5c87aa1d99297d4146a6cd53c3d7e9e16300763a2fb41a9cafb66d6228e78f3 +size 244826 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/custom-shadow-layers-off.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/custom-shadow-layers-off.png new file mode 100644 index 00000000000..e6393b5f598 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/custom-shadow-layers-off.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bbc7e142e5d4847d6973cc0af809c31c47f31d0d789e486ab1906862fd3cc01 +size 119480 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/custom-shadow-layers-on.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/custom-shadow-layers-on.png new file mode 100644 index 00000000000..a5bce55f5ed --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/custom-shadow-layers-on.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e90fdf9c00669a7b846051a7dd2e5dea30f0c5f4ff67258f85286ebd460eae2 +size 119151 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-enable.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-enable.png new file mode 100644 index 00000000000..b9607efe83e --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-enable.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee91052f8ad122da26311a4c0063cf7e09960c78daf118b65e13e1d63b8f9416 +size 33529 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-example.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-example.png new file mode 100644 index 00000000000..562c4a4588e --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-example.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd354401c69f663151bb66ae803d10ba7da3ad523f3616b8590ecb1c0b16d961 +size 355955 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-culling-mask-disabled.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-culling-mask-disabled.png new file mode 100644 index 00000000000..f3d668d51a3 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-culling-mask-disabled.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3686a67c5afe25cf1b7cf18400026f43ecfc1b65b5c00626e9d760caddfb666e +size 8302 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-light-layer.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-light-layer.png new file mode 100644 index 00000000000..e3030baea03 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-light-layer.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6afd048613c2b2efddcfe1e2c0d48c9dd2acab4a8cd2d3d386e0fc9b5db3bea7 +size 24233 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-shadow-layers.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-shadow-layers.png new file mode 100644 index 00000000000..0ea7c2ccfdc --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-prop-shadow-layers.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bbcd27b936a3f4089a0f3281cb86e5f6a0b656032e811fc2de13d89d70f83d8 +size 20032 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-urp-global-settings.png b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-urp-global-settings.png new file mode 100644 index 00000000000..d9d927a06f5 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/lighting/light-layers/light-layers-urp-global-settings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a43d342fda0ad5c3ed51182781db484b1e2351513b8d39b0cdf07d49e09b2d6 +size 32636 diff --git a/com.unity.render-pipelines.universal/Documentation~/Images/settings-general/show-additional-properties.png b/com.unity.render-pipelines.universal/Documentation~/Images/settings-general/show-additional-properties.png new file mode 100644 index 00000000000..03c886bb991 --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/Images/settings-general/show-additional-properties.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4b71cb5eb61b3e469c6fa9fc54bbe58c2df4d2eb5d3bd183149c138eca19487 +size 7244 diff --git a/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md b/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md index c32f76016a2..5b83d50c1d6 100644 --- a/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md +++ b/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md @@ -39,6 +39,7 @@ * [The Universal Additional Light Data component](universal-additional-light-data.md) * [Shadows in the Universal Render Pipeline](Shadows-in-URP.md) * [Reflection probes](lighting/reflection-probes.md) + * [Light Layers](lighting/light-layers.md) * [Lens Flare asset](shared/lens-flare/lens-flare-asset.md) * [Cameras](cameras.md) * [The Universal Additional Camera Data component](universal-additional-camera-data.md) diff --git a/com.unity.render-pipelines.universal/Documentation~/lighting/light-layers.md b/com.unity.render-pipelines.universal/Documentation~/lighting/light-layers.md new file mode 100644 index 00000000000..f9e71a6672e --- /dev/null +++ b/com.unity.render-pipelines.universal/Documentation~/lighting/light-layers.md @@ -0,0 +1,105 @@ +# 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`. + +![Light A affects Sphere D, but not Sphere C. Light B affects Sphere C, but not Sphere D.](../Images/lighting/light-layers/light-layers-example.png) + +To read how to implement this example, see section [How to use Light Layers](#how-to-light-layers). + +## How to enable Light Layers + +To enable Light Layers in your project: + +1. In the [URP Asset](../universalrp-asset.md), in the **Lighting** section, click the vertical ellipsis icon (⋮) and select **Show Additional Properties** + + ![Show Additional Properties](../Images/settings-general/show-additional-properties.png) + +2. In the [URP Asset](../universalrp-asset.md), in the **Lighting** section, select **Light Layers**. + + ![URP Asset > Lighting > Light Layers](../Images/lighting/light-layers/light-layers-enable.png)
*URP Asset > Lighting > Light Layers* + +When you enable Light Layers, Unity shows the following extra properties on each Light: + +* General > Light Layer + + ![](../Images/lighting/light-layers/light-layers-prop-light-layer.png) + +* Shadows > Custom Shadow Layers + + ![](../Images/lighting/light-layers/light-layers-prop-shadow-layers.png) + +Enabling Light Layers disables the **Culling Mask** property on Lights (Rendering > Culling Mask). + +![](../Images/lighting/light-layers//light-layers-prop-culling-mask-disabled.png)
*Unity disables Culling Mask when you enable Light Layers.* + +## How to edit Light Layer names + +To edit the names of Light Layers: + +1. Go to **Project Settings** > **Graphics** > **URP Global Settings**. + +2. Edit the Light Layer names in the **Light Layer Names (3D)** section. + + ![Graphics > URP Global Settings > Light Layer Names (3D)](../Images/Inspectors/global-settings.png)
*Graphics > URP Global Settings > Light Layer Names (3D)* + +## How to use Light Layers + +This section describes how to configure the following application example: + +* The Scene contains two Point Lights (marked `A` and `B` in the illustration) and two Sphere GameObjects (`C` and `D` in the illustration). + +* Light `A` affects Sphere `D`, but not Sphere `C`. Light `B` affects Sphere `C`, but not Sphere `D`. + +The following illustration shows the example: + +![Light A affects Sphere D, but not Sphere C. Light B affects Sphere C, but not Sphere D.](../Images/lighting/light-layers/light-layers-example.png)
*Light `A` affects Sphere `D`, but not Sphere `C`. Light `B` affects Sphere `C`, but not Sphere `D`.* + +To implement the example: + +1. [Enable Light Layers](#enable) in your project. + +2. Create two Point Lights (call them `A`, and `B`) and two Spheres (call them `C`, and `D`). Position the objects so that both Spheres are within the emission range of Lights. + +3. Go to **Project Settings > Graphics > URP Global Settings**. Rename Light Layer 1 to `Red`, and Light Layer 2 to `Green`. + + ![URP Global Settings](../Images/lighting/light-layers/light-layers-urp-global-settings.png) + +4. Select Light `A`, change its color to green. Select Light `B`, change its color to red. With this setup, both Lights affect both Spheres. + + ![Both Lights affect both Spheres.](../Images/lighting/light-layers/both-lights.png) + +5. Make the following settings on Lights and Spheres: + + Light `A`: in the property **Light > General > Light Layer**, clear all options, and select `Green`. + + Light `B`: in the property **Light > General > Light Layer**, clear all options, and select `Red`. + + Sphere `C`: in the property **Mesh Renderer > Additional Settings > Rendering Layer Mask**, select all options, clear `Green`. + + Sphere `D`: in the property **Mesh Renderer > Additional Settings > Rendering Layer Mask**, select all options, clear `Red`. + + Now Point Light `A` affects Sphere `D`, but not Sphere `C`. Point Light `B` affects Sphere `C`, but not Sphere `D`. + + ![Point Light A affects Sphere D, but not Sphere C. Point Light B affects Sphere C, but not Sphere D.](../Images/lighting/light-layers/light-layers-example.png) + +## 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`. + +1. Select Light `A`. + +2. In **Light > Shadows**, select the **Custom Shadow Layers** property. Unity shows the **Layer** property. + +3. 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. + +![Custom Shadow Layers property off](../Images/lighting/light-layers/custom-shadow-layers-off.png) + +![Custom Shadow Layers property on](../Images/lighting/light-layers/custom-shadow-layers-on.png) diff --git a/com.unity.render-pipelines.universal/Documentation~/whats-new/urp-whats-new.md b/com.unity.render-pipelines.universal/Documentation~/whats-new/urp-whats-new.md index 35903234ab6..f73a6a0b6b6 100644 --- a/com.unity.render-pipelines.universal/Documentation~/whats-new/urp-whats-new.md +++ b/com.unity.render-pipelines.universal/Documentation~/whats-new/urp-whats-new.md @@ -80,6 +80,8 @@ The URP Global Settings section lets you define project-wide settings for URP. I Light Layers let you mask certain lights in a Scene to affect particular meshes. The lights assigned to a specific layer only affect meshes assigned to the same layer. +For more information, see the page [Light layers](../lighting/light-layers.md). + ### New URP package samples New URP samples are available in the Package Manager. The samples show use cases of URP features, their configuration, and practical applications in one or more scenes.