diff --git a/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs b/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs
index 6ebaad7e810..c4d480b636c 100644
--- a/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs
+++ b/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs
@@ -637,7 +637,7 @@ public ComputeBufferDesc GetComputeBufferDesc(in ComputeBufferHandle computeBuff
public RenderGraphExecution RecordAndExecute(in RenderGraphParameters parameters)
{
m_CurrentFrameIndex = parameters.currentFrameIndex;
- m_CurrentExecutionName = parameters.executionName;
+ m_CurrentExecutionName = parameters.executionName != null ? parameters.executionName : "RenderGraphExecution";
m_HasRenderGraphBegun = true;
m_Resources.BeginRenderGraph(m_ExecutionCount++);
diff --git a/com.unity.render-pipelines.high-definition/CHANGELOG.md b/com.unity.render-pipelines.high-definition/CHANGELOG.md
index c94f57ec887..f2785d98f22 100644
--- a/com.unity.render-pipelines.high-definition/CHANGELOG.md
+++ b/com.unity.render-pipelines.high-definition/CHANGELOG.md
@@ -62,6 +62,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Fixed misc shader warnings.
- Fixed timeline not updating PBR HDAdditionalLightData parameters properly.
- Fixed Correlated Color Temperature not being applied in Player builds for Enlighten realtime GI lights (case 1370438);
+- Fixed Tile/Cluster Debug in the Rendering Debugger for Decal and Local Volumetric Fog
+- Fixed NeedMotionVectorForTransparent checking the wrong flag.
+- Fixed rendering in the editor when an incompatible API is added (case 1384634).
+- Fixed a crash with render graph viewer when render graph is not provided with an execution name.
## [12.1.3] - 2021-11-17
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings.md b/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings.md
index 44b9c1b5915..8a46dfd302c 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings.md
@@ -1,6 +1,6 @@
# Frame Settings
-Frame Settings are settings HDRP uses to render Cameras, real-time, baked, and custom reflections. You can set the default values for Frame Settings for each of these three individually from within the [HDRP Global Settings](Default-Settings-Window.md) tab (menu: **Edit > Project Settings > Graphics > HDRP Settings**).
+Frame Settings are settings HDRP uses to render Cameras, real-time, baked, and custom reflections. You can set the default values for Frame Settings for each of these three individually from within the [HDRP Global Settings](Default-Settings-Window.md) tab (menu: **Edit** > **Project Settings** > **Graphics > HDRP Global Settings**).

diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/CustomMipSupportNode.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/CustomMipSupportNode.png
new file mode 100644
index 00000000000..3fe5b769a5b
--- /dev/null
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Images/CustomMipSupportNode.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:639cdc06326e9ecddafb758ecd64ea869fefcba1d26688eefd2930277fb27757
+size 40580
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/CustomMipSupportNodeExample.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/CustomMipSupportNodeExample.png
new file mode 100644
index 00000000000..8c90544f6f7
--- /dev/null
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Images/CustomMipSupportNodeExample.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b0f9964b159a388fc68b73fedfb8989a128317e424344eafd079380dd72b725c
+size 57667
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettings1.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettings1.png
index d25442d37d5..94726b0a267 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettings1.png
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettings1.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5d9d6e624030432bb40daa6313b27025017412a7859f3f299c57802da3acf90c
-size 49001
+oid sha256:efdddfa0783a4f29d868b16f9a7bbe7ccc4e70bc041a496ea9eff2560c933a05
+size 66855
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/HDRPAsset_VolumetricSettings.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/HDRPAsset_VolumetricSettings.png
index 27ad785639b..d5972c04505 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Images/HDRPAsset_VolumetricSettings.png
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Images/HDRPAsset_VolumetricSettings.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4d563b16226565f648639b62b87fca175f17607d2742426f20c14b9f8ee3c043
-size 11986
+oid sha256:f58cf270f6c09c6929a9177e8e063837c83576ac1a2929da0f3224c33201e5ac
+size 14391
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumeProfile1.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumeProfile1.png
index e09be9eaef4..7e3ee9574e6 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumeProfile1.png
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumeProfile1.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3a833c3f8bc68f764a6b7ee04821ec3d2d89a80c943393656d441e492ad85924
-size 14833
+oid sha256:0a1a7188a7c95c4ce60885f619bb388023b034d4c3b0f36e64d6c62ba2fe76d1
+size 11697
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumeProfile2.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumeProfile2.png
index fc9096b6c70..4717c768503 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumeProfile2.png
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumeProfile2.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:39d786ecf6b2191bb1a29a5a312507ef5824a6ba92c0765acc36ced9de62d2e2
-size 18999
+oid sha256:3610baf6cc941f62f97a9d34e2f5c615d08b54de52373df9da02f9a506a1a688
+size 15982
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Local-Volumetric-Fog.md b/com.unity.render-pipelines.high-definition/Documentation~/Local-Volumetric-Fog.md
index 22b36fc92ba..280c32c4315 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Local-Volumetric-Fog.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Local-Volumetric-Fog.md
@@ -18,40 +18,43 @@ To create Local Volumetric Fog, right click in the Hierarchy and select __Volume
| Property | Description |
| :--------------------------- | :----------------------------------------------------------- |
-| **Single Scattering Albedo** | Sets the fog color. Volumetric Fog tints lighting, so the fog scatters light to this color. It only tints lighting emitted by Lights behind or within the fog. This means that it does not tint lighting that reflects off GameObjects behind or within the fog - reflected lighting only gets dimmer (fades to black) as fog density increases. For example, if you shine a Light at a white wall behind fog with red Single Scattering Albedo, the fog looks red. If you shine a Light at a white wall and view it from the other side of the fog, the fog darkens the light but doesn’t tint it red. |
+| **Single Scattering Albedo** | Sets the fog color.
Volumetric Fog tints lighting as the light scatters to appear this color. It only tints lighting emitted by Lights behind or within the fog. This means that it does not tint lighting that reflects off GameObjects behind or within the fog. Reflected lighting gets dimmer (fades to black) as fog density increases.
For example, if you shine a Light at a white wall behind fog with red Single Scattering Albedo, the fog looks red. If you shine a Light at a white wall and view it from the other side of the fog, the fog darkens the light but doesn’t tint it red. |
| **Fog Distance** | Controls the density at the base of the fog and determines how far you can see through the fog in meters. At this distance, the fog has absorbed and out-scattered 63% of background light. |
| **Size** | Controls the dimensions of the Volume. |
-| **Per Axis Control** | Enable this to control blend distance per axis instead of globally. |
-| **Blend Distance** | Blend Distance creates a fade from the fog level in the Volume to the fog level outside it. This is not a percentage, it is the absolute distance from the edge of the Volume bounds, defined by the Size property, where the fade starts. Unity clamps this value between 0 and half of the lowest axis value in the Size property. If you use the Normal tab, you can alter a single float value named Blend Distance, which gives a uniform fade in every direction. If you open the Advanced tab, you can use two fades per axis, one for each direction. For example, on the x-axis you could have one for left-to-right and one for right-to-left. Setting the distance to 0 hides the fade, while setting the distance to 1 creates a fade. |
+| **Per Axis Control** | Enable this to control blend distance per axis instead of globally. |
+| **Blend Distance** | Blend Distance creates a fade from the fog level in the Volume to the fog level outside it.
This value indicates the absolute distance from the edge of the Volume bounds, defined by the Size property, where the fade starts.
Unity clamps this value between 0 and half of the lowest axis value in the Size property.
If you use the **Normal** tab, you can alter a single float value named Blend Distance, which gives a uniform fade in every direction. If you open the **Advanced** tab, you can use two fades per axis, one for each direction. For example, on the X-axis you could have one for left-to-right and one for right-to-left.
A value of 0 hides the fade, and a value of 1 creates a fade. |
| **Falloff Mode** | Controls the falloff function applied to the blending of **Blend Distance**. By default the falloff is linear but you can change it to exponential for a more realistic look. |
| **Invert Blend** | Reverses the direction of the fade. Setting the Blend Distances on each axis to its maximum possible value preserves the fog at the center of the Volume and fades the edges. Inverting the blend fades the center and preserves the edges instead. |
-| **Distance Fade Start** | Distance from the camera at which the Local Volumetric Fog starts to fade out. This is useful when optimizing a scene with a lot of Local Volumetric Fog and making the more distant ones disappear|
-| **Distance Fade End** | Distance from the camera at which the Local Volumetric Fog has completely faded out. This is useful when optimizing a scene with a lot of Local Volumetric Fog and making the more distant ones disappear|
+| **Distance Fade Start** | Distance from the camera at which the Local Volumetric Fog starts to fade out. This is useful when optimizing a scene with a lot of Local Volumetric Fog and making the more distant ones disappear |
+| **Distance Fade End** | Distance from the camera at which the Local Volumetric Fog has completely faded out. This is useful when optimizing a scene with a lot of Local Volumetric Fog and making the more distant ones disappear |
| **Density Mask Texture** | Specifies a 3D texture mapped to the interior of the Volume. Local Volumetric Fog only uses the RGB channels of the texture for the fog color and A for the fog density multiplier. A value of 0 in the Texture alpha channel results in a Volume of 0 density, and the value of 1 results in the original constant (homogeneous) volume. |
| **Scroll Speed** | Specifies the speed (per-axis) at which the Local Volumetric Fog scrolls the texture. If you set every axis to 0, the Local Volumetric Fog does not scroll the texture and the fog is static. |
| **Tiling** | Specifies the per-axis tiling rate of the texture. For example, setting the x-axis component to 2 means that the texture repeats 2 times on the x-axis within the interior of the volume. |
## Related Settings in the HDRP Asset
-There are two settings related to Local Volumetric Fog in the HDRP Asset settings: **Max Local Volumetric Fog Size** and **Max Local Volumetric Fog On Screen**. You can find both of these settings in the HDRP Asset's **Lighting** section.
+The [HDRP Asset](HDRP-Asset.md) contains the following settings that relate to Local Volumetric Fog:
-
+| Property | Description |
+|---|---|
+| **Max Local Volumetric Fog Size** | Controls the maximum resolution you can use for the **Density Mask Texture**.
This setting can have a high impact on performance. The information box (highlighted in the image below) describes how much memory HDRP allocates for the Local Volumetric Fog system. |
+| **Max Local Volumetric Fog On Screen** | Controls how many Local Volumetric Fog components can appear on-screen at once. This setting has an impact on performance, especially at high values. |
-The **Max Local Volumetric Fog Size** controls the maximum resolution you can use for the **Density Mask Texture**. Changing this setting can have a large impact on memory usage. For information on how much memory HDRP allocates for the Local Volumetric Fog system, see the info box below this setting in the HDRP Asset.
+To change these settings, open the HDRP Asset's **Lighting** section and expand the **Volumetrics** drop down.
-The **Max Local Volumetric Fog On Screen** controls how many Local Volumetric Fog components can appear on-screen at once. This setting also has an impact on memory.
+
-## Builtin Density Mask Texture
+## Built in Density Mask Texture
-HDRP includes 3D Density Mask Textures with different noise values and shapes that you can use in your scene. To use these Textures, import them from the HDRP samples package:
+HDRP includes 3D Density Mask Textures with different noise values and shapes that you can use in your scene. To use these Textures, import them from the High Definition RP package samples:
1. Open the Package Manager window (menu: **Window** > **Package Manager**).
-2. Find the High Definition RP package.
-3. Expand **Samples**.
-4. Find the **Local Volumetric Fog Mask Textures** sample and click on the Import button to the right.
+2. Find the **High Definition RP** package.
+3. Expand the **Samples** drop-down.
+4. Find the **Local Volumetric Fog 3D Texture Samples** and click on the **Import** button to the right.
## Creating a Density Mask Texture
-1. In image-editing software of your choice, prepare an RGBA flipbook texture and [import it as a 3D texture](https://docs.unity3d.com/2020.2/Documentation/Manual/class-Texture3D.html). For example, a texture of size 1024x32 describes a 3D texture of size 32x32x32 with 32 slices laid out one after another.
+1. In the image-editing software of your choice, create an RGBA flipbook texture and [import it as a 3D texture](https://docs.unity3d.com/2020.2/Documentation/Manual/class-Texture3D.html). For example, a texture of size 1024x32 describes a 3D Texture of size 32x32x32 with 32 slices laid out one after another.
-2. Open a Local Volumetric Fog component and assign the texture you just imported to the __Texture__ field in the __Density Mask Texture__ section.
+2. Open a **Local Volumetric Fog** component and in its __Density Mask Texture__ section assign the 3D Texture you imported to the __Texture__ field .
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Override-Physically-Based-Sky.md b/com.unity.render-pipelines.high-definition/Documentation~/Override-Physically-Based-Sky.md
index c7b4a456c5a..e1d5bd61ae2 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Override-Physically-Based-Sky.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Override-Physically-Based-Sky.md
@@ -1,6 +1,6 @@
# Physically Based Sky
-Physically Based Sky simulates a spherical planet with a two-part atmosphere that has an exponentially decreasing density baased on its altitude. This means that the higher you go above sea level, the less dense the atmosphere is. For information on the implementation for this sky type, see [Implementation details](#ImplementationDetails).
+Physically Based Sky simulates a spherical planet with a two-part atmosphere that has an exponentially decreasing density based on its altitude. This means that the higher you go above sea level, the less dense the atmosphere is. For information on the implementation for this sky type, see [Implementation details](#ImplementationDetails).
The simulation runs as a pre-process, meaning that it runs once instead of on every frame. The simulation evaluates the atmospheric scattering of all combinations of light and view angles and then stores the results in several 3D Textures, which Unity resamples at runtime. The pre-computation is Scene-agnostic, and only depends on the settings of the Physically Based Sky.
@@ -9,7 +9,7 @@ The Physically Based Sky’s atmosphere has two types of particles:
* Air particles with [Rayleigh scattering]().
* Aerosol particles with anisotropic [Mie scattering](https://en.wikipedia.org/wiki/Mie_scattering). You can use aerosols to model pollution, height fog, or mist.
-You can use Physically Based Sky to simulate the sky during both daytime and night-time. You can change the time of day at runtime without reducing performance. The following images display a Physically Based Sky in Unity's Fontainebleau demo. For more information about the Fontainebleau demo, and for instructions on how to download and use the demo yourself, see https://github.com/Unity-Technologies/FontainebleauDemo. The available Fontainebleau demo only uses Physically Based Sky for its daytime setup in version 2019.3.
+You can use Physically Based Sky to simulate the sky during both daytime and night-time. You can change the time of day at runtime without reducing performance. The following images display a Physically Based Sky in Unity's Fontainebleau demo. For more information about the Fontainebleau demo, and for instructions on how to download and use the demo yourself, see https://github.com/Unity-Technologies/FontainebleauDemo. The Fontainebleau demo only uses Physically Based Sky for its daytime setup in version 2019.3.

@@ -119,7 +119,7 @@ To make this section visible, set **Type** to **Custom Planet**.
This sky type is a practical implementation of the method outlined in the paper [Precomputed Atmospheric Scattering](http://www-ljk.imag.fr/Publications/Basilic/com.lmc.publi.PUBLI_Article@11e7cdda2f7_f64b69/article.pdf) (Bruneton and Neyret, 2008).
-This technique assumes that you always view the Scene from above the surface of the planet. This means that if a camera goes below the planet's surface, the sky renders as it would do if the camera was at ground level. Where the surface of the planet is depends on whether you enable or disable **Spherical Mode**:
+This technique assumes that you always view the Scene from above the surface of the planet. This means that if a camera goes below the planet's surface, the sky renders as if the camera was at ground level. Where the surface of the planet is depends on whether you enable or disable the **Spherical Mode** property:
* If you enable **Spherical Mode**, the **Planetary Radius** and **Planet Center Position** properties define where the surface is. In this mode, the surface is at the distance set in **Planetary Radius** away from the position set in **Planet Center Position**.
* Otherwise, the **Sea Level** property defines where the surface is. In this mode, the surface stretches out infinitely on the xz plane and **Sea Level** sets its world space height.
@@ -132,21 +132,22 @@ The default values in either mode make it so the planet's surface is at **0** on
## Warmup performance impact
-When you switch to or from a Physically Based Sky, it might cause a noticeable drop in framerate. This is because HDRP performs a large amount of precomputations to render a Physically Based Sky, so the first few frames (depending on the Number of bounces parameter) takes more time to render than other HDRP sky types.
+When you switch to or from a Physically Based Sky, it might cause a noticeable drop in framerate. This is because HDRP performs a large amount of precomputations to render a Physically Based Sky, so the first few frames (depending on the **Number of bounces** parameter) takes more time to render than other HDRP sky types.
+
This also applies when HDRP uses the volume system to interpolate between two different Physically Based Skies with different sets of parameters. To do this, HDRP restarts the precomputation every frame in which it performs interpolation. This causes a noticeable drop in framerate. To avoid this, use a single set of Physically Based Sky parameters for a scene and change the sun light direction and intensity to achieve the result you want.
HDRP restarts precomputation when you change the following parameters:
-- Type
-- Planetary Radius
-- Ground Tint
-- Air Maximum Altitude
-- Air Density
-- Air Tint
-- Aerosol Maximum Altitude
-- Aerosol Density
-- Aerosol Tint
-- Aerosol Anisotropy
-- Number of Bounces
+- **Type**
+- **Planetary Radius**
+- **Ground Tint**
+- **Air Maximum Altitude**
+- **Air Density**
+- **Air Tint**
+- **Aerosol Maximum Altitude**
+- **Aerosol Density**
+- **Aerosol Tint**
+- **Aerosol Anisotropy**
+- **Number of Bounces**
### Reference list
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-Refraction.md b/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-Refraction.md
index 9a73a9e4dbb..b53fc1856a1 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-Refraction.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-Refraction.md
@@ -20,4 +20,4 @@ HDRP uses the [Volume](Volumes.md) framework to calculate SSR, so to enable and
| **Property** | **Description** |
| ----------------------------- | ------------------------------------------------------------ |
-| **Screen Edge Fade Distance** | Use the slider to control the distance at which HDRP fades out the refraction effect when the destination of the ray is near the boundaries of the screen. Increase this value to increase the distance from the screen edge at which HDRP fades out the refraction effect for a ray destination. |
+| **Screen Weight Distance** | Use the slider to control the distance at which HDRP fades out the refraction effect when the destination of the ray is near the boundaries of the screen. Increase this value to increase the distance from the screen edge at which HDRP fades out the refraction effect for a ray destination. |
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Override-Volumetric-Clouds.md b/com.unity.render-pipelines.high-definition/Documentation~/Override-Volumetric-Clouds.md
index e94abf18b88..ebb4ee83b30 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Override-Volumetric-Clouds.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Override-Volumetric-Clouds.md
@@ -2,7 +2,7 @@

-The **Volumetric Clouds** [Volume component override](Volume-Components.md) controls settings relevant to rendering volumetric clouds in the High Definition Render Pipeline (HDRP). Volumetric clouds are intractable clouds that can render shadows, and receive fog and volumetric light.
+The **Volumetric Clouds** [Volume component override](Volume-Components.md) controls settings relevant to rendering volumetric clouds in the High Definition Render Pipeline (HDRP). Volumetric clouds are interactable clouds that can render shadows, and receive fog and volumetric light.
To generate and render volumetric clouds, HDRP uses:
@@ -19,9 +19,9 @@ Using these three things, HDRP generates volumetric clouds in a two-step process
[!include[](snippets/Volume-Override-Enable-Override.md)]
-* In your HDRP Asset go to **Lighting > Volumetric Clouds > Volumetric Clouds**.
+* In your [HDRP Asset](HDRP Asset) go to **Lighting > Volumetrics > Volumetric Clouds**.
-* In your Frame Settings go to **Lighting > Volumetric Clouds**.
+* In your [Frame Settings](Frame-Settings.md) go to **Lighting > Volumetric Clouds**.
## Using Volumetric Clouds
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md b/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md
index b068cb52ad5..b154372f2cd 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md
@@ -79,10 +79,13 @@ Once you have completed one of these, move onto [Final setup](#final-setup).
You can use the [Render Pipeline Wizard](Render-Pipeline-Wizard.md) to set up ray tracing in your HDRP Project.
-1. To open the HDRP Wizard, go to Window > Rendering > HDRP Wizard.
-2. Select the HDRP + DXR tab.
-3. Click the Fix All button.
-4. (Optional) Enable the HDRP asset features that are required for the ray tracing effects.
+1. To open the HDRP Wizard, go to **Window** > **Render pipeline** > **HD Render Pipeline Wizard**.
+
+2. Select the **HDRP + DXR** tab.
+
+3. Click the **Fix All** button.
+
+To enable ray tracing for specific effects, enable the ray tracing features in the [HDRP Asset](#ManualSetup-EnableAssetFeatures).
Your HDRP Project now supports ray tracing. For information on how to set up ray tracing for your Scene, see [final setup](#final-setup).
@@ -102,13 +105,15 @@ To set up ray tracing manually, you need to:
#### Upgrading to DirectX 12
-1. Open the Project Settings window (menu: **Edit > Project Settings**), then select the Player tab.
-2. Select the Other Settings fold-out, and in the Rendering section, disable Auto Graphics API for Windows. This exposes the Graphics APIs for Windows section.
-3. In the Graphics APIs for Windows section, click the plus (+) button and select Direct3d12.
-4. Unity uses Direct3d11 by default. To make Unity use Direct3d12, move Direct3d12 (Experimental) to the top of the list.
+HDRP enables DirextX12 by default. To enable DirectX 12 manually:
+
+1. Open the Project Settings window (menu: **Edit > Project Settings**), then select the **Player** tab.
+2. Select the **Other Settings** drop-down, and in the **Rendering** section, disable Auto Graphics API for Windows. This exposes the Graphics APIs for Windows section.
+3. In the **Graphics APIs for Windows** section, click the plus (**+**) button and select **Direct3d12**.
+4. Unity uses Direct3d11 by default. To make Unity use Direct3d12, move **Direct3d12 (Experimental)** to the top of the list.
5. To apply the changes, you may need to restart the Unity Editor. If a window prompt appears telling you to restart the Editor, click **Restart Editor** in the window.
-The Unity Editor window should now include the <DX12> tag in the title bar like so:
+The Unity Editor window should now include the <DX12> tag in the title bar:

@@ -119,7 +124,7 @@ The Unity Editor window should now include the <DX12> tag in the title bar
Next, you need to disable static batching, because HDRP does not support this feature with ray tracing in **Play Mode**. To do this:
1. Open the Project Settings window (menu: **Edit > Project Settings**), then select the **Player** tab.
-2. Select the **Other Settings** fold-out, then in the **Rendering** section, disable **Static Batching**.
+2. Select the **Other Settings** drop-down, then in the **Rendering** section, disable **Static Batching**.
@@ -128,7 +133,7 @@ Next, you need to disable static batching, because HDRP does not support this fe
Now that Unity is running in DirectX 12, and you have disabled [static batching](https://docs.unity3d.com/Manual/DrawCallBatching.html), enable and configure ray tracing in your [HDRP Asset](HDRP-Asset.md). The previous steps configured Unity to support ray tracing; the following step enables it in your HDRP Unity Project.
1. Click on your HDRP Asset in the Project window to view it in the Inspector.
-2. In the Rendering section, enable Realtime Ray Tracing. This triggers a recompilation, which makes ray tracing available in your HDRP Project.
+2. In the **Rendering** section, enable **Realtime Ray Tracing**. This triggers a recompilation, which makes ray tracing available in your HDRP Project.
@@ -136,8 +141,8 @@ Now that Unity is running in DirectX 12, and you have disabled [static batching]
To verify that HDRP has properly assigned ray tracing resources:
-1. Open the Project Settings window (menu: **Edit > Project Settings**), then select the HDRP Default Settings tab.
-2. Make sure there is a Render Pipeline Resources Asset assigned to the Render Pipeline Resources field.
+1. Open the Project Settings window (menu: **Edit** > **Project Settings**), then select the **HDRP Default Settings** tab.
+2. Find the **Render Pipeline Resources** field and make sure there is a Render Pipeline Resources Asset assigned to it.
@@ -153,10 +158,10 @@ HDRP uses ray tracing to replace certain rasterized effects. In order to use a r
To enable the above effects in your HDRP Unity Project:
1. Click on your HDRP Asset in the Project window to view it in the Inspector.
-2. Go to **Lighting > Reflections** and enable **Screen Space Reflection**.
-3. After enabling **Screen Space Reflections**, go to **Lighting > Reflections** and enable **Transparent Screen Space Reflection**.
-4. Go to **Lighting > Shadows** and enable **Screen Space Shadows**.
-5. Go to **Lighting > Lighting** and enable **Screen Space Global Illumination**.
+2. Go to **Lighting** > **Reflections** and enable **Screen Space Reflection**.
+3. After enabling **Screen Space Reflections**, go to **Lighting** > **Reflections** and enable **Transparent Screen Space Reflection**.
+4. Go to **Lighting** > **Shadows** and enable **Screen Space Shadows**.
+5. Go to **Lighting** > **Lighting** and enable **Screen Space Global Illumination**.
Your HDRP Project now fully supports ray tracing. For information on how to set up ray tracing for your Scene, see [final setup](#final-setup).
@@ -195,7 +200,7 @@ To build your Project to a Unity Player, ray tracing requires that the build use
#### Scene validation
To check whether it is possible to use ray tracing in a Scene, HDRP includes a menu option that validates each GameObject in the Scene. If you do not setup GameObjects correctly, this process throws warnings in the Console window. For the list of things this option checks for, see [Menu items](Menu-Items.md#other). To use it:
-1. Click **Edit > Rendering > Check Scene Content for HDRP Ray Tracing**.
+1. Click **Edit** > **Render Pipeline** > **HD Render Pipeline** > **Check Scene Content for Ray Tracing**.
2. In the Console window (menu: **Window > General > Console**), check if there are any warnings.
@@ -235,14 +240,14 @@ HDRP includes two ray tracing modes that define how it evaluates certain ray-tra
* **Performance**: This mode targets real-time applications. If you select this mode, ray-traced effects include presets that you can change to balance performance with quality.
* **Quality**: This mode targets technical demos and applications that want the best quality results.
-Depending on which ray tracing mode you select, HDRP may expose different properties for some ray-traced effects.
+HDRP exposes different properties for some ray-traced effects based on the ray tracing mode you use..
-You can change which ray tracing mode HDRP uses on either a Project level or effect level. To change it for your entire Project:
+You can change which ray tracing mode HDRP uses on either a Project level or effect level. To change the ray tracing mode for your entire Project:
-1. Click on your HDRP Asset in the Project window to view it in the Inspector.
-2. In the Rendering section, select a ray tracing mode from the **Supported Ray Tracing Mode** drop-down.
+1. Click on your [HDRP Asset](HDRP-Asset.md) in the Project window to view it in the Inspector.
+2. In the **Rendering** section, enable the **Realtime Raytracing** checkbox, open the **Supported Ray Tracing Mode** drop-down and select a ray tracing mode from open.
-If you select **Both**, you can change the ray tracing mode for each ray-traced effect. To do this:
+If you select the **Both** option, you can change the ray tracing mode for each ray-traced effect. To do this:
1. In the Scene or Hierarchy view, select a GameObject that contains a Volume component that includes a ray-traced effect.
2. In the Inspector for the ray-traced effect, change the **Mode** property to use the ray tracing mode you want the effect to use. This changes the properties available in the Inspector.
@@ -250,8 +255,7 @@ If you select **Both**, you can change the ray tracing mode for each ray-traced
## Ray tracing project
-You can find a small ray tracing project that contains all the effects mentioned above here:
-https://github.com/Unity-Technologies/SmallOfficeRayTracing
+You can find a ray tracing project that contains all the effects mentioned above in the [Small Office Ray Tracing sample project](https://github.com/Unity-Technologies/SmallOfficeRayTracing).
This Project is already set up with ray tracing support.
## Limitations
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Path-Tracing.md b/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Path-Tracing.md
index a5a9460c23a..36ebded679d 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Path-Tracing.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Path-Tracing.md
@@ -2,7 +2,7 @@
Path tracing is a ray tracing algorithm that sends rays from the Camera and, when a ray hits a reflective or refractive surface, recurses the process until it reaches a light source. The series of rays from the Camera to the Light form a "path".
-It enables HDRP to compute many different effects (such as hard or soft shadows, mirror or glossy reflections and refractions, and indirect illumination) in one single unified process.
+It enables HDRP to compute many effects (such as hard or soft shadows, mirror or glossy reflections and refractions, and indirect illumination) in a single unified process.
A notable downside to path tracing is noise. However, noise vanishes as more paths accumulate, and eventually converges toward a clean image. For more information about path tracing limitations in HDRP, see [Unsupported features of path tracing](Ray-Tracing-Getting-Started.md#unsupported-features-of-path-tracing).
@@ -54,13 +54,23 @@ Path tracing uses the [Volume](Volumes.md) framework, so to enable this feature,
## Materials parameterization
-Some phenomena like refraction, absorption in transmissive objects, or subsurface scattering, can be expressed more naturally in a path tracing setting than in its rasterized counterpart, and as such require less material parameters (e.g. additional thickness information, expected shape of the refractive object, ...). For that reason, some parameters have no effect in path tracing, while others bear a slightly different meaning.
+Some light phenomena can be expressed more naturally in path tracing than in rasterization, for instance:
+
+- Light refraction in transmissive objects.
+- Light absorption in transmissive objects.
+- Subsurface scattering.
+
+Rasterization uses various methods to approximate complex lighting effects, with each of those methods relying on dedicated Material parameters. Path tracing computes those same effects all at once, without the need for as many parameters.
+
+For that reason, some parameters have no effect in path tracing, while others bear a slightly different meaning.
### Refraction model
In the Lit family of materials, when the surface type is set to *Transparent*, you can select between *None*, *Box*, *Sphere* or *Thin* refraction models.
-For path tracing, the distinction between *Box* or *Sphere* makes no sense (as rays can intersect the real objects in the scene), and both effectively carry the common meaning of a *thick* mode, to be used on solid objects represented by a closed surface. On the other hand, *Thin* conveys the same idea as its rasterized version, and *None* is a special case of thin refractive surface, hardcoded to be fully smooth to simulate alpha blending. Additionally, transparent surfaces should be *Double-Sided*, so that they get intersected from both sides, and normal mode should be selected appropriately for each situation, as described right below.
+For path tracing, the distinction between *Box* or *Sphere* is irrelevant (as rays can intersect the real objects in the scene), and both effectively carry the common meaning of a *thick* mode, to be used on solid objects represented by a closed surface. On the other hand, *Thin* conveys the same idea as its rasterized version, and *None* is a special case of thin refractive surface, simulating alpha blending.
+
+Additionally, transparent surfaces should be *Double-Sided*, so that they get intersected from both sides, and normal mode should be selected appropriately for each situation, as described right below.
| Refraction model | Path tracing meaning | Surface sidedness |
|-------------------|---------------------------------------------------|---------------------------------------------------|
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md b/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md
index c6132a0f7bd..cb300dca6d2 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md
@@ -163,7 +163,7 @@
* [Authoring in DaVinci Resolve](LUT-Authoring-Resolve.md)
* [Propagating NaNs](Post-Processing-Propagating-NaNs.md)
* UI
- * [UI Best Pratices](UI-Best-Practices.md)
+ * [UI Best Practices](UI-Best-Practices.md)
* Ray Tracing
* [Getting Started with Ray Tracing](Ray-Tracing-Getting-Started.md)
* Effects and Volume Overrides
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Volume-Profile.md b/com.unity.render-pipelines.high-definition/Documentation~/Volume-Profile.md
index 8e130e6832d..da7130a1bab 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/Volume-Profile.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/Volume-Profile.md
@@ -6,11 +6,29 @@ A Volume Profile organizes its properties into structures which control differen
## Creating and customizing a Volume Profile
-There are multiple ways to create a Volume Profile. Unity creates, and links, a Volume Profile automatically when you create a **Scene Settings** GameObject (menu: **Rendering > Scene Settings**). You can also create a Volume Profile manually. Navigate to menu: **Assets > Create > Volume Profile**.
+There are multiple ways to create a Volume Profile.
-Open the Volume Profile in the Inspector to edit its properties. To do this, you can either:
+Create a Scene Settings GameObject from the **GameObject** > **Volume** menu. You can select one of the following:
-• Select the Volume Profile in on the Assets folder.
+• [**Global Volume**](Volumes.md)
+
+• [**Sky and Fog Global Volume**](Override-Visual-Environment.md)
+
+• **Box Volume**
+
+• **Sphere Volume**
+
+• **Convex Mesh Volume**
+
+• [**Custom Pass Volume**](Custom-Pass-Creating.md)
+
+Unity creates and links a Volume Profile automatically when you create one of these volumes.
+
+You can also create a Volume Profile manually. To do this, navigate to **Assets** > **Create** > **Volume Profile**.
+
+Open the Volume Profile in the Inspector to edit its properties. To do this, you can either:
+
+• Select the Volume Profile in the Assets folder.

diff --git a/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md b/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md
index 56a1fea77ab..1ef07119dd1 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md
@@ -62,6 +62,22 @@ Your Unity project now supports DLSS and you can now enable DLSS for Cameras in
The **Use Optimal Settings** checkbox in the [HDRP Assets](HDRP-Asset.md) is enabled by default. This means that DLSS sets the dynamic resolution scale automatically.
If you disable this checkbox DLSS uses the same dynamic resolution scale set by the project. For more information see the [Dynamic Resolution](Dynamic-Resolution.md) guide.
+### Mip bias in DLSS
+
+To enable automatic mip bias correction when you enable DLSS, open the [HDRP Asset](HDRP-Asset.md) and enable the **Use Mip Bias** checkbox.
+
+If you need a specific custom mip bias for a Texture, create a custom sampler that samples from TextureInput, SamplerInput, UV, and MipBias. To do this, enter the following script into the Node Settings ' Body field. The images below display this example:
+
+```glsl
+Out = SAMPLE_TEXTURE2D_BIAS(TextureInput, SamplerInput, UV, MipBias);
+```
+
+
+
+
+
+
+
### Setting the DLSS quality mode
DLSS now works in your project, but you can change the quality mode to customize DLSS towards performance or quality. You can do this on a project level or a per-Camera level. For information about the available quality modes, see [Quality modes](https://docs.unity3d.com/2021.2/Documentation/Manual/deep-learning-super-sampling.html).
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/snippets/tracing-modes.md b/com.unity.render-pipelines.high-definition/Documentation~/snippets/tracing-modes.md
index b4c43c6bd26..053babb1a02 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/snippets/tracing-modes.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/snippets/tracing-modes.md
@@ -35,7 +35,7 @@ In mixed tracing mode, HDRP still uses ray tracing for any geometry inside the r
#### Ray Tracing
* Transparent Emissive Material are not taken into account.
-* No [decals](decal.md) are supported including Emissive Decals.
+* No [decals](../decal.md) are supported including Emissive Decals.
#### Mixed Tracing
diff --git a/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Skin.cs b/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Skin.cs
index ce4ce21b12e..20392212fb1 100644
--- a/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Skin.cs
+++ b/com.unity.render-pipelines.high-definition/Editor/Lighting/VolumetricLighting/LocalVolumetricFogUI.Skin.cs
@@ -18,7 +18,7 @@ internal static class Styles
public static readonly GUIContent s_Size = new GUIContent("Size", "Modify the size of this Local Volumetric Fog. This is independent of the Transform's Scale.");
public static readonly GUIContent s_AlbedoLabel = new GUIContent("Single Scattering Albedo", "The color this fog scatters light to.");
public static readonly GUIContent s_MeanFreePathLabel = new GUIContent("Fog Distance", "Density at the base of the fog. Determines how far you can see through the fog in meters.");
- public static readonly GUIContent s_VolumeTextureLabel = new GUIContent("Texture", "The fog Texture for the Density Mask. Generate this Texture type using the Local Volumetric Fog Texture Tool.");
+ public static readonly GUIContent s_VolumeTextureLabel = new GUIContent("Texture", "The fog Texture for the Density Mask.");
public static readonly GUIContent s_TextureScrollLabel = new GUIContent("Scroll Speed", "Modify the speed for each axis at which HDRP scrolls the fog Texture.");
public static readonly GUIContent s_TextureTileLabel = new GUIContent("Tiling", "Modify the tiling of the fog Texture on each axis individually.");
public static readonly GUIContent s_BlendLabel = new GUIContent("Blend Distance", "Interior distance from the Size where the fog fades in completely.");
@@ -26,8 +26,8 @@ internal static class Styles
public static readonly GUIContent s_FalloffMode = new GUIContent("Falloff Mode", "When Blend Distance is above 0, controls which kind of falloff is applied to the transition area.");
public static readonly GUIContent s_ManipulatonTypeContent = EditorGUIUtility.TrTextContent("Per Axis Control", "When checked, each face can be manipulated separately. This also include fading options.");
- public static readonly GUIContent s_DistanceFadeStartLabel = new GUIContent("Distance Fade Start");
- public static readonly GUIContent s_DistanceFadeEndLabel = new GUIContent("Distance Fade End");
+ public static readonly GUIContent s_DistanceFadeStartLabel = new GUIContent("Distance Fade Start", "Sets the distance from the Camera where Local Volumetric Fog starts to fade out.");
+ public static readonly GUIContent s_DistanceFadeEndLabel = new GUIContent("Distance Fade End", "Sets the distance from the Camera where Local Volumetric Fog is completely faded out.");
public static readonly Color k_GizmoColorBase = new Color(180 / 255f, 180 / 255f, 180 / 255f, 8 / 255f).gamma;
diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassRenderersShader.template b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassRenderersShader.template
index 8ffef89ca5f..d06752bddf3 100644
--- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassRenderersShader.template
+++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassRenderersShader.template
@@ -7,6 +7,7 @@ Shader "Renderers/#SCRIPTNAME#"
// Transparency
_AlphaCutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
+ [HideInInspector]_BlendMode("_BlendMode", Range(0.0, 1.0)) = 0.5
}
HLSLINCLUDE
@@ -56,13 +57,22 @@ Shader "Renderers/#SCRIPTNAME#"
// List all the varyings needed in your fragment shader
#define VARYINGS_NEED_TEXCOORD0
#define VARYINGS_NEED_TANGENT_TO_WORLD
-
- #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassRenderers.hlsl"
+ #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
+
TEXTURE2D(_ColorMap);
+
+ // Declare properties in the UnityPerMaterial cbuffer to make the shader compatible with SRP Batcher.
+CBUFFER_START(UnityPerMaterial)
float4 _ColorMap_ST;
float4 _Color;
+ float _AlphaCutoff;
+ float _BlendMode;
+CBUFFER_END
+
+ #include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassRenderersV2.hlsl"
+
// If you need to modify the vertex datas, you can uncomment this code
// Note: all the transformations here are done in object space
// #define HAVE_MESH_MODIFICATION
diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs
index 7457ede68c3..ea715ae3c07 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs
@@ -214,35 +214,32 @@ public enum LightVolumeDebug : int
public enum TileClusterCategoryDebug : int
{
/// Punctual lights.
- Punctual = 1,
+ Punctual = (1 << LightCategory.Punctual),
/// Area lights.
- Area = 2,
+ Area = (1 << LightCategory.Area),
/// Area and punctual lights.
[InspectorName("Area and Punctual")]
- AreaAndPunctual = 3,
+ AreaAndPunctual = Area | Punctual,
/// Environment lights.
[InspectorName("Reflection Probes")]
- Environment = 4,
+ Environment = (1 << LightCategory.Env),
/// Environment and punctual lights.
[InspectorName("Reflection Probes and Punctual")]
- EnvironmentAndPunctual = 5,
+ EnvironmentAndPunctual = Environment | Punctual,
/// Environment and area lights.
[InspectorName("Reflection Probes and Area")]
- EnvironmentAndArea = 6,
+ EnvironmentAndArea = Environment | Area,
/// All lights.
[InspectorName("Reflection Probes, Area and Punctual")]
- EnvironmentAndAreaAndPunctual = 7,
- /// Probe Volumes.
- [InspectorName("Probe Volumes")]
- ProbeVolumes = 8,
+ EnvironmentAndAreaAndPunctual = Environment | Area | Punctual,
/// Decals.
- Decal = 16,
+ Decal = (1 << LightCategory.Decal),
/// Local Volumetric Fog.
- LocalVolumetricFog = 32,
+ LocalVolumetricFog = (1 << LightCategory.LocalVolumetricFog),
/// Local Volumetric Fog.
[Obsolete("Use LocalVolumetricFog", false)]
[InspectorName("Local Volumetric Fog")]
- DensityVolumes = 32
+ DensityVolumes = LocalVolumetricFog
};
[GenerateHLSL(needAccessors = false, generateCBuffer = true)]
diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Components/Tonemapping.cs b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Components/Tonemapping.cs
index 79d60e4de86..68a8c46960a 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Components/Tonemapping.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Components/Tonemapping.cs
@@ -161,7 +161,7 @@ public bool ValidateLUT()
public sealed class TonemappingModeParameter : VolumeParameter
{
///
- /// Creates a new instance.
+ /// Creates a new instance.
///
/// The initial value to store in the parameter.
/// The initial override state for the parameter.
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs
index 4a6a42537a1..e37fb83cb9d 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs
@@ -2589,7 +2589,7 @@ public Texture2D ExportSkyToTexture(Camera camera)
static bool NeedMotionVectorForTransparent(FrameSettings frameSettings)
{
- return frameSettings.IsEnabled(FrameSettingsField.MotionVectors);
+ return frameSettings.IsEnabled(FrameSettingsField.TransparentsWriteMotionVector);
}
///
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassRenderersV2.hlsl b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassRenderersV2.hlsl
new file mode 100644
index 00000000000..a12185b7ec7
--- /dev/null
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassRenderersV2.hlsl
@@ -0,0 +1,26 @@
+#ifndef CUSTOM_PASS_RENDERERS_V2
+#define CUSTOM_PASS_RENDERERS_V2
+
+#define SHADERPASS SHADERPASS_FORWARD_UNLIT
+
+//-------------------------------------------------------------------------------------
+// Define
+//-------------------------------------------------------------------------------------
+
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl"
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl"
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl"
+
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl"
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Unlit/Unlit.hlsl"
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/VaryingMesh.hlsl"
+
+#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMapping.hlsl"
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/BuiltinUtilities.hlsl"
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl"
+#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl"
+
+float _CustomPassInjectionPoint;
+float _FadeValue;
+
+#endif // CUSTOM_PASS_RENDERERS_V2
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassRenderersV2.hlsl.meta b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassRenderersV2.hlsl.meta
new file mode 100644
index 00000000000..cb9adfe78ac
--- /dev/null
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/CustomPass/CustomPassRenderersV2.hlsl.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1973ef3da427d2c4189f027d36a28ac9
+ShaderIncludeImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs
index 2879c102cbb..3027496908a 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/HDUtils.cs
@@ -759,12 +759,24 @@ internal static bool IsSupportedBuildTarget(UnityEditor.BuildTarget buildTarget)
internal static bool AreGraphicsAPIsSupported(UnityEditor.BuildTarget target, ref GraphicsDeviceType unsupportedGraphicDevice)
{
- foreach (var graphicAPI in UnityEditor.PlayerSettings.GetGraphicsAPIs(target))
+ bool editor = false;
+#if UNITY_EDITOR
+ editor = !UnityEditor.BuildPipeline.isBuildingPlayer;
+#endif
+
+ if (editor) // In the editor we use the current graphics device instead of the list to avoid blocking the rendering if an invalid API is added but not enabled.
{
- if (!HDUtils.IsSupportedGraphicDevice(graphicAPI))
+ return HDUtils.IsSupportedGraphicDevice(SystemInfo.graphicsDeviceType);
+ }
+ else
+ {
+ foreach (var graphicAPI in UnityEditor.PlayerSettings.GetGraphicsAPIs(target))
{
- unsupportedGraphicDevice = graphicAPI;
- return false;
+ if (!HDUtils.IsSupportedGraphicDevice(graphicAPI))
+ {
+ unsupportedGraphicDevice = graphicAPI;
+ return false;
+ }
}
}
return true;