initial commit

This commit is contained in:
Jo 2025-01-07 02:06:59 +01:00
parent 6715289efe
commit 788c3389af
37645 changed files with 2526849 additions and 80 deletions

View file

@ -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).
## <a name="enable"></a>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 (&vellip;) 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)<br/>*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)<br/>*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)<br/>*Graphics > URP Global Settings > Light Layer Names (3D)*
## <a name="how-to-light-layers"></a>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)<br/>*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)
## <a name="shadow-layers"></a>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)

View file

@ -0,0 +1,63 @@
# Reflection probes
This page describes URP-specific behavior of reflection probes.
For general information on reflection probes, see the page [Reflection Probes](https://docs.unity3d.com/Manual/ReflectionProbes.html).
## Configuring reflection probe settings
To configure settings related to reflection probes, in a URP Asset, select **Lighting** > **Reflection Probes**.
![Reflection probe settings](../Images/lighting/reflection-probe-blending-setting.png)<br/>*Reflection probe settings.*
The Reflection Probes section contains the following properties:
| __Property__ | __Description__ |
| --- | --- |
| **Probe Blending** | Select this property to enable [reflection probe blending](#reflection-probe-blending). |
| **Box Projection** | Select this property to enable reflection probe box projection. |
## Reflection probe blending
Reflection probe blending lets you avoid a situation where a reflection suddenly appears on an object when it enters the probe box volume. When reflection probe blending is enabled, Unity gradually fades probe cubemaps in and out as the reflective object passes from one volume to the other.
URP supports reflection probe blending for the Forward and the Deferred Rendering Paths.
### Reflection probe volume
Each reflection probe has a box volume. A reflection probe only affects parts of a GameObject that are inside the box volume. When a pixel of an object is outside of any reflection probe volume, Unity uses the skybox reflection.
In URP, Unity evaluates the contribution of each probe for each individual pixel, depending on the position of the pixel relative to the boundary of the probe volume. This behavior is different from the Built-in Render Pipeline, where Unity evaluates the contribution of a probe for the whole object.
### Blend Distance
Each reflection probe has the **Blend Distance** property. This property is the distance from the face of a reflection box volume towards the center of the box volume.
Unity uses the Blend Distance property to determine the contribution of a reflection probe. When a pixel of an object is on the face of a reflection probe volume, that pixel gets 0% of reflections from the probe. When a pixel is inside the reflection probe volume and its distance from each face exceeds the Blend Distance value, the pixel gets 100% of reflections.
If the Blend Distance value is more than half of the distance between faces of the reflection probe volume, the reflection probe cannot provide 100% contribution to any pixel within the volume.
### Which probes affect a GameObject
When a GameObject is within multiple reflection probe volumes, maximum two of the probes can affect the GameObject. Unity selects which probes affect the GameObject using the following criteria:
* The **Importance** property of a reflection probe. Unity selects two probes with higher Importance values and ignores the others.
* If the Importance values are the same, Unity selects probes which have the smallest box volumes.
* If the Importance values and the box volumes are the same, Unity determines which two reflection probe volumes contain larger surface areas of a GameObject, and picks the probes of those volumes.
When two reflection probes affect a GameObject, for each pixel, Unity calculates the weight of each probe depending on the distance of this pixel from the faces of the probe box volumes and the values of the **Blend Distance** properties. If the pixel is relatively close to faces of both box volumes and the sum of weights of both probes is less than 1, Unity assigns the remaining weight to the skybox reflection.
If the pixel is within both box volumes and farther than the Blend Distance values from faces of both volumes:
* If the **Importance** properties of the reflection probes are the same, Unity blends reflections from the probes with equal weights.
* If the **Importance** property of one of the probes is higher, Unity applies the reflections only from that probe.
## Box projection
For the box projection to work:
* Select the **Box Projection** check box on the [URP asset](#configuring-reflection-probe-settings).
* Select the **Box Projection** property on the reflection probe.