diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs index fe97b97c060..d78b09c9bee 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs @@ -676,11 +676,7 @@ void OnEnable() foreach (var graph in registeredGraph) m_RegisteredGraphs.Add(graph, new HashSet()); - RenderGraph.requireDebugData = true; - RenderGraph.onGraphRegistered += OnGraphRegistered; - RenderGraph.onGraphUnregistered += OnGraphUnregistered; - RenderGraph.onExecutionRegistered += OnExecutionRegistered; - RenderGraph.onExecutionUnregistered += OnExecutionUnregistered; + SubscribeToRenderGraphEvents(); } private void CreateGUI() @@ -690,10 +686,36 @@ private void CreateGUI() void OnDisable() { + UnsubscribeToRenderGraphEvents(); + } + + void SubscribeToRenderGraphEvents() + { + if (RenderGraph.requireDebugData) + return; + + RenderGraph.requireDebugData = true; + RenderGraph.onGraphRegistered += OnGraphRegistered; + RenderGraph.onGraphUnregistered += OnGraphUnregistered; + RenderGraph.onExecutionRegistered += OnExecutionRegistered; + RenderGraph.onExecutionUnregistered += OnExecutionUnregistered; + } + + void UnsubscribeToRenderGraphEvents() + { + if (!RenderGraph.requireDebugData) + return; + RenderGraph.requireDebugData = false; RenderGraph.onGraphRegistered -= OnGraphRegistered; RenderGraph.onGraphUnregistered -= OnGraphUnregistered; RenderGraph.onExecutionRegistered -= OnExecutionRegistered; RenderGraph.onExecutionUnregistered -= OnExecutionUnregistered; } + + void Update() + { + // UUM-70378: In case the OnDisable Unsubscribes to Render Graph events when coming back from a Maximized state + SubscribeToRenderGraphEvents(); + } } diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Render-Pipeline-Debug-Window.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Render-Pipeline-Debug-Window.md index e359958b262..f39227376f5 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Render-Pipeline-Debug-Window.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Render-Pipeline-Debug-Window.md @@ -13,45 +13,49 @@ The **Rendering Debugger** is a specific window for the Scriptable Render Pipeli ![](Images/RenderPipelineDebug1.png) The Rendering Debugger -## Using the Rendering Debugger +## How to access the Rendering Debugger The Rendering Debugger window is available in the following modes: -* The Editor. -* The Play mode. -* At runtime in the standalone Unity Player, on any device. The window is only available in **Development Builds**. +| Mode | Platform | Availability | How to Open the Rendering Debugger | +|-----------|----------------|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Editor | All | Yes (window in the Editor) | Select **Window > Analysis > Rendering Debugger** | +| Play mode | All | Yes (overlay in the Game view) | On a desktop or laptop computer, press **LeftCtrl+Backspace** (**LeftCtrl+Delete** on macOS)
On a console controller, press L3 and R3 (Left Stick and Right Stick) | +| Runtime | Desktop/Laptop | Yes (only in Development builds) | Press **LeftCtrl+Backspace** (**LeftCtrl+Delete** on macOS) | +| Runtime | Console | Yes (only in Development builds) | Press L3 and R3 (Left Stick and Right Stick) | +| Runtime | Mobile | Yes (only in Development builds) | Use a three-finger double tap | -To open the Rendering Debugger in the Editor: +To enable all the sections of the **Rendering Debugger** in your built application, disable **Strip Debug Variants** in **Project Settings > Graphics > HDRP Global Settings**. Otherwise, you can only use the [Display Stats](#display-stats) section. -* Enable **Runtime Debug Shaders** in **HDRP Global Settings** (in the menu: **Edit** > **Project Settings** > **Graphics** > **HDRP Settings**). - -* Select **Window** > **Analysis** > **Rendering Debugger**. - -To open the window in the Play mode, or at runtime in a Development Build, use the keyboard shortcut Ctrl+Backspace (Ctrl+Delete on macOS) or press L3 and R3 (Left Stick and Right Stick) on a controller. +To disable the runtime UI, use the [enableRuntimeUI](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@17.0/api/UnityEngine.Rendering.DebugManager.html#UnityEngine_Rendering_DebugManager_enableRuntimeUI) property. You can display read-only items, such as the FPS counter, independently of the **Rendering Debugger** window. When you disable the **Rendering Debugger** window, they're still visible in the top right corner of the screen. Use this functionality to track particular values without cluttering the screen. -You can disable the runtime UI entirely by using the [`enableRuntimeUI`](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/api/UnityEngine.Rendering.DebugManager.html#UnityEngine_Rendering_DebugManager_enableRuntimeUI) property. - -### Navigation at runtime +## Navigation at runtime -To change the current active item: +### Keyboard -* **Keyboard**: Use the arrow keys. -* **Xbox controller**: Use the Directional pad (D-Pad). -* **PlayStation controller**: Use the Directional buttons. +| Action | Control | +|----------------------------------------------------|-------------------------------------------------------------------------------------------| +| **Change the current active item** | Use the arrow keys | +| **Change the current tab** | Use the Page up and Page down keys (Fn + Up and Fn + Down keys respectively for MacOS) | +| **Display the current active item independently of the debug window** | Press the right Shift key | -To change the current tab: +### Xbox Controller -* **Keyboard**: Use the Page up and Page down keys (Fn + Up and Fn + Down keys respectively for MacOS). -* **Xbox controller**: Use the Left Bumper and Right Bumper. -* **PlayStation controller**: Use the L1 button and R1 button. +| Action | Control | +|----------------------------------------------------|-------------------------------------------------------------------------------------------| +| **Change the current active item** | Use the Directional pad (D-Pad) | +| **Change the current tab** | Use the Left Bumper and Right Bumper | +| **Display the current active item independently of the debug window** | Press the X button | -To display the current active item independently of the debug window: +### PlayStation Controller -* **Keyboard**: Press the right Shift key. -* **Xbox controller**: Press the X button. -* **PlayStation controller**: Press the Square button. +| Action | Control | +|----------------------------------------------------|-------------------------------------------------------------------------------------------| +| **Change the current active item** | Use the Directional buttons | +| **Change the current tab** | Use the L1 button and R1 button | +| **Display the current active item independently of the debug window** | Press the Square button | diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalUI.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalUI.cs index 4ed96f76113..13b877f3d14 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalUI.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalUI.cs @@ -69,27 +69,24 @@ static public void SetupCommonDecalMaterialKeywordsAndPass(Material material) material.SetInt(HDShaderIDs._DecalColorMask2, (int)mask2); material.SetInt(HDShaderIDs._DecalColorMask3, (int)mask3); - // First reset the pass (in case new shader graph add or remove a pass) - bool enableDBufferMeshPass = true; - bool enableDBufferProjectorPass = true; - bool enableDecalMeshForwardEmissivePass = true; - bool enableDecalProjectorForwardEmissivePass = true; + bool enableDBufferPass = ((int)mask0 + (int)mask1 + (int)mask2 + (int)mask3) != 0; + bool enableForwardEmissivePass = material.HasProperty(kAffectEmission) && material.GetFloat(kAffectEmission) == 1.0f; + + // Disable the passes that aren't needed + // We have to check that the passes can be found on the material before touching them + // This is important because in some cases, HDRP validation code may be run before HDRP initialization + // This happens when importing with clean Library a project that needs to run the material upgrader + // Consequence is that Shader.globalRenderPipeline is not set so FindPadd will ignore passes marked with HDRP tag + // So in this code, we have to assume that even if we don't find a pass, it may still exist - // Then disable pass is they aren't needed if (material.FindPass(HDShaderPassNames.s_DBufferMeshStr) != -1) - enableDBufferMeshPass = ((int)mask0 + (int)mask1 + (int)mask2 + (int)mask3) != 0; + material.SetShaderPassEnabled(HDShaderPassNames.s_DBufferMeshStr, enableDBufferPass); if (material.FindPass(HDShaderPassNames.s_DBufferProjectorStr) != -1) - enableDBufferProjectorPass = ((int)mask0 + (int)mask1 + (int)mask2 + (int)mask3) != 0; + material.SetShaderPassEnabled(HDShaderPassNames.s_DBufferProjectorStr, enableDBufferPass); if (material.FindPass(HDShaderPassNames.s_DecalMeshForwardEmissiveStr) != -1) - enableDecalMeshForwardEmissivePass = material.HasProperty(kAffectEmission) && material.GetFloat(kAffectEmission) == 1.0f; + material.SetShaderPassEnabled(HDShaderPassNames.s_DecalMeshForwardEmissiveStr, enableForwardEmissivePass); if (material.FindPass(HDShaderPassNames.s_DecalProjectorForwardEmissiveStr) != -1) - enableDecalProjectorForwardEmissivePass = material.HasProperty(kAffectEmission) && material.GetFloat(kAffectEmission) == 1.0f; - - // Apply once - material.SetShaderPassEnabled(HDShaderPassNames.s_DBufferMeshStr, enableDBufferMeshPass); - material.SetShaderPassEnabled(HDShaderPassNames.s_DBufferProjectorStr, enableDBufferProjectorPass); - material.SetShaderPassEnabled(HDShaderPassNames.s_DecalMeshForwardEmissiveStr, enableDecalMeshForwardEmissivePass); - material.SetShaderPassEnabled(HDShaderPassNames.s_DecalProjectorForwardEmissiveStr, enableDecalProjectorForwardEmissivePass); + material.SetShaderPassEnabled(HDShaderPassNames.s_DecalProjectorForwardEmissiveStr, enableForwardEmissivePass); // Set stencil state material.SetInt(kDecalStencilWriteMask, (int)StencilUsage.Decals); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLitTemplate.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLitTemplate.hlsl index 6e3a2fd875f..bc9d0bd2225 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLitTemplate.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLitTemplate.hlsl @@ -27,6 +27,10 @@ #endif #ifdef SCENESELECTIONPASS #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" +#elif SHADERPASS == SHADERPASS_LIGHT_TRANSPORT + // Use Unity's built-in matrices for meta pass rendering + #define SCENEPICKINGPASS + #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/PickingSpaceTransforms.hlsl" #endif #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl" diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/2d-customlit.md b/Packages/com.unity.render-pipelines.universal/Documentation~/2d-customlit.md index 87b73648ac8..78cf0b03df6 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/2d-customlit.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/2d-customlit.md @@ -7,7 +7,8 @@ However, it is not infinitely flexible and may not be able to meet the needs for You can now make your own 2D Lighting model. ## Sprite Custom Lit Shader Graph -The new Shader Graph target "Custom Lit Shader Graph" provides a great starting point to create a custom lithing model shader. It does not sample the Light Textures but it does have a Normal pass and a fallback Forward pass for use in non 2D Renderer. + +The new Shader Graph target "Custom Lit Shader Graph" provides a great starting point to create a custom lighting model shader. It does not sample the Light Textures but it does have a Normal pass and a fallback Forward pass for use in non 2D Renderer. ## 2D Light Texture 2D Light Textures are Render Textures created by the 2D Renderer that contain the visible lights in the scene. There are up to 4 textures each representing a blend style in the [2D Renderer Data](2DRendererData_overview.md) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/Building-For-Consoles.md b/Packages/com.unity.render-pipelines.universal/Documentation~/Building-For-Consoles.md index d6cb44a0422..831ed127e19 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/Building-For-Consoles.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/Building-For-Consoles.md @@ -1,6 +1,6 @@ # Building your Project for Closed platforms -If you have a license to develop games for Closed platforms that require you to meet the confidentiality and legal agreements of the platform provider, then see the relevant developer forums for a link to the console specific render pipeline package. +If you have a license to develop games for Closed platforms that require you to meet the confidentiality and legal agreements of the platform provider, then refer to the relevant developer forums for a link to the console specific render pipeline package. ## Platform package installation @@ -9,4 +9,4 @@ Closed platform packages are not available in the package registry or the Packag To install a Closed platform package: 1. Download the package from the relevant developer forum. -2. Use the Package Manager to install the package locally. For information on how to install packages locally, see [Installing a local package](https://docs.unity3d.com/Manual/upm-ui-local.html). +2. Use the Package Manager to install the package locally. For information on how to install packages locally, refer to [Installing a local package](https://docs.unity3d.com/Manual/upm-ui-local.html). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/Images/Inspectors/light-inspector.png b/Packages/com.unity.render-pipelines.universal/Documentation~/Images/Inspectors/light-inspector.png deleted file mode 100644 index c57b6aeac24..00000000000 Binary files a/Packages/com.unity.render-pipelines.universal/Documentation~/Images/Inspectors/light-inspector.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/InstallURPIntoAProject.md b/Packages/com.unity.render-pipelines.universal/Documentation~/InstallURPIntoAProject.md index fbfc76fe302..611ab01c6da 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/InstallURPIntoAProject.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/InstallURPIntoAProject.md @@ -1,6 +1,6 @@ # Installing the Universal Render Pipeline into an existing Project -You can download and install the latest version of the Universal Render Pipeline (URP) to your existing Project via the [Package Manager system](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html), and then install it into your Project. If you don’t have an existing Project, see documentation on [how to start a new URP Project from a Template](creating-a-new-project-with-urp.md). +You can download and install the latest version of the Universal Render Pipeline (URP) to your existing Project via the [Package Manager system](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html), and then install it into your Project. If you don’t have an existing Project, refer to [how to start a new URP Project from a Template](creating-a-new-project-with-urp.md). ## Before you begin @@ -27,7 +27,7 @@ The [Universal Render Pipeline Asset](universalrp-asset.md) (URP Asset) contains To create a Universal Render Pipeline Asset: 1. In the Editor, go to the Project window. -2. Right-click in the Project window, and select __Create > Rendering > URP Asset__. Alternatively, navigate to the menu bar at the top, and select __Assets > Create > Rendering > Universal Render Pipeline > Pipeline Asset__. +2. Right-click in the Project window, and select **Create** > **Rendering** > **URP Asset (with Universal Renderer)**. Alternatively, navigate to the menu bar at the top, and select **Assets** > **Create** > **Rendering** > **URP Asset (with Universal Renderer)**. You can either leave the default name for the new Universal Render Pipeline Asset, or type a new one. @@ -51,4 +51,4 @@ Set an override URP Assets for different quality levels: ## Upgrading your shaders -If your project uses the prebuilt [Standard Shader](https://docs.unity3d.com/Manual/shader-StandardShader.html), or custom Unity shaders made for the Built-in Render Pipeline, you must convert them to URP-compatible Unity shaders. For more information on this topic, see [Upgrading your Shaders](upgrading-your-shaders.md). +If your project uses the prebuilt [Standard Shader](https://docs.unity3d.com/Manual/shader-StandardShader.html), or custom Unity shaders made for the Built-in Render Pipeline, you must convert them to URP-compatible Unity shaders. For more information on this topic, refer to [Upgrading your Shaders](upgrading-your-shaders.md). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/InstallingAndConfiguringURP.md b/Packages/com.unity.render-pipelines.universal/Documentation~/InstallingAndConfiguringURP.md index c620389469d..ad3eee7d0f9 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/InstallingAndConfiguringURP.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/InstallingAndConfiguringURP.md @@ -7,4 +7,4 @@ To use the Universal Render Pipeline (URP), you can start a new Project or upgra **Note:** URP does not currently support custom post-processing effects. If your Project uses custom post-processing effects, these cannot currently be recreated in URP. Custom post-processing effects will be supported in a forthcoming release of URP. -**Note:** Projects made using URP are not compatible with the High Definition Render Pipeline (HDRP) or the Built-in Render Pipeline. Before you start development, you must decide which render pipeline to use in your Project. For information on choosing a render pipeline, see [the Render Pipelines section of the Unity Manual](https://docs.unity3d.com/2019.3/Documentation/Manual/render-pipelines.html). +**Note:** Projects made using URP are not compatible with the High Definition Render Pipeline (HDRP) or the Built-in Render Pipeline. Before you start development, you must decide which render pipeline to use in your Project. For information on choosing a render pipeline, refer to [the Render Pipelines section of the Unity Manual](https://docs.unity3d.com/2019.3/Documentation/Manual/render-pipelines.html). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/Post-Processing-Panini-Projection.md b/Packages/com.unity.render-pipelines.universal/Documentation~/Post-Processing-Panini-Projection.md index 23a46d35e41..041df49439b 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/Post-Processing-Panini-Projection.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/Post-Processing-Panini-Projection.md @@ -2,7 +2,7 @@ This effect helps you to render perspective views in Scenes with a very large field of view. Panini projection is a cylindrical projection, which means that it keeps vertical straight lines straight and vertical. Unlike other cylindrical projections, panini projection keeps radial lines through the center of the image straight too. -For more information about panini projection, see PanoTools’ wiki documentation on [General Panini Projection](https://wiki.panotools.org/The_General_Panini_Projection). +For more information about panini projection, refer to PanoTools’ wiki documentation on [General Panini Projection](https://wiki.panotools.org/The_General_Panini_Projection). ## Using Panini Projection diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/Post-Processing-White-Balance.md b/Packages/com.unity.render-pipelines.universal/Documentation~/Post-Processing-White-Balance.md index a10ca8442ac..42fc8be7f39 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/Post-Processing-White-Balance.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/Post-Processing-White-Balance.md @@ -15,5 +15,5 @@ The White Balance component applies a white balance effect that removes unrealis | **Property** | **Description** | | --------------- | ------------------------------------------------------------ | -| **Temperature** | Use the slider to set the white balance to a custom color temperature. Higher values result in a warmer color temperature and lower values result in a colder color temperature. See [Wikipedia: Color balance](https://en.wikipedia.org/wiki/Color_balance) for more information about color temperature. | +| **Temperature** | Use the slider to set the white balance to a custom color temperature. Higher values result in a warmer color temperature and lower values result in a colder color temperature. Refer to [Wikipedia: Color balance](https://en.wikipedia.org/wiki/Color_balance) for more information about color temperature. | | **Tint** | Use the slider to compensate for a green or magenta tint. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md b/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md index bf167d3a245..6dedf2cfcc0 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md @@ -45,13 +45,14 @@ * [Rendering](rendering-in-universalrp.md) * [How to use Render Objects Renderer Feature](containers/how-to-custom-effect-render-objects.md) * [Lighting](lighting.md) + * [Lighting in URP](lighting/lighting-in-urp.md) * [Light component reference](light-component.md) - * [Lighting Mode](urp-lighting-mode.md) * [The Universal Additional Light Data component](universal-additional-light-data.md) + * [Lighting Mode](urp-lighting-mode.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) + * [Lens Flare Data Asset](shared/lens-flare/lens-flare-asset.md) * [Cameras](cameras.md) * [Cameras in URP](cameras/camera-differences-in-urp.md) * [Understand camera render order](cameras-advanced.md) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/Volumes.md b/Packages/com.unity.render-pipelines.universal/Documentation~/Volumes.md index bc05fb9ec4f..8ac0d131e7d 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/Volumes.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/Volumes.md @@ -12,7 +12,7 @@ The Volume component contains the **Mode** property that defines whether the Vol ![Volume Mode property](Images/post-proc/volume-mode-prop.png) -With Mode set to **Global**, Volumes affect the Camera everywhere in the Scene. With Mode set to **Local**, Volumes affect the Camera if the Camera is within the bounds of the Collider. For more information, see [How to use Local Volumes](#volume-local). +With Mode set to **Global**, Volumes affect the Camera everywhere in the Scene. With Mode set to **Local**, Volumes affect the Camera if the Camera is within the bounds of the Collider. For more information, refer to [How to use Local Volumes](#volume-local). You can add a __Volume__ component to any GameObject. A Scene can contain multiple GameObjects with Volume components. You can add multiple Volume components to a GameObject. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/anti-aliasing.md b/Packages/com.unity.render-pipelines.universal/Documentation~/anti-aliasing.md index 235a796a41c..83b58f7c989 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/anti-aliasing.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/anti-aliasing.md @@ -43,7 +43,7 @@ To enable MSAA: 1. Open a [URP Asset](universalrp-asset.md) in the Inspector. 2. Navigate to **Quality** > **Anti Aliasing (MSAA)** and select the level of MSAA you want. -For more information on the available settings, see the [MSAA setings in the URP Asset](universalrp-asset.md#quality). +For more information on the available settings, refer to [MSAA setings in the URP Asset](universalrp-asset.md#quality). > [!NOTE] > On mobile platforms that don't support the [StoreAndResolve](https://docs.unity3d.com/ScriptReference/Rendering.RenderBufferStoreAction.StoreAndResolve.html) store action, if **Opaque Texture** is selected in the **URP Asset**, Unity ignores the **MSAA** property at runtime (as if **MSAA** is set to **Disabled**). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/camera-types-and-render-type.md b/Packages/com.unity.render-pipelines.universal/Documentation~/camera-types-and-render-type.md index d666354ac30..b84ba5d6a0a 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/camera-types-and-render-type.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/camera-types-and-render-type.md @@ -32,13 +32,13 @@ cameraData.renderType = CameraRenderType.Base; Base Camera is the default type of Camera in URP. A Base Camera is a general purpose Camera that renders to a given render target. -To render anything in URP, you must have at least one Base Camera in your Scene. You can have multiple Base Cameras in a Scene. You can use a Base Camera on its own, or you can use it in a [Camera stack](camera-stacking.md). For more information on working with multiple Cameras in URP, see [Working with multiple cameras](cameras-multiple.md). +To render anything in URP, you must have at least one Base Camera in your Scene. You can have multiple Base Cameras in a Scene. You can use a Base Camera on its own, or you can use it in a [Camera stack](camera-stacking.md). For more information on working with multiple Cameras in URP, refer to [Working with multiple cameras](cameras-multiple.md). When you have an active Base Camera in your Scene, this icon appears next to the Camera Gizmo in the Scene view: ![Overlay Camera icon](Images/camera-icon-base.png) -For information on the properties that Unity exposes in the Inspector for a Base Camera, see the [Camera component reference](camera-component-reference.md). +For information on the properties that Unity exposes in the Inspector for a Base Camera, refer to [Camera component reference](camera-component-reference.md). @@ -73,4 +73,4 @@ Unity hides all of the other unused properties in the Inspector. You can access > [!NOTE] > While you can apply post-processing to an individual Overlay Camera within a camera stack, the effects also apply to all the outputs the camera stack renders before the Overlay Camera. This is different to how you can apply post-processing to an individual Base Camera where the effects on only apply to the Base Camera. -For information on the properties that Unity exposes in the Inspector of an Overlay Camera, see the [Camera component reference](camera-component-reference.md). +For information on the properties that Unity exposes in the Inspector of an Overlay Camera, refer to [Camera component reference](camera-component-reference.md). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/faq.md b/Packages/com.unity.render-pipelines.universal/Documentation~/faq.md index 258a9ffce59..113b674c5cf 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/faq.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/faq.md @@ -2,7 +2,7 @@ This section answers some frequently asked questions about the Universal Render Pipeline (URP). These questions come from the [General Graphics](https://forum.unity.com/forums/general-graphics.76/) section on our forums, from the [Unity Discord](https://discord.gg/unity) channel, and from our support teams. -For information about the High Definition Render Pipeline (HDRP), see the [HDRP documentation](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html). +For information about the High Definition Render Pipeline (HDRP), refer to [HDRP documentation](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest/index.html). ## Can I use URP and HDRP at the same time? @@ -10,7 +10,7 @@ No. They're both built with the Scriptable Render Pipeline (SRP), but their rend ## Can I convert from one pipeline to the other? -You can convert from the Built-in Render Pipeline to URP. To do so, you'll have to re-write your Assets and redo the lighting in your game or app. See this upgrade guide on [installing URP into an existing Project](InstallURPIntoAProject.md). +You can convert from the Built-in Render Pipeline to URP. To do so, you'll have to re-write your Assets and redo the lighting in your game or app. Refer to this upgrade guide on [installing URP into an existing Project](InstallURPIntoAProject.md). You can use our upgrader to [upgrade Built-in Shaders to the URP Shaders](upgrading-your-shaders.md). For custom Shaders, you'll have to upgrade them manually. @@ -49,7 +49,7 @@ You can open bugs by using the [bug reporter system](https://unity3d.com/unity/q ## I’ve upgraded my Project from the Built-in render pipeline to URP, but it’s not running faster. Why? -URP and the Built-in Render Pipeline have different quality settings. While the Built-in Render Pipeline configures many settings in different places like the Quality Settings, Graphics Settings, and Player Settings, all URP settings are stored in the URP Asset. The first thing to do is to check whether your URP Asset settings match the settings your Built-in render pipeline Project. For example, if you disabled MSAA or HDR in your Built-in render pipeline Project, make sure they are disabled in the URP Asset in your URP Project. For advice on configuring URP Assets, see documentation on the [URP Asset](universalrp-asset.md). +URP and the Built-in Render Pipeline have different quality settings. While the Built-in Render Pipeline configures many settings in different places like the Quality Settings, Graphics Settings, and Player Settings, all URP settings are stored in the URP Asset. The first thing to do is to check whether your URP Asset settings match the settings your Built-in render pipeline Project. For example, if you disabled MSAA or HDR in your Built-in render pipeline Project, make sure they are disabled in the URP Asset in your URP Project. For advice on configuring URP Assets, refer to the [URP Asset](universalrp-asset.md). If, after comparing the settings, you still experience worse performance with URP, please [open a bug report](https://unity3d.com/unity/qa/bug-reporting) and attach your Project. @@ -59,7 +59,7 @@ No. Please [open a bug report](https://unity3d.com/unity/qa/bug-reporting). ## My Project takes a long time to build. Is this expected? -We are looking into how to strip Shader keywords more aggressively. You can help the Shader stripper by disabling features you don’t require for your game in the URP Asset. For more information on settings that affect shader variants and build time, see the [shader stripping documentation](shader-stripping.md). +We are looking into how to strip Shader keywords more aggressively. You can help the Shader stripper by disabling features you don’t require for your game in the URP Asset. For more information on settings that affect shader variants and build time, refer to [shader stripping documentation](shader-stripping.md). ## How do I set Camera clear flags in URP? diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/features/rendering-debugger.md b/Packages/com.unity.render-pipelines.universal/Documentation~/features/rendering-debugger.md index f22f1ee14ff..0cba921c646 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/features/rendering-debugger.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/features/rendering-debugger.md @@ -4,47 +4,62 @@ The **Rendering Debugger** window lets you visualize various lighting, rendering This section contains the following topics: -* [How to access the Rendering Debugger window](#how-to-access). +* [How to access the Rendering Debugger](#how-to-access). Information on how to access the **Rendering Debugger** window in the Editor, in the Play mode, and at runtime in Development builds. -* [Rendering Debugger window sections](#ui-sections) - - Descriptions of the elements and properties in the **Rendering Debugger** window. - * [Navigation at runtime](#navigation-at-runtime) How to navigate the **Rendering Debugger** interface at runtime. -## How to access the Rendering Debugger window +* [Rendering Debugger window sections](#ui-sections) -The Rendering Debugger window is available in the following modes: + Descriptions of the elements and properties in the **Rendering Debugger** window. -* The Editor. +## How to access the Rendering Debugger -* The Play mode. +The Rendering Debugger window is available in the following modes: -* At runtime in the standalone Unity Player, on any device. The window is only available in **Development builds**. +| Mode | Platform | Availability | How to Open the Rendering Debugger | +| ---------- | -------------- | ------------------------------ | ---------------------------------- | +| Editor | All | Yes (window in the Editor) | Select **Window > Analysis > Rendering Debugger** | +| Play mode | All | Yes (overlay in the Game view) | On a desktop or laptop computer, press **LeftCtrl+Backspace** (**LeftCtrl+Delete** on macOS)
On a console controller, press L3 and R3 (Left Stick and Right Stick) | +| Runtime | Desktop/Laptop | Yes (only in Development builds) | Press **LeftCtrl+Backspace** (**LeftCtrl+Delete** on macOS) | +| Runtime | Console | Yes (only in Development builds) | Press L3 and R3 (Left Stick and Right Stick) | +| Runtime | Mobile | Yes (only in Development builds) | Use a three-finger double tap | -When using the **Rendering Debugger** window in the Development build, clear the **Strip Debug Variants** check box in **Project Settings > Graphics > URP Global Settings**. +To enable all the sections of the **Rendering Debugger** in your built application, disable **Strip Debug Variants** in **Project Settings > Graphics > URP Global Settings**. Otherwise, you can only use the [Display Stats](#display-stats) section. -Use one of the following options to open the **Rendering Debugger** window. +To disable the runtime UI, use the [enableRuntimeUI](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@17.0/api/UnityEngine.Rendering.DebugManager.html#UnityEngine_Rendering_DebugManager_enableRuntimeUI) property. -**In the Editor**: +>[!NOTE] +> When using the **Rendering Debugger** window in the Development build, clear the **Strip Debug Variants** check box in **Project Settings > Graphics > URP Global Settings**. -* Select **Window > Analysis > Rendering Debugger**. +## Navigation at runtime -* Press **Ctrl+Backspace** (**Ctrl+Delete** on macOS). +### Keyboard -**In the Play mode or at runtime in a Development build**: +| Action | Control | +|----------------------------------------------------|-------------------------------------------------------------------------------------------| +| **Change the current active item** | Use the arrow keys | +| **Change the current tab** | Use the Page up and Page down keys (Fn + Up and Fn + Down keys respectively for MacOS) | +| **Display the current active item independently of the debug window** | Press the right Shift key | -* On a desktop or laptop computer, press **LeftCtrl+Backspace** (**LeftCtrl+Delete** on macOS). +### Xbox Controller -* On a console controller, press L3 and R3 (Left Stick and Right Stick). +| Action | Control | +|----------------------------------------------------|-------------------------------------------------------------------------------------------| +| **Change the current active item** | Use the Directional pad (D-Pad) | +| **Change the current tab** | Use the Left Bumper and Right Bumper | +| **Display the current active item independently of the debug window** | Press the X button | -* On a mobile device, use a three-finger double tap. +### PlayStation Controller -You can disable the runtime UI using the [enableRuntimeUI](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@14.0/api/UnityEngine.Rendering.DebugManager.html#UnityEngine_Rendering_DebugManager_enableRuntimeUI) property. +| Action | Control | +|----------------------------------------------------|-------------------------------------------------------------------------------------------| +| **Change the current active item** | Use the Directional buttons | +| **Change the current tab** | Use the L1 button and R1 button | +| **Display the current active item independently of the debug window** | Press the Square button | ## Rendering Debugger window sections @@ -64,14 +79,12 @@ The following illustration shows the Rendering Debugger window in the Scene view ### Frequently Used -This section contains a selection of properties that users use often. The properties are from the other sections in the Rendering Debugger window. For information about the properties, see the sections [Material](#material), [Lighting](#lighting), and [Rendering](#rendering). +This section contains a selection of properties that users use often. The properties are from the other sections in the Rendering Debugger window. For information about the properties, refer to the sections [Material](#material), [Lighting](#lighting), and [Rendering](#rendering). ### Material The properties in this section let you visualize different Material properties. -![Rendering Debugger, Material section](../Images/rendering-debugger/material-section.png)
*Rendering Debugger, Material section* - #### Material Filters | **Property** | **Description** | @@ -93,11 +106,9 @@ The properties in this section let you visualize different settings and elements #### Lighting Debug Modes -![](../Images/rendering-debugger/lighting-debug-modes.png)
*The Lighting Debug Modes subsection.* - | **Property** | **Description** | | ----------------------- | ------------------------------------------------------------ | -| **Lighting Debug Mode** | Specifies which lighting and shadow information to overlay on-screen to debug. The options are: | +| **Lighting Debug Mode** | Specifies which lighting and shadow information to overlay on-screen to debug. The options are: | | **Lighting Features** | Specifies flags for which lighting features contribute to the final lighting result. Use this to view and debug specific lighting features in your scene. The options are: | ### Rendering @@ -106,8 +117,6 @@ The properties in this section let you visualize different rendering features. #### Rendering Debug -![](../Images/rendering-debugger/rendering-debug.png)
*The Rendering Debug subsection.* - | **Property** | **Description** | | ------------------------------ | ------------------------------------------------------------ | | **Map Overlays** | Specifies which render pipeline texture to overlay on the screen. The options are: | @@ -128,35 +137,3 @@ The properties in this section let you visualize different rendering features. | **  Channels** | Specifies which value to use for the pixel value range validation. The options are:This property only appears if you set **Pixel Validation Mode** to **Highlight Values Outside Range**. | | **   Value Range Min** | The minimum valid color value. Unity highlights color values that are less than this value.

This property only appears if you set **Pixel Validation Mode** to **Highlight Values Outside Range**. | | **   Value Range Max** | The maximum valid color value. Unity highlights color values that are greater than this value.

This property only appears if you set **Pixel Validation Mode** to **Highlight Values Outside Range**. | - -## Navigation at runtime - -This section describes how to navigate the **Rendering Debugger** interface at runtime. - -To change the current active item: - -* **Keyboard**: use the arrow keys. - -* **Touch screen**: tap the arrows next to properties. - -* **Xbox controller**: use the Directional pad (D-Pad). - -* **PlayStation controller**: use the Directional buttons. - -To change the current tab: - -* **Keyboard**: use the Page up and Page down keys (Fn + Up and Fn + Down keys for MacOS). - -* **Touch screen**: tap the arrows next to tab title. - -* **Xbox controller**: use the Left Bumper and Right Bumper. - -* **PlayStation controller**: use the L1 button and R1 button. - -To display the current active item independently of the debug window: - -* **Keyboard**: press the right Shift key. - -* **Xbox controller**: press the X button. - -* **PlayStation controller**: press the Square button. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/features/rp-converter.md b/Packages/com.unity.render-pipelines.universal/Documentation~/features/rp-converter.md index 3626822cf91..80e5c5f45d3 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/features/rp-converter.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/features/rp-converter.md @@ -20,7 +20,7 @@ To convert project assets: ![Select converters](../Images/rp-converter/select-converters.png) - For the list of available converters, see the section [Converters](#converters). + For the list of available converters, refer to [Converters](#converters). 4. Click **Initialize Converters**. The Render Pipeline Converter preprocesses the assets in the project and shows the list of elements to convert. Select or clear check boxes next to assets to include or exclude them from the conversion process. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/index.md b/Packages/com.unity.render-pipelines.universal/Documentation~/index.md index 7a9d7386578..4ab308ad2a2 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/index.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/index.md @@ -6,14 +6,14 @@ The Universal Render Pipeline (URP) is a prebuilt Scriptable Render Pipeline, ma ## Requirements -For information about requirements and compatibility, see section [Requirements](requirements.md). +For information about requirements and compatibility, refer to [Requirements](requirements.md). ## What's new in URP -For information on what's new in the latest version of URP, see section [What's new in URP](whats-new/urp-whats-new.md). +For information on what's new in the latest version of URP, refer to [What's new in URP](whats-new/urp-whats-new.md). ## Getting started with URP -For information on starting a new URP Project from scratch, or about installing URP in an existing Unity Project, see [Getting started](InstallingAndConfiguringURP.md). +For information on starting a new URP Project from scratch, or about installing URP in an existing Unity Project, refer to [Getting started](InstallingAndConfiguringURP.md). ## Upgrading -For information on upgrading from a previous version of URP to the current version, or for information about upgrading from the Lightweight Render Pipeline (LWRP) to URP, see [Upgrade guides](upgrade-guides.md). +For information on upgrading from a previous version of URP to the current version, or for information about upgrading from the Lightweight Render Pipeline (LWRP) to URP, refer to [Upgrade guides](upgrade-guides.md). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/integration-with-post-processing.md b/Packages/com.unity.render-pipelines.universal/Documentation~/integration-with-post-processing.md index da01093284a..12738371b2a 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/integration-with-post-processing.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/integration-with-post-processing.md @@ -28,7 +28,7 @@ To see the preconfigured effects, select **Post-process Volume** in the Scene. To add extra effects, [add Volume Overrides to the Volume](VolumeOverrides.md#volume-add-override). -To configure location-based post-processing effects, see [How to use Local Volumes](Volumes.md#volume-local). +To configure location-based post-processing effects, refer to [How to use Local Volumes](Volumes.md#volume-local). ### Configuring post-processing in a new URP Scene diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/light-component.md b/Packages/com.unity.render-pipelines.universal/Documentation~/light-component.md index e7b9437f1d7..3a17bf519ef 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/light-component.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/light-component.md @@ -2,12 +2,11 @@ Lights determine the shading of an object and the shadows it casts. -This page contains information on Light components in the Universal Render Pipeline (URP). For a general introduction to lighting in Unity and examples of common lighting workflows, see [the Lighting section of the Unity Manual](https://docs.unity3d.com/Manual/LightingOverview.html). +This page contains information on Light components in the Universal Render Pipeline (URP). For a general introduction to lighting in Unity and examples of common lighting workflows, refer to [the Lighting section of the Unity Manual](https://docs.unity3d.com/Manual/LightingOverview.html). ## Properties -The Light Inspector includes the following groups of properties: -![](Images/Inspectors/light-inspector.png) +The Light Inspector includes the following groups of properties: * [General](#General) * [Shape](#Shape) @@ -19,51 +18,58 @@ The Light Inspector includes the following groups of properties: | Property:| Function: | |:---|:---| -| __Type__| The current type of light. Possible values are __Directional__, __Point__, __Spot__ and __Area__.| -| __Mode__| Specify the [Light Mode](https://docs.unity3d.com/Manual/LightModes.html) used to determine if and how a light is "baked". Possible modes are __Realtime__, __Mixed__ and __Baked__.| +| **Type**| The current type of light. Possible values are **Directional**, **Point**, **Spot** and **Area**.| +| **Mode**| Specify the [Light Mode](https://docs.unity3d.com/Manual/LightModes.html) used to determine if and how a light is "baked".

Options:
**Note**: If **Type** is set to **Area**, this property is automatically set to **Baked**. | ### Shape | Property:| Function: | |:---|:---| -| __Spot Angle__| Define the angle (in degrees) at the base of a spot light’s cone (__Spot__ light only). | +| **Inner/Outer Spot Angle**| The inner and outer angles (in degrees) at the base of a spot light’s cone.

This property is only available when **Type** is set to **Spot**. | +| **Shape** | The shape of the area light.

Available options:
This property is only available when **Type** is set to **Area**. | +|     **Width** | The width of the area light.

**Note**: This property is only available if **Shape** is set to **Rectangle**. | +|     **Height** | The height of the area light.

**Note**: This property is only available if **Shape** is set to **Rectangle**. | +|     **Radius** | The radius of the area light

**Note**: This property is only available if **Shape** is set to **Disc**. | ### Emission | Property:| Function: | |:---|:---| -| __Color__| Use the color picker to set the color of the emitted light. | -| __Intensity__| Set the brightness of the light. The default value for a __Directional__ light is 0.5. The default value for a __Point__, __Spot__ or __Area__ light is 1. | -| __Indirect Multiplier__| Use this value to vary the intensity of indirect light. Indirect light is light that has bounced from one object to another. The __Indirect Multiplier__ defines the brightness of bounced light calculated by the global illumination (GI) system. If you set __Indirect Multiplier__ to a value lower than __1,__ the bounced light becomes dimmer with every bounce. A value higher than __1__ makes light brighter with each bounce. This is useful, for example, when a dark surface in shadow (such as the interior of a cave) needs to be brighter in order to make detail visible. | -| __Range__| Define how far the light emitted from the center of the object travels (__Point__ and __Spot__ lights only). | -| **Cookie** | The RGB texture this Light projects into the scene. Use cookies to create silhouettes or patterned illumination. The texture format to use depends on the type of Light:
• Directional: 2D texture
• Spot: 2D texture
• Point: [cubemap texture](https://docs.unity3d.com/Manual/class-Cubemap.html)

If you enable cookies, URP uses more memory.

**Note**: URP doesn't support light cookies for Area lights.

For more information about light cookies, see [Cookies](https://docs.unity3d.com/Manual/Cookies.html). | -|   **Cookie Size** | The per-axis scale Unity applies to the cookie texture. Use this property to set the size of the cookie.

This property is available only if you set **Type** to **Directional** and assign a texture to **Cookie**. | -|   **Cookie Offset** | The per-axis offset Unity applies to the cookie texture. Use this property to move the cookie without moving the light itself. You can also animate this property to scroll the cookie.

This property is available only if you set **Type** to **Directional** and assign a texture to **Cookie**. | +| **Light Appearance** | Select the method used to create the color of the light.

Available options: | +|     **Color**| The color of the emitted light. Set this property with the color slider.

**Note**: This property is only available if **Light Apperance** is set to **Color**. | +|     **Filter**| The color of the tint for the light source. Set this property with the color slider.

**Note**: This property is only available if **Light Apperance** is set to **Filter and Temperature**. | +|     **Temperature**| The temperature (in Kelvin) of the light. Set this property with the slider or enter a specific value.

**Note**: This property is only available if **Light Apperance** is set to **Filter and Temperature**. | +| **Intensity**| Set the brightness of the light. The default value for a **Directional** light is 0.5. The default value for a **Point**, **Spot** or **Area** light is 1. | +| **Indirect Multiplier**| Use this value to vary the intensity of indirect light. Indirect light is light that has bounced from one object to another. The **Indirect Multiplier** defines the brightness of bounced light calculated by the global illumination (GI) system. If you set **Indirect Multiplier** to a value lower than **1,** the bounced light becomes dimmer with every bounce. A value higher than **1** makes light brighter with each bounce. This is useful, for example, when a dark surface in shadow (such as the interior of a cave) needs to be brighter in order to make detail visible. | +| **Range**| Define how far the light emitted from the center of the object travels (**Point** and **Spot** lights only). | +| **Cookie** | The RGB texture this Light projects into the scene. Use cookies to create silhouettes or patterned illumination. The texture format to use depends on the type of Light:
• Directional: 2D texture
• Spot: 2D texture
• Point: [cubemap texture](https://docs.unity3d.com/Manual/class-Cubemap.html)

**Note**: URP doesn't support light cookies for Area lights.

For more information about light cookies, refer to [Cookies](https://docs.unity3d.com/Manual/Cookies.html). | +|   **Cookie Size** | The per-axis scale Unity applies to the cookie texture. Use this property to set the size of the cookie.

**Note**: This property is available only if you set **Type** to **Directional** and assign a texture to **Cookie**. | +|   **Cookie Offset** | The per-axis offset Unity applies to the cookie texture. Use this property to move the cookie without moving the light itself. You can also animate this property to scroll the cookie.

**Note**: This property is available only if you set **Type** to **Directional** and assign a texture to **Cookie**. | ## Rendering | Property:| Function: | |:---|:---| -| __Render Mode__| Use this drop-down to set the rendering priority of the selected Light. This can affect lighting fidelity and performance (see *Performance Considerations,* below). | -|    Auto| The rendering method is determined at run time, depending on the brightness of nearby lights and the current [Quality](https://docs.unity3d.com/Manual/class-QualitySettings.html) settings. | -|    Important| The light is always rendered at per-pixel quality. Use __Important__ mode only for the most noticeable visual effects (for example, the headlights of a player’s car). | -|    Not Important| The light is always rendered in a faster, vertex/object light mode. | -| __Culling Mask__| Use this to selectively exclude groups of objects from being affected by the Light. For more information, see [Layers](https://docs.unity3d.com/Manual/Layers.html).| - +| **Render Mode**| Use this drop-down to set the rendering priority of the selected Light. This can affect lighting fidelity and performance (refer to the **Performance Considerations**, below). | +|    **Auto**| The rendering method is determined at run time, depending on the brightness of nearby lights and the current [Quality](https://docs.unity3d.com/Manual/class-QualitySettings.html) settings. | +|    **Important**| The light is always rendered at per-pixel quality. Use **Important** mode only for the most noticeable visual effects (for example, the headlights of a player’s car). | +|    **Not Important**| The light is always rendered in a faster, vertex/object light mode. | +| **Culling Mask**| Use this to selectively exclude groups of objects from being affected by the Light. For more information, refer to [Layers](https://docs.unity3d.com/Manual/Layers.html).| ## Shadows | Property:| Function: | |:---|:---| -| __Shadow Type__| Determine whether this Light casts Hard Shadows, Soft Shadows, or no shadows at all. See the page [Lights](https://docs.unity3d.com/Manual/class-Light.html) for information on hard and soft shadows. | -|    Baked Shadow Angle| If __Type__ is set to __Directional__ and __Shadow Type__ is set to __Soft Shadows__, this property adds some artificial softening to the edges of shadows and gives them a more natural look. | -|    Baked Shadow Radius| If __Type__ is set to __Point__ or __Spot__ and __Shadow Type__ is set to __Soft Shadows__, this property adds some artificial softening to the edges of shadows and gives them a more natural look. | -|    Realtime Shadows| These properties are available when __Shadow Type__ is set to __Hard Shadows__ or __Soft Shadows__. Use these properties to control real-time shadow rendering settings. | -|        Strength| Use the slider to control how dark the shadows cast by this Light are, represented by a value between 0 and 1. This is set to 1 by default. | -|        Bias| Controls whether to use shadow bias settings from the URP Asset, or whether to define custom shadow bias settings for this Light. Possible values are **Use Pipeline Settings** or **Custom**.| -|        Depth| Controls the distance at which the shadows will be pushed away from the light. Useful for avoiding false self-shadowing artifacts. This property is visible only when **Bias** is set to **Custom**.| -|        Normal| Controls the distance at which the shadow casting surfaces will be shrunk along the surface normal. Useful for avoiding false self-shadowing artifacts. This property is visible only when **Bias** is set to **Custom**.| -|        Near Plane| Use the slider to control the value for the near clip plane when rendering shadows, defined as a value between 0.1 and 10. This value is clamped to 0.1 units or 1% of the light’s __Range__ property, whichever is lower. This is set to 0.2 by default. | +| **Shadow Type**| Determine whether this Light casts Hard Shadows, Soft Shadows, or no shadows at all. For information on hard and soft shadows, refer to documentation on [Lights](https://docs.unity3d.com/Manual/class-Light.html). | +|    **Baked Shadow Angle** | If **Type** is set to **Directional** and **Shadow Type** is set to **Soft Shadows**, this property adds some artificial softening to the edges of shadows and gives them a more natural look.

**Note**: This property is only available if **Mode** is set to **Mixed** or **Baked**. | +|    **Baked Shadow Radius** | If **Type** is set to **Point** or **Spot** and **Shadow Type** is set to **Soft Shadows**, this property adds some artificial softening to the edges of shadows and gives them a more natural look.

**Note**: This property is only available if **Mode** is set to **Mixed** or **Baked**. | +|    **Realtime Shadows**| These properties are available when **Shadow Type** is set to **Hard Shadows** or **Soft Shadows**. Use these properties to control real-time shadow rendering settings. | +|        **Strength**| Use the slider to control how dark the shadows cast by this Light are, represented by a value between 0 and 1. This is set to 1 by default. | +|        **Bias**| Controls whether to use shadow bias settings from the URP Asset, or whether to define custom shadow bias settings for this Light. Possible values are **Use Pipeline Settings** or **Custom**.| +|        **Depth**| Controls the distance at which the shadows will be pushed away from the light. Useful for avoiding false self-shadowing artifacts. This property is visible only when **Bias** is set to **Custom**.| +|        **Normal**| Controls the distance at which the shadow casting surfaces will be shrunk along the surface normal. Useful for avoiding false self-shadowing artifacts. This property is visible only when **Bias** is set to **Custom**.| +|        **Near Plane**| Use the slider to control the value for the near clip plane when rendering shadows, defined as a value between 0.1 and 10. This value is clamped to 0.1 units or 1% of the light’s **Range** property, whichever is lower. This is set to 0.2 by default. | ## Preset + When using Preset of Light Component, only a subset of properties are supported. Unsupported properties are hidden. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/lighting.md b/Packages/com.unity.render-pipelines.universal/Documentation~/lighting.md index 56fa9a22c91..0c04fc8e31d 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/lighting.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/lighting.md @@ -2,17 +2,15 @@ Using the Universal Render Pipeline (URP), you can achieve realistic lighting that is suitable for a range of art styles. -All of Unity's render pipelines share common lighting functionality, but each render pipeline has some important differences. - -Areas where the Universal Render Pipeline (URP) differs from Unity's common lighting functionality are: - -* The [Light component inspector](light-component.md), which displays some URP-specific controls. -* The [Universal Additional Light Data](universal-additional-light-data.md) component, which allows Unity to store Light-related data that is specific to URP. -* Enlighten Realtime Global Illumination is supported in URP from version 12. For more information, see [Realtime Global Illumination using Enlighten](https://docs.unity3d.com/2021.2/Documentation/Manual/realtime-gi-using-enlighten.html). - -For a full comparison of lighting features between Unity's Built-in Render Pipeline and URP, and an up to date list of lighting features that are currently under research, see [this feature comparison chart](universalrp-builtin-feature-comparison.md). - -For a general introduction to lighting in Unity and examples of common lighting workflows, see [the Lighting section of the Unity Manual](https://docs.unity3d.com/Manual/LightingOverview.html). +| Page | Description | +|-|-| +| [Lighting in URP](lighting/lighting-in-urp.md) | Understand the differences between Unity's common lighting functionality and the lighting functionality in URP.| +| [Light component reference](light-component.md) | Understand how each lighting property works in URP. | +| [The Universal Additional Light Data component](universal-additional-light-data.md) | Use the Universal Additional Light Data component to override lighting settings in URP. | +| [Lighting Mode](urp-lighting-mode.md) | Understand which lighting modes URP supports. | +| [Shadows in the URP](Shadows-in-URP.md) | How to work with shadows in URP. | +| [Reflection Probes](lighting/reflection-probes.md) | Configure the URP-specific behavior of Reflection Probes. | +| [Lens Flare Data Asset](shared/lens-flare/lens-flare-asset.md) | Understand how to use the Lens Flare Data Asset in URP. | ## Configure lighting for better performance diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/light-layers.md b/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/light-layers.md index c60b308fd03..b1cd44d9fce 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/light-layers.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/light-layers.md @@ -6,7 +6,7 @@ For example, in the following illustration, Light `A` affects Sphere `D`, but no ![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). +To read how to implement this example, refer to [How to use Light Layers](#how-to-light-layers). ## How to enable Light Layers diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/lighting-in-urp.md b/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/lighting-in-urp.md new file mode 100644 index 00000000000..174f905ec2f --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/lighting-in-urp.md @@ -0,0 +1,12 @@ +# Lighting in the Universal Render Pipeline + +All of Unity's render pipelines share common lighting functionality, but each render pipeline has some important differences. + +Areas where the Universal Render Pipeline (URP) differs from Unity's common lighting functionality are: + +* The [Light component inspector](light-component.md), which displays some URP-specific controls. +* The [Universal Additional Light Data](universal-additional-light-data.md) component, which allows Unity to store Light-related data that is specific to URP. + +For a full comparison of lighting features between Unity's Built-in Render Pipeline and URP, and an up to date list of lighting features that are currently under research, check the [Render pipeline feature comparison](https://docs.unity3d.com/Manual/render-pipelines-feature-comparison.html). + +For a general introduction to lighting in Unity and examples of common lighting workflows, refer to the [Lighting section of the Unity Manual](https://docs.unity3d.com/Manual/LightingOverview.html). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/reflection-probes.md b/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/reflection-probes.md index d148c5113bc..5a2e79f7218 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/reflection-probes.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/lighting/reflection-probes.md @@ -2,7 +2,7 @@ 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). +For general information on reflection probes, refer to the page [Reflection Probes](https://docs.unity3d.com/Manual/ReflectionProbes.html). ## Configuring reflection probe settings diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/lit-shader.md b/Packages/com.unity.render-pipelines.universal/Documentation~/lit-shader.md index 6bd48cea09a..a9468a82794 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/lit-shader.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/lit-shader.md @@ -2,7 +2,7 @@ The Lit Shader lets you render real-world surfaces like stone, wood, glass, plastic, and metals in photo-realistic quality. Your light levels and reflections look lifelike and react properly across various lighting conditions, for example bright sunlight, or a dark cave. This Shader uses the most computationally heavy [shading model](shading-model.md) in the Universal Render Pipeline (URP). -For examples of how to use the Lit Shader, see the [Shaders samples in URP Package Samples](package-sample-urp-package-samples.md#shaders). +For examples of how to use the Lit Shader, refer to [Shaders samples in URP Package Samples](package-sample-urp-package-samples.md#shaders). ## Using the Lit Shader in the Editor @@ -29,7 +29,7 @@ The __Surface Options__ control how URP renders the Material on a screen. | Property | Description | | ------------------- | ------------------------------------------------------------ | -| __Workflow Mode__ | Use this drop-down menu to choose a workflow that fits your Textures, either [__Metallic__](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterMetallic.html) and [__Specular__](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterSpecular.html).
When you have made your choice, the main Texture options in the rest of the Inspector now follow your chosen workflow. For information on metallic or specular workflows, see [this Manual page for the Standard built-in Shader in Unity](https://docs.unity3d.com/Manual/StandardShaderMetallicVsSpecular.html). | +| __Workflow Mode__ | Use this drop-down menu to choose a workflow that fits your Textures, either [__Metallic__](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterMetallic.html) and [__Specular__](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterSpecular.html).
When you have made your choice, the main Texture options in the rest of the Inspector now follow your chosen workflow. For information on metallic or specular workflows, refer to [this Manual page for the Standard built-in Shader in Unity](https://docs.unity3d.com/Manual/StandardShaderMetallicVsSpecular.html). | | __Surface Type__ | Use this drop-down to apply an __Opaque__ or __Transparent__ surface type to the Material. This determines which render pass URP renders the material in. __Opaque__ surface types are always fully visible, regardless of what’s behind them. URP renders opaque Materials first. __Transparent__ surface types are affected by their background, and they can vary according to which type of transparent surface type you choose. URP renders transparent Materials in a separate pass after opaque objects. If you select __Transparent__, the __Blending Mode__ drop-down appears. | | __Blending Mode__ | Use this drop-down to determine how URP calculates the color of each pixel of the transparent Material by blending the Material with the background pixels.
__Alpha__ uses the Material’s alpha value to change how transparent an object is. 0 is fully transparent. 1 appears fully opaque, but the Material is still rendered during the Transparent render pass. This is useful for visuals that you want to be fully visible but to also fade over time, like clouds.
__Premultiply__ applies a similar effect to the Material as __Alpha__, but preserves reflections and highlights, even when your surface is transparent. This means that only the reflected light is visible. For example, imagine transparent glass.
__Additive__ adds an extra layer to the Material, on top of another surface. This is good for holograms.
__Multiply__ multiplies the color of the Material with the color behind the surface. This creates a darker effect, like when you look through colored glass. | | __Render Face__ | Use this drop-down to determine which sides of your geometry to render.
__Front Face__ renders the front face of your geometry and [culls](https://docs.unity3d.com/Manual/SL-CullAndDepth.html) the back face. This is the default setting.
__Back Face__ renders the front face of your geometry and culls the front face.
__Both__ makes URP render both faces of the geometry. This is good for small, flat objects, like leaves, where you might want both sides visible. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/package-sample-urp-package-samples.md b/Packages/com.unity.render-pipelines.universal/Documentation~/package-sample-urp-package-samples.md index 859f99d7004..aeb0f372279 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/package-sample-urp-package-samples.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/package-sample-urp-package-samples.md @@ -1,6 +1,6 @@ # URP Package Samples -URP Package Samples is a [package sample](package-samples.md) for the Universal Render Pipeline (URP). It contains example shaders, C# scripts, and other assets you can build upon, use to learn how to use a feature, or use directly in your application. For information on how to import URP Package Samples into your project, see [Importing package samples](package-samples.md#importing-package-samples). +URP Package Samples is a [package sample](package-samples.md) for the Universal Render Pipeline (URP). It contains example shaders, C# scripts, and other assets you can build upon, use to learn how to use a feature, or use directly in your application. For information on how to import URP Package Samples into your project, refer to [Importing package samples](package-samples.md#importing-package-samples). Each example uses its own [URP Asset](universalrp-asset.md) so, if you want to build an example scene, [add the example's URP Asset to your Graphics settings](InstallURPIntoAProject.md#set-urp-active). If you don't do this, Unity might strip shaders or render passes that the example uses. @@ -43,8 +43,8 @@ The `URP Package Samples/RendererFeatures` folder contains examples for [Rendere | **Example** | **Description** | | --------------------- | ------------------------------------------------------------ | -| **Ambient occlusion** | The example in `RendererFeatures/AmbientOcclusion` uses a Renderer Feature to add [screen space ambient occlusion (SSAO)](post-processing-ssao.md) to URP. See the `SSAO_Renderer` asset for an example of how to set up this effect. | -| **Glitch effect** | The example in `RendererFeatures/GlitchEffect` uses the [Render Objects](renderer-features/renderer-feature-render-objects.md) Render Feature and the [Scene Color](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest/index.html?subfolder=/manual/Scene-Color-Node.html) Shader Graph node to draw some GameObjects with a glitchy effect. See the `Glitch_Renderer` asset for an example of how to set up this effect. | +| **Ambient occlusion** | The example in `RendererFeatures/AmbientOcclusion` uses a Renderer Feature to add [screen space ambient occlusion (SSAO)](post-processing-ssao.md) to URP. Refer to the `SSAO_Renderer` asset for an example of how to set up this effect. | +| **Glitch effect** | The example in `RendererFeatures/GlitchEffect` uses the [Render Objects](renderer-features/renderer-feature-render-objects.md) Render Feature and the [Scene Color](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest/index.html?subfolder=/manual/Scene-Color-Node.html) Shader Graph node to draw some GameObjects with a glitchy effect. Refer to the `Glitch_Renderer` asset for an example of how to set up this effect. | | **Keep frame** | The example in `RendererFeatures/KeepFrame` uses a custom Renderer Feature to preserve frame color between frames. The example uses this to create a swirl effect from a simple particle system.
**Note**: The effect is only visible in Play Mode. | | **Occlusion effect** | The example in `RendererFeatures/OcclusionEffect` uses the Render Objects Renderer Feature to draw occluded geometry. The example achieves this effect without any code and sets everything up in the `OcclusionEffect_Renderer` asset. | | **Trail effect** | The example in `RendererFeatures/TrailEffect` uses the Renderer Feature from the **Keep frame** example on an additional camera to create a trail map. To do this, the additional camera draws depth to a RenderTexture. The `Sand_Graph` shader samples the map and displaces vertices on the ground. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/package-samples.md b/Packages/com.unity.render-pipelines.universal/Documentation~/package-samples.md index 16941233546..c5c1e479671 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/package-samples.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/package-samples.md @@ -27,4 +27,4 @@ To open a package sample: The package samples that URP provides are: -* URP Package Samples: A collection of example shaders, C# scripts, and other assets you can build upon or use in your application. For more information, see [URP Package Samples](package-sample-urp-package-samples.md). +* URP Package Samples: A collection of example shaders, C# scripts, and other assets you can build upon or use in your application. For more information, refer to [URP Package Samples](package-sample-urp-package-samples.md). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-chromatic-aberration.md b/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-chromatic-aberration.md index a9e0cd68161..c35e0a24a3a 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-chromatic-aberration.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-chromatic-aberration.md @@ -1,6 +1,6 @@ # Chromatic Aberration -Chromatic Aberration creates fringes of color along boundaries that separate dark and light parts of the image. It mimics the color distortion that a real-world camera produces when its lens fails to join all colors to the same point. See Wikipedia: Chromation aberration. +Chromatic Aberration creates fringes of color along boundaries that separate dark and light parts of the image. It mimics the color distortion that a real-world camera produces when its lens fails to join all colors to the same point. For more information, refer to [Wikipedia: Chromation aberration](https://en.wikipedia.org/wiki/Chromatic_aberration). ## Using Chromatic Aberration diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-depth-of-field.md b/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-depth-of-field.md index acfc4cf6a18..c8b32e55c76 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-depth-of-field.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-depth-of-field.md @@ -1,6 +1,6 @@ # Depth Of Field -The Depth Of Field component applies a depth of field effect, which simulates the focus properties of a camera lens. In real life, a camera can only focus sharply on an object at a specific distance. Objects nearer or farther from the camera are out of focus. The blurring gives a visual cue about an object’s distance, and introduces “bokeh”, which refers to visual artifacts that appear around bright areas of the image as they fall out of focus. To read more about bokeh, see the [Wikipedia article on Bokeh](https://en.wikipedia.org/wiki/Bokeh). +The Depth Of Field component applies a depth of field effect, which simulates the focus properties of a camera lens. In real life, a camera can only focus sharply on an object at a specific distance. Objects nearer or farther from the camera are out of focus. The blurring gives a visual cue about an object’s distance, and introduces “bokeh”, which refers to visual artifacts that appear around bright areas of the image as they fall out of focus. To read more about bokeh, refer to [Wikipedia article on Bokeh](https://en.wikipedia.org/wiki/Bokeh). The Universal Render Pipeline (URP) has two depth of field modes: @@ -35,7 +35,7 @@ The Universal Render Pipeline (URP) has two depth of field modes: ![](Images/Inspectors/BokehDepthOfField.png) -The **Bokeh** Depth of Field mode closely imitates the effect of a real-life camera. For this reason, the settings are based on real-life camera settings, and offer a number of properties to adjust the diaphragm blades on the Camera. For an introduction to diaphragm blades and how they affect the visual quality of your Camera output, see Improve Photography’s guide [Aperture Blades: How many is best?](https://improvephotography.com/29529/aperture-blades-many-best/). +The **Bokeh** Depth of Field mode closely imitates the effect of a real-life camera. For this reason, the settings are based on real-life camera settings, and offer a number of properties to adjust the diaphragm blades on the Camera. For an introduction to diaphragm blades and how they affect the visual quality of your Camera output, refer to Improve Photography’s guide [Aperture Blades: How many is best?](https://improvephotography.com/29529/aperture-blades-many-best/). | **Property** | **Description** | | ------------------- | ------------------------------------------------------------ | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-ssao.md b/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-ssao.md index 6a6acb973ec..05f6545c0bb 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-ssao.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-ssao.md @@ -55,7 +55,7 @@ Available options: When switching between the options **Depth Normals** and **Depth**, there might be a variation in performance, which depends on the target platform and the application. In a wide range of applications the difference in performance is small. In most cases, **Depth Normals** produces better visual look. -For more information on the Source property, see the section [Implementation details](#implementation-details). +For more information on the Source property, refer to [Implementation details](#implementation-details). ### Normal Quality @@ -85,7 +85,7 @@ In some scenarios, the **Depth** option produces results comparable with the **D ![Source: Depth Normals.](Images/post-proc/ssao/ssao-depth-normals.png)
_Source: Depth Normals._ -For more information, see the section [Implementation details](#implementation-details). +For more information, refer to [Implementation details](#implementation-details). ### Intensity diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-tonemapping.md b/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-tonemapping.md index 22f4ec940a0..58be32de9a1 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-tonemapping.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/post-processing-tonemapping.md @@ -1,6 +1,6 @@ # Tonemapping -Tonemapping is the process of remapping the HDR values of an image to a new range of values. Its most common purpose is to make an image with a low dynamic range appear to have a higher range. See Wikipedia: Tone mapping. +Tonemapping is the process of remapping the HDR values of an image to a new range of values. Its most common purpose is to make an image with a low dynamic range appear to have a higher range. For more information, refer to [Wikipedia: Tone mapping](https://en.wikipedia.org/wiki/Tone_mapping). ## Using Tonemapping diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/quality/quality-settings-through-code.md b/Packages/com.unity.render-pipelines.universal/Documentation~/quality/quality-settings-through-code.md index e528a23a41a..76e35816e5c 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/quality/quality-settings-through-code.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/quality/quality-settings-through-code.md @@ -131,7 +131,7 @@ You can create more complex systems and sequences of checks to determine which q You can change some properties of the URP Asset at runtime with C# scripts. This can help fine tune performance on devices with hardware that doesn't perfectly match any of the quality levels in your project. -> **Note**: To change a property of the URP Asset with a C# script, the property must have a `set` method. For more information on these properties see [Accessible Properties](#accessible-properties). +> **Note**: To change a property of the URP Asset with a C# script, the property must have a `set` method. For more information on these properties refer to [Accessible Properties](#accessible-properties). The following example uses the QualityControls script and QualityController object from the [Change Quality Level through code](#change-quality-level-through-code) section, and extends the functionality to locate the active URP Asset and change some of its properties to fit the performance level of the hardware. @@ -338,4 +338,4 @@ The following properties of the URP Asset have a `set` method: - useAdaptivePerformance - useSRPBatcher -For more information on these properties, see [Universal Render Pipeline Asset API](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.1/api/UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset.html#properties). +For more information on these properties, refer to [Universal Render Pipeline Asset API](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@12.1/api/UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset.html#properties). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-feature-decal.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-feature-decal.md index bb941a0f324..46ab90f35f8 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-feature-decal.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-feature-decal.md @@ -4,7 +4,7 @@ With the Decal Renderer Feature, Unity can project specific Materials (decals) o ![Decal Projector in a sample Scene](Images/decal/decal-projector-scene-view.png)
*Decal Projector in a sample Scene.* -For examples of how to use Decals, see the [Decals samples in URP Package Samples](package-sample-urp-package-samples.md#decals). +For examples of how to use Decals, refer to [Decals samples in URP Package Samples](package-sample-urp-package-samples.md#decals). ## How to use the feature @@ -22,7 +22,7 @@ The following illustration shows a Decal Projector in the Scene. ![Decal Projector in the Scene.](Images/decal/decal-projector-selected-with-inspector.png) -For more information, see also [Decal Projector component](#decal-projector-component). +For more information, refer to [Decal Projector component](#decal-projector-component). An alternative way to add decals to a Scene: @@ -100,7 +100,7 @@ If you enable **Light Layers**, URP creates a DepthNormal prepass. This makes de The Decal Projector component lets Unity project decals onto other objects in the Scene. A Decal Projector component must use a Material with the [Decal Shader Graph](decal-shader.md) assigned (`Shader Graphs/Decal`). -For more information on how to use the Decal Projector, see section [How to use the feature](#how-to-use-the-feature). +For more information on how to use the Decal Projector, refer to [How to use the feature](#how-to-use-the-feature). The Decal Projector component contains the Scene view editing tools and the Decal Projector properties. @@ -139,7 +139,7 @@ This section describes the Decal Projector component properties. | __Height__ | The height of the projector bounding box. The projector scales the decal to match this value along the local Y axis. | | __Projection Depth__ | The depth of the projector bounding box. The projector projects decals along the local Z axis. | | __Pivot__ | The offset position of the center of the projector bounding box relative to the origin of the root GameObject. | -| __Material__ | The Material to project. The Material must use a Shader Graph that has the Decal Material type. For more information, see the page [Decal Shader Graph](decal-shader.md). | +| __Material__ | The Material to project. The Material must use a Shader Graph that has the Decal Material type. For more information, refer to the page [Decal Shader Graph](decal-shader.md). | | __Tiling__ | The tiling values for the decal Material along its UV axes. | | __Offset__ | The offset values for the decal Material along its UV axes. | | __Opacity__ | This property lets you specify the opacity value. A value of 0 makes the decal fully transparent, a value of 1 makes the decal as opaque as defined by the __Material__. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/how-to-fullscreen-blit-in-xr-spi.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/how-to-fullscreen-blit-in-xr-spi.md index 0569e373fb8..d198911a4f6 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/how-to-fullscreen-blit-in-xr-spi.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/how-to-fullscreen-blit-in-xr-spi.md @@ -201,7 +201,7 @@ Follow these steps to create a [custom Renderer Feature](https://docs.unity3d.co ![Add Renderer Feature](../Images/how-to/blit-xr/add-renderer-feature.png) - For information on how to add a Renderer Feature, see the page [How to add a Renderer Feature to a Renderer](../urp-renderer-feature-how-to-add.md). + For information on how to add a Renderer Feature, refer to the page [How to add a Renderer Feature to a Renderer](../urp-renderer-feature-how-to-add.md). For this example, set the Intensity property to 1.5. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/renderer-feature-render-objects.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/renderer-feature-render-objects.md index 55a6e9c556d..740171cbf3e 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/renderer-feature-render-objects.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/renderer-feature-render-objects.md @@ -4,7 +4,7 @@ URP draws objects in the **DrawOpaqueObjects** and **DrawTransparentObjects** pa ## How to use the Render Objects Renderer Feature -See: [How to use the Render Objects Renderer Feature](how-to-custom-effect-render-objects.md). +For more information, refer to: [How to use the Render Objects Renderer Feature](how-to-custom-effect-render-objects.md). ## Properties @@ -23,5 +23,5 @@ The Render Objects Renderer Feature contains the following properties. | Material | (Override Mode is set to Material) When rendering an object, Unity replaces the Material assigned to it with this Material. This will override all material properties with this material | | Shader | (Override Mode is set to Shader) When rendering an object, Unity replaces the material assigned to it with this shader. This maintains all material properties and allows the override shader to access these properties. This is currently not SRPBatcher compatible and less performant. | Depth | Selecting this option lets you specify how this Renderer Feature affects or uses the Depth buffer. This option contains the following items:
Write Depth: this option defines whether the Renderer Feature updates the Depth buffer when rendering objects.
Depth Test: the condition which determines when this Renderer Feature renders pixels of a given object. | -| Stencil | With this check box selected, the Renderer processes the Stencil buffer values.
For more information on how Unity works with the Stencil buffer, see [ShaderLab: Stencil](https://docs.unity3d.com/Manual/SL-Stencil.html). | +| Stencil | With this check box selected, the Renderer processes the Stencil buffer values.
For more information on how Unity works with the Stencil buffer, refer to [ShaderLab: Stencil](https://docs.unity3d.com/Manual/SL-Stencil.html). | | Camera | Selecting this option lets you override the following Camera properties:
Field of View: when rendering objects, the Renderer Feature uses this Field of View instead of the value specified on the Camera.
Position Offset: when rendering objects, the Renderer Feature moves them by this offset.
Restore: with this option selected, the Renderer Feature restores the original Camera matrices after executing the render passes in this Renderer Feature. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md index 6adb4aeb6d4..ecccb76e058 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md @@ -24,7 +24,7 @@ You can use the following methods within a Scriptable Renderer Pass to handle it | **Method** | **Description** | | ---------- | --------------- | -| `Execute` | Use this method to implement the rendering logic for the Scriptable Renderer Feature.

**Note**: You do not need to call `ScriptableRenderContext.submit`, URP handles this and calls it at specific points in the pipeline. | +| `Execute` | Use this method to implement the rendering logic for the Scriptable Renderer Feature.

**Note**: You must not call `ScriptableRenderContext.Submit` on a command buffer provided by URP. The render pipeline handles this at specific points in the pipeline. | | `OnCameraCleanup` | Use this method to clean up any resources that were allocated during the render pass. | | `OnCameraSetup` | Use this method to configure render targets and their clear state. You can also use it to create temporary render target textures.

**Note**: When this method is empty, the render pass will render to the active camera render target. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/rendering-in-universalrp.md b/Packages/com.unity.render-pipelines.universal/Documentation~/rendering-in-universalrp.md index 6451c65b398..9a755381249 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/rendering-in-universalrp.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/rendering-in-universalrp.md @@ -21,7 +21,7 @@ The URP renderer executes a Camera loop for each Camera, which performs the foll 2. Builds data for the renderer 3. Executes a renderer that outputs an image to the framebuffer. -For more information about each step, see [Camera loop](#camera-loop). +For more information about each step, refer to [Camera loop](#camera-loop). In the [RenderPipelineManager](https://docs.unity3d.com/ScriptReference/Rendering.RenderPipelineManager.html) class, URP provides events that you can use to execute code before and after rendering a frame, and before and after rendering each Camera loop. The events are: diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/rendering-to-a-render-texture.md b/Packages/com.unity.render-pipelines.universal/Documentation~/rendering-to-a-render-texture.md index 66c8b5316c6..8eb8b0be1a3 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/rendering-to-a-render-texture.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/rendering-to-a-render-texture.md @@ -2,7 +2,7 @@ In the Universal Render Pipeline (URP), a Camera can render to the screen or to a [Render Texture](https://docs.unity3d.com/Manual/class-RenderTexture.html). Rendering to a screen is the default and is the most common use case, but rendering to a Render Texture allows you to create effects such as CCTV camera monitors. -If you have a Camera that is rendering to a Render Texture, you must have a second Camera that then renders that Render Texture to the screen. In URP, all Cameras that render to Render Textures perform their render loops before all Cameras that render to the screen. This ensures that the Render Textures are ready to render to the screen. For more information on Camera rendering order in URP, see [Rendering order and overdraw](cameras-advanced.md). +If you have a Camera that is rendering to a Render Texture, you must have a second Camera that then renders that Render Texture to the screen. In URP, all Cameras that render to Render Textures perform their render loops before all Cameras that render to the screen. This ensures that the Render Textures are ready to render to the screen. For more information on Camera rendering order in URP, refer to [Rendering order and overdraw](cameras-advanced.md). ## Render to a Render Texture that renders to the screen diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/rendering/deferred-rendering-path.md b/Packages/com.unity.render-pipelines.universal/Documentation~/rendering/deferred-rendering-path.md index dd7c6da8222..5125849be79 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/rendering/deferred-rendering-path.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/rendering/deferred-rendering-path.md @@ -2,7 +2,7 @@ URP Universal Renderer supports two Rendering Paths: Forward and Deferred. -For information on differences between the rendering paths, see section [Rendering Path comparison](../urp-universal-renderer.md#rendering-path-comparison). +For information on differences between the rendering paths, refer to [Rendering Path comparison](../urp-universal-renderer.md#rendering-path-comparison). This section describes the Deferred Rendering Path. @@ -36,7 +36,7 @@ The **Accurate G-buffer normals** property lets you configure how Unity encodes * **Accurate G-buffer normals** on: Unity uses the octahedron encoding to store values of normal vectors in the RGB channel of a normal texture. With this encoding, values of normal vectors are more accurate, but the encoding and decoding operations put extra load on the GPU. -For more information about this setting, see the section [Encoding of normals in G-buffer](#accurate-g-buffer-normals). +For more information about this setting, refer to [Encoding of normals in G-buffer](#accurate-g-buffer-normals). ## Unity Player system requirements @@ -78,7 +78,7 @@ This field is a bit field that contains Material flags: Bits 4-7 are reserved for future use. -For more technical details, see the file `/ShaderLibrary/UnityGBuffer.hlsl`. +For more technical details, refer to the file `/ShaderLibrary/UnityGBuffer.hlsl`. **Specular** @@ -96,7 +96,7 @@ This field contains the baked occlusion value from the baked lighting. For real- **Normal** -This field contains the world space normals encoded in 24 bits. For information on the encoding of normals, see section [Encoding of normals in G-buffer](#accurate-g-buffer-normals). +This field contains the world space normals encoded in 24 bits. For information on the encoding of normals, refer to [Encoding of normals in G-buffer](#accurate-g-buffer-normals). **Smoothness** @@ -126,7 +126,7 @@ The Subtractive and the Shadow mask modes are optimized for the Forward Renderin **Rendering Layer Mask** -Unity adds this render target to the G-buffer layout when the Light Layers feature is enabled (URP Asset, **Advanced** > **Light Layers**). The Light Layers feature might have a significant impact on the GPU performance. For more information, see section [Light Layers](#light-layers). +Unity adds this render target to the G-buffer layout when the Light Layers feature is enabled (URP Asset, **Advanced** > **Light Layers**). The Light Layers feature might have a significant impact on the GPU performance. For more information, refer to [Light Layers](#light-layers). **Depth as Color** @@ -140,7 +140,7 @@ The format of the Depth as Color render target is `GraphicsFormat.R32_SFloat`. **DepthStencil** -Unity reserves the four highest bits of this render target to mark the Material type. See also [URP Pass tags: UniversalMaterialType](../urp-shaders/urp-shaderlab-pass-tags.md#universalmaterialtype). +Unity reserves the four highest bits of this render target to mark the Material type. For more information, refer to [URP Pass tags: UniversalMaterialType](../urp-shaders/urp-shaderlab-pass-tags.md#universalmaterialtype). For this render target, Unity selects either the `D32F_S8` format, or the `D24S8` format depending on the platform. @@ -315,9 +315,9 @@ Examples of such shaders: * **Baked Lit** and **Unlit**: these shaders do not calculate real-time lighting, that's why Unity renders them into the Emissive/GI/Lighting buffer directly during the Forward-only pass. This is faster than evaluating the shaders in the Deferred rendering (stencil) pass. -* **Custom shaders**: Unity renders the shaders that do not declare the Pass tags required by the Deferred Rendering Path as Forward-only. The required Pass tags are: `LightMode`, and `UniversalMaterialType`. For more information, see [URP Pass tags](../urp-shaders/urp-shaderlab-pass-tags.md). +* **Custom shaders**: Unity renders the shaders that do not declare the Pass tags required by the Deferred Rendering Path as Forward-only. The required Pass tags are: `LightMode`, and `UniversalMaterialType`. For more information, refer to [URP Pass tags](../urp-shaders/urp-shaderlab-pass-tags.md). -Unity renders Materials with such shaders in the Forward Rendering Path. For the SSAO Renderer Feature to be able to calculate ambient occlusion for the Materials using the **Complex Lit** shader, Unity must render such Materials in the depth and normal prepass first. This is because Unity does not render those Materials in the G-buffer pass (GBufferPass). For more information, see [URP Pass tags](../urp-shaders/urp-shaderlab-pass-tags.md). +Unity renders Materials with such shaders in the Forward Rendering Path. For the SSAO Renderer Feature to be able to calculate ambient occlusion for the Materials using the **Complex Lit** shader, Unity must render such Materials in the depth and normal prepass first. This is because Unity does not render those Materials in the G-buffer pass (GBufferPass). For more information, refer to [URP Pass tags](../urp-shaders/urp-shaderlab-pass-tags.md). #### General implementation notes @@ -379,7 +379,7 @@ To indicate that Unity must render a certain Material in the Forward-only Pass i To specify the shader lighting model (Lit, SimpleLit), use the `UniversalMaterialType` tag. -For more information, see the section [URP Pass tags: LightMode](../urp-shaders/urp-shaderlab-pass-tags.md#lightmode). +For more information, refer to [URP Pass tags: LightMode](../urp-shaders/urp-shaderlab-pass-tags.md#lightmode). ## Limitations and performance @@ -427,4 +427,4 @@ The Light Layers feature requires an extra G-buffer render target to store the r In the Forward Rendering Path, the [Layers](https://docs.unity3d.com/Manual/Layers.html) feature lets you tell Unity to render specific meshes with a specific set of Lights. The [Layers](https://docs.unity3d.com/Manual/Layers.html) feature uses the culling mask system. -The Deferred Rendering Path cannot use the layer system with light culling masks, because the shading is deferred to a later stage in the rendering loop (see the **Deferred rendering (stencil)** step in the [Deferred Rendering Path render Passes](#render-passes) table.) +The Deferred Rendering Path cannot use the layer system with light culling masks, because the shading is deferred to a later stage in the rendering loop (refer to the **Deferred rendering (stencil)** step in the [Deferred Rendering Path render Passes](#render-passes) table.) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/requirements.md b/Packages/com.unity.render-pipelines.universal/Documentation~/requirements.md index ea633aac970..af93600f668 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/requirements.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/requirements.md @@ -27,8 +27,8 @@ You can install a different version of a graphics package from disk using the Pa ## Render pipeline compatibility -Projects made using URP are not compatible with the High Definition Render Pipeline (HDRP) or the Built-in Render Pipeline. Before you start development, you must decide which render pipeline to use in your Project. For information on choosing a render pipeline, see the [Render Pipelines](https://docs.unity3d.com/2019.3/Documentation/Manual/render-pipelines.html) section of the Unity Manual. +Projects made using URP are not compatible with the High Definition Render Pipeline (HDRP) or the Built-in Render Pipeline. Before you start development, you must decide which render pipeline to use in your Project. For information on choosing a render pipeline, refer to [Render Pipelines](https://docs.unity3d.com/2019.3/Documentation/Manual/render-pipelines.html) section of the Unity Manual. ## Unity Player system requirements -This package does not add any extra platform-specific requirements. General system requirements for the Unity Player apply. For more information on Unity system requirements, see [System requirements for Unity](https://docs.unity3d.com/Manual/system-requirements.html). +This package does not add any extra platform-specific requirements. General system requirements for the Unity Player apply. For more information on Unity system requirements, refer to [System requirements for Unity](https://docs.unity3d.com/Manual/system-requirements.html). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/scene-templates.md b/Packages/com.unity.render-pipelines.universal/Documentation~/scene-templates.md index bba1ff87a1b..a9a89faf693 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/scene-templates.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/scene-templates.md @@ -1,6 +1,6 @@ # Universal Render Pipeline Scene Templates -You can use [Scene Templates](https://docs.unity3d.com/Manual/scene-templates.html) to quickly create scenes that include pre-configured URP-specific settings and post-processing effects. For information on how to create a new scene from a Scene Template, see [Creating a new scene from the New Scene dialog](https://docs.unity3d.com/Manual/scenes-working-with.html#creating-a-new-scene-from-the-new-scene-dialog). +You can use [Scene Templates](https://docs.unity3d.com/Manual/scene-templates.html) to quickly create scenes that include pre-configured URP-specific settings and post-processing effects. For information on how to create a new scene from a Scene Template, refer to [Creating a new scene from the New Scene dialog](https://docs.unity3d.com/Manual/scenes-working-with.html#creating-a-new-scene-from-the-new-scene-dialog). ![](Images/scene-templates.png) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/shader-complex-lit.md b/Packages/com.unity.render-pipelines.universal/Documentation~/shader-complex-lit.md index 7a5c835daf2..8f9c255af17 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/shader-complex-lit.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/shader-complex-lit.md @@ -31,7 +31,7 @@ The __Surface Options__ control how URP renders the Material on a screen. | Property | Description | | ------------------- | ------------------------------------------------------------ | -| __Workflow Mode__ | Use this drop-down menu to choose a workflow that fits your Textures, either [__Metallic__](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterMetallic.html) and [__Specular__](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterSpecular.html).
When you have made your choice, the main Texture options in the rest of the Inspector now follow your chosen workflow. For information on metallic or specular workflows, see [this Manual page for the Standard built-in Shader in Unity](https://docs.unity3d.com/Manual/StandardShaderMetallicVsSpecular.html). | +| __Workflow Mode__ | Use this drop-down menu to choose a workflow that fits your Textures, either [__Metallic__](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterMetallic.html) and [__Specular__](https://docs.unity3d.com/Manual/StandardShaderMaterialParameterSpecular.html).
When you have made your choice, the main Texture options in the rest of the Inspector now follow your chosen workflow. For information on metallic or specular workflows, refer to [this Manual page for the Standard built-in Shader in Unity](https://docs.unity3d.com/Manual/StandardShaderMetallicVsSpecular.html). | | __Surface Type__ | Use this drop-down to apply an __Opaque__ or __Transparent__ surface type to the Material. This determines which render pass URP renders the material in. __Opaque__ surface types are always fully visible, regardless of what’s behind them. URP renders opaque Materials first. __Transparent__ surface types are affected by their background, and they can vary according to which type of transparent surface type you choose. URP renders transparent Materials in a separate pass after opaque objects. If you select __Transparent__, the __Blending Mode__ drop-down appears. | | __Blending Mode__ | Use this drop-down to determine how URP calculates the color of each pixel of the transparent Material by blending the Material with the background pixels.
__Alpha__ uses the Material’s alpha value to change how transparent an object is. 0 is fully transparent. 1 appears fully opaque, but the Material is still rendered during the Transparent render pass. This is useful for visuals that you want to be fully visible but to also fade over time, like clouds.
__Premultiply__ applies a similar effect to the Material as __Alpha__, but preserves reflections and highlights, even when your surface is transparent. This means that only the reflected light is visible. For example, imagine transparent glass.
__Additive__ adds an extra layer to the Material, on top of another surface. This is good for holograms.
__Multiply__ multiplies the color of the Material with the color behind the surface. This creates a darker effect, like when you look through colored glass. | | __Render Face__ | Use this drop-down to determine which sides of your geometry to render.
__Front Face__ renders the front face of your geometry and [culls](https://docs.unity3d.com/Manual/SL-CullAndDepth.html) the back face. This is the default setting.
__Back Face__ renders the front face of your geometry and culls the front face.
__Both__ makes URP render both faces of the geometry. This is good for small, flat objects, like leaves, where you might want both sides visible. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/shader-stripping.md b/Packages/com.unity.render-pipelines.universal/Documentation~/shader-stripping.md index 1287dbc781b..03aad94886e 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/shader-stripping.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/shader-stripping.md @@ -6,12 +6,12 @@ If you disable features in the [URP Asset](universalrp-asset.md), URP automatica For example, if your project doesn't use shadows for directional lights, by default Unity still includes variants that support directional light shadows in your build. If you disable **Cast Shadows** in the URP Asset, URP strips these variants. -If you want to examine the code that strips shaders in URP, see the `Editor/ShaderPreprocessor.cs` file. The file uses the [IPreprocessShaders](https://docs.unity3d.com/ScriptReference/Build.IPreprocessShaders.html) API. +If you want to examine the code that strips shaders in URP, refer to the `Editor/ShaderPreprocessor.cs` file. The file uses the [IPreprocessShaders](https://docs.unity3d.com/ScriptReference/Build.IPreprocessShaders.html) API. -For more information on stripping shader variants, see the following pages: +For more information on stripping shader variants, refer to the following pages: - [Check how many shader variants you have](https://docs.unity3d.com/Manual/shader-how-many-variants.html). -- See the [standard guidance about shader stripping](https://docs.unity3d.com/Manual/shader-variant-stripping.html), which applies to all render pipelines. +- [Standard guidance about shader stripping](https://docs.unity3d.com/Manual/shader-variant-stripping.html), which applies to all render pipelines. ## Strip feature shader variants diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/shaders-in-universalrp.md b/Packages/com.unity.render-pipelines.universal/Documentation~/shaders-in-universalrp.md index 82e235956b0..1b0592f3302 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/shaders-in-universalrp.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/shaders-in-universalrp.md @@ -23,7 +23,7 @@ Lit and custom Lit shaders written for the Built-in Render Pipeline are not comp Unlit shaders written for the Built-in Render Pipeline are compatible with URP. -For information on converting shaders written for the Built-in Render Pipeline to URP shaders, see the page [Converting your shaders](upgrading-your-shaders.md). +For information on converting shaders written for the Built-in Render Pipeline to URP shaders, refer to the page [Converting your shaders](upgrading-your-shaders.md). ## Choosing a shader @@ -47,4 +47,4 @@ To ensure that a Shader is SRP Batcher compatible: * Declare all Material properties in a single CBUFFER called `UnityPerMaterial`. * Declare all built-in engine properties, such as `unity_ObjectToWorld` or `unity_WorldTransformParams`, in a single CBUFFER called `UnityPerDraw`. -For more information on the SRP Batcher, see the page [Scriptable Render Pipeline (SRP) Batcher](https://docs.unity3d.com/Manual/SRPBatcher.html). +For more information on the SRP Batcher, refer to the page [Scriptable Render Pipeline (SRP) Batcher](https://docs.unity3d.com/Manual/SRPBatcher.html). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/shading-model.md b/Packages/com.unity.render-pipelines.universal/Documentation~/shading-model.md index eb59a633a8a..50637ddbb4d 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/shading-model.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/shading-model.md @@ -29,7 +29,7 @@ The following URP Shaders use Physically Based Shading: **Note:** This shading model is not suitable for low-end mobile hardware. If you’re targeting this hardware, use Shaders with a [Simple Shading](#simple-shading) model. -To read more about Physically Based Rendering, see [this walkthrough by Joe Wilson on Marmoset](https://marmoset.co/posts/physically-based-rendering-and-you-can-too/). +To read more about Physically Based Rendering, refer to [this walkthrough by Joe Wilson on Marmoset](https://marmoset.co/posts/physically-based-rendering-and-you-can-too/). ## Simple shading This shading model is suitable for stylized visuals or for games that run on less powerful platforms. With this shading model, Materials are not truly photorealistic. The Shaders do not conserve energy. This shading model is based on the [Blinn-Phong](https://en.wikipedia.org/wiki/Blinn%E2%80%93Phong_shading_model) model. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/shared/lens-flare/lens-flare-asset.md b/Packages/com.unity.render-pipelines.universal/Documentation~/shared/lens-flare/lens-flare-asset.md index b156847f801..4fa6763e198 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/shared/lens-flare/lens-flare-asset.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/shared/lens-flare/lens-flare-asset.md @@ -2,7 +2,7 @@ Unity’s [Scriptable Render Pipeline (SRP)](https://docs.unity3d.com/Manual/ScriptableRenderPipeline.html) includes the **Lens Flare Data** asset. You can use this asset to control the appearance of [Lens Flares](lens-flare-component.md) in your scene. This is the SRP equivalent of the Built-in Render Pipeline's [Flare](https://docs.unity3d.com/Manual/class-Flare.html) asset, which is incompatible with SRPs. -For examples of how to use Lens Flares, see the [Lens Flare samples in URP Package Samples](../../package-sample-urp-package-samples.md#lens-flares). +For examples of how to use Lens Flares, refer to [Lens Flare samples in URP Package Samples](../../package-sample-urp-package-samples.md#lens-flares). To create a Lens Flare Data asset, select **Assets > Create > Lens Flare (SRP)**. To use this asset, assign it to the **Lens Flare Data** property of a [Lens Flare (SRP) component](lens-flare-component.md). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/shared/lens-flare/lens-flare-component.md b/Packages/com.unity.render-pipelines.universal/Documentation~/shared/lens-flare/lens-flare-component.md index 4cd6ee9bdce..bff1cade86d 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/shared/lens-flare/lens-flare-component.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/shared/lens-flare/lens-flare-component.md @@ -17,7 +17,7 @@ To create a lens flare in a scene: 3. Select **Rendering** > **Lens Flare (SRP)**. Currently, the lens flare doesn't render in the scene because the component doesn't reference a Lens Flare (SRP) Data asset in its **Lens Flare Data** property. 4. Create a new Lens Flare (SRP) Data asset (menu: **Assets** > **Create** > **Lens Flare (SRP)**). 5. In the Lens Flare (SRP) component Inspector, assign the new Lens Flare (SRP) Data asset to the **Lens Flare Data** property. -6. Select the Lens Flare (SRP) Data asset and, in the Inspector, add a new element to the **Elements** list. A default white lens flare now renders at the position of the Lens Flare (SRP) component. For information on how to customize how the lens flare looks, see [Lens Flare (SRP) Data](lens-flare-asset.md). +6. Select the Lens Flare (SRP) Data asset and, in the Inspector, add a new element to the **Elements** list. A default white lens flare now renders at the position of the Lens Flare (SRP) component. For information on how to customize how the lens flare looks, refer to [Lens Flare (SRP) Data](lens-flare-asset.md). ## Properties diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/universalrp-asset.md b/Packages/com.unity.render-pipelines.universal/Documentation~/universalrp-asset.md index dd4fd18556e..fac88561958 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/universalrp-asset.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/universalrp-asset.md @@ -4,23 +4,21 @@ To use the Universal Render Pipeline (URP), you have to [create a URP Asset and The URP Asset controls several graphical features and quality settings for the Universal Render Pipeline. It is a scriptable object that inherits from ‘RenderPipelineAsset’. When you assign the asset in the Graphics settings, Unity switches from the built-in render pipeline to the URP. You can then adjust the corresponding settings directly in the URP, instead of looking for them elsewhere. -You can have multiple URP assets and switch between them. For example, you can have one with Shadows on and one with Shadows off. If you switch between the assets to see the effects, you don’t have to manually toggle the corresponding settings for shadows every time. You cannot, however, switch between HDRP/SRP and URP assets, as the - render pipelines are incompatible. - +You can have multiple URP assets and switch between them. For example, you can have one with Shadows on and one with Shadows off. If you switch between the assets to see the effects, you don’t have to manually toggle the corresponding settings for shadows every time. You cannot, however, switch between HDRP/SRP and URP assets, as the render pipelines are incompatible. ## UI overview In the URP, you can configure settings for: -- [**Rendering**](#rendering) -- [**Quality**](#quality) -- [**Lighting**](#lighting) -- [**Shadows**](#shadows) -- [**Post-processing**](#post-processing) -- [**Adaptive Performance**](#adaptive-performance) - +* [**Rendering**](#rendering) +* [**Quality**](#quality) +* [**Lighting**](#lighting) +* [**Shadows**](#shadows) +* [**Post-processing**](#post-processing) +* [**Adaptive Performance**](#adaptive-performance) -**Note:** If you have the experimental 2D Renderer enabled (menu: **Graphics Settings** > add the 2D Renderer Asset under **Scriptable Render Pipeline Settings**), some of the options related to 3D rendering in the URP Asset don't have any impact on your final app or game. +> [!NOTE] +> If you have the experimental 2D Renderer enabled (menu: **Graphics Settings** > add the 2D Renderer Asset under **Scriptable Render Pipeline Settings**), some of the options related to 3D rendering in the URP Asset don't have any impact on your final app or game. ### How to show Additional Properties @@ -40,22 +38,21 @@ To show all additional properties in all sections: ![Additional Properties > Visibility > All Visible](Images/settings-general/show-all-additional-properties.png) - ### Rendering The **Rendering** settings control the core part of the pipeline rendered frame. -| **Property** | **Description** | -| ----------------------- | ------------------------------------------------------------ | -| **Depth Texture** | Enables URP to create a `_CameraDepthTexture`. URP then uses this [depth texture](https://docs.unity3d.com/Manual/SL-DepthTextures.html) by default for all Cameras in your scene. You can override this for individual cameras in the [Camera Inspector](camera-component-reference.md). | -| **Opaque Texture** | Enable this to create a `_CameraOpaqueTexture` as default for all cameras in your scene. This works like the [GrabPass](https://docs.unity3d.com/Manual/SL-GrabPass.html) in the built-in render pipeline. The **Opaque Texture** provides a snapshot of the scene right before URP renders any transparent meshes. You can use this in transparent Shaders to create effects like frosted glass, water refraction, or heat waves. You can override this for individual cameras in the [Camera Inspector](camera-component-reference.md). | -| **Opaque Downsampling** | Set the sampling mode on the opaque texture to one of the following:
**None**: Produces a copy of the opaque pass in the same resolution as the camera.
**2x Bilinear**: Produces a half-resolution image with bilinear filtering.
**4x Box**: Produces a quarter-resolution image with box filtering. This produces a softly blurred copy.
**4x Bilinear**: Produces a quarter-resolution image with bi-linear filtering. | -| **Terrain Holes** | If you disable this option, the URP removes all Terrain hole Shader variants when you build for the Unity Player, which decreases build time. | -| **SRP Batcher** | Check this box to enable the SRP Batcher. This is useful if you have many different Materials that use the same Shader. The SRP Batcher is an inner loop that speeds up CPU rendering without affecting GPU performance. When you use the SRP Batcher, it replaces the SRP rendering code inner loop. If both **SRP Batcher** and **Dynamic Batching** are enabled, SRP Batcher will take precedence over dynamic batching as long as the shader is SRP Batcher compatible.

**Note**: If assets or shaders in a project are not optimized for use with the SRP Batcher, low performance devices might be more performant when you disable the SRP Batcher. | -| **Dynamic Batching** | Enable [Dynamic Batching](https://docs.unity3d.com/Manual/DrawCallBatching.html), to make the render pipeline automatically batch small dynamic objects that share the same Material. This is useful for platforms and graphics APIs that do not support GPU instancing. If your targeted hardware does support GPU instancing, disable **Dynamic Batching**. You can change this at run time. | -| **Debug Level** | Set the level of debug information that the render pipeline generates. The values are:
**Disabled**: Debugging is disabled. This is the default.
**Profiling**: Makes the render pipeline provide detailed information tags, which you can find in the FrameDebugger. | -| **Shader Variant Log Level** | Set the level of information about Shader Stripping and Shader Variants you want to display when Unity finishes a build. Values are:
**Disabled**: Unity doesn’t log anything.
**Only Universal**: Unity logs information for all of the [URP Shaders](shaders-in-universalrp.md).
**All**: Unity logs information for all Shaders in your build.
You can check the information in Console panel when your build has finished. | -| **Store Actions** | Defines if Unity discards or stores the render targets of the DrawObjects Passes. Selecting the **Store** option significantly increases the memory bandwidth on mobile and tile-based GPUs.
**Auto**: Unity uses the **Discard** option by default, and falls back to the **Store** option if it detects any injected Passes.
**Discard**: Unity discards the render targets of render Passes that are not reused later (lower memory bandwidth).
**Store**: Unity stores all render targets of each Pass (higher memory bandwidth). | +| Property | Description | +| -------- | ----------- | +| **Depth Texture** | Enables URP to create a `_CameraDepthTexture`. URP then uses this [depth texture](https://docs.unity3d.com/Manual/SL-DepthTextures.html) by default for all Cameras in your scene. You can override this for individual cameras in the [Camera Inspector](camera-component-reference.md). | +| **Opaque Texture** | Enable this to create a `_CameraOpaqueTexture` as default for all cameras in your scene. This works like the [GrabPass](https://docs.unity3d.com/Manual/SL-GrabPass.html) in the built-in render pipeline.

The **Opaque Texture** provides a snapshot of the scene right before URP renders any transparent meshes. You can use this in transparent Shaders to create effects like frosted glass, water refraction, or heat waves. You can override this for individual cameras in the [Camera Inspector](camera-component-reference.md). | +| **Opaque Downsampling** | Set the sampling mode on the opaque texture to one of the following: | +| **Terrain Holes** | If you disable this option, the URP removes all Terrain hole Shader variants when you build for the Unity Player, which decreases build time. | +| **SRP Batcher** | Enable the SRP Batcher. This is useful if you have many different Materials that use the same Shader. The SRP Batcher is an inner loop that speeds up CPU rendering without affecting GPU performance. When you use the SRP Batcher, it replaces the SRP rendering code inner loop.

If both **SRP Batcher** and **Dynamic Batching** are enabled, SRP Batcher will take precedence over dynamic batching as long as the shader is SRP Batcher compatible.

**Note**: If assets or shaders in a project are not optimized for use with the SRP Batcher, low performance devices might be more performant when you disable the SRP Batcher. | +| **Dynamic Batching** | Enable [Dynamic Batching](https://docs.unity3d.com/Manual/DrawCallBatching.html), to make the render pipeline automatically batch small dynamic objects that share the same Material. This is useful for platforms and graphics APIs that do not support GPU instancing.

If your targeted hardware does support GPU instancing, disable **Dynamic Batching**. You can change this at run time. | +| **Debug Level** | Set the level of debug information that the render pipeline generates.

Available options: | +| **Shader Variant Log Level** | Set the level of information about Shader Stripping and Shader Variants you want to display when Unity finishes a build.

Available options:
You can check the information in Console panel when your build has finished. | +| **Store Actions** | Defines if Unity discards or stores the render targets of the DrawObjects Passes.

Available options: | ### Quality @@ -63,18 +60,18 @@ These settings control the quality level of the URP. This is where you can make **Tip:** If you want to have different settings for different hardware, you can configure these settings across multiple Universal Render Pipeline assets, and switch them out as needed. -| Property | Description | -| ---------------- | ------------------------------------------------------------ | -| **HDR** | Enable this to allow rendering in High Dynamic Range (HDR) by default for every camera in your Scene. With HDR, the brightest part of the image can be greater than 1. This gives you a wider range of light intensities, so your lighting looks more realistic. With it, you can still see details and experience less saturation even with bright light. This is useful if you want a wide range of lighting or to use [bloom](https://docs.unity3d.com/Manual/PostProcessing-Bloom.html) effects. If you’re targeting lower-end hardware, you can disable this to skip HDR calculations and get better performance. You can override this for individual cameras in the Camera Inspector. | -| **Anti Aliasing (MSAA)** | Use [Multisample Anti-aliasing](anti-aliasing.md#msaa) by default for every Camera in your Scene while rendering. This softens edges of your geometry, so they’re not jagged or flickering. In the drop-down menu, select how many samples to use per pixel: **2x**, **4x**, or **8x**. The more samples you choose, the smoother your object edges are. If you want to skip MSAA calculations, or you don’t need them in a 2D game, select **Disabled**. You can override this for individual cameras in the Camera Inspector.
**Note:** On mobile platforms that do not support the [StoreAndResolve](https://docs.unity3d.com/ScriptReference/Rendering.RenderBufferStoreAction.StoreAndResolve.html) store action, if **Opaque Texture** is selected in the URP asset, Unity ignores the **Anti Aliasing (MSAA)** property at runtime (as if Anti Aliasing (MSAA) is set to Disabled). | -| **Render Scale** | This slider scales the render target resolution (not the resolution of your current device). Use this when you want to render at a smaller resolution for performance reasons or to upscale rendering to improve quality. This only scales the game rendering. UI rendering is left at the native resolution for the device. | +| Property | Description | +| -------- | ----------- | +| **HDR** | Enable this to allow rendering in High Dynamic Range (HDR) by default for every camera in your scene. With HDR, the brightest part of the image can be greater than 1.

This gives you a wider range of light intensities, so your lighting looks more realistic, such as being able to pick out details and experience less saturation even with bright light. This is useful if you want a wide range of lighting or to use [bloom](https://docs.unity3d.com/Manual/PostProcessing-Bloom.html) effects.

If you’re targeting lower-end hardware, you can disable this to skip HDR calculations and get better performance. You can override this for individual cameras in the Camera Inspector. | +| **Anti Aliasing (MSAA)** | Use [Multisample Anti-aliasing](anti-aliasing.md#msaa) by default for every Camera in your scene while rendering. This softens edges of your geometry, so they’re not jagged or flickering. In the drop-down menu, select how many samples to use per pixel: **2x**, **4x**, or **8x**. The more samples you choose, the smoother your object edges are.

If you want to skip MSAA calculations, or you don’t need them in a 2D game, select **Disabled**. You can override this for individual cameras in the Camera Inspector.

**Note**: On mobile platforms that do not support the [StoreAndResolve](https://docs.unity3d.com/ScriptReference/Rendering.RenderBufferStoreAction.StoreAndResolve.html) store action, if **Opaque Texture** is selected in the URP asset, Unity ignores the **Anti Aliasing (MSAA)** property at runtime (as if Anti Aliasing (MSAA) is set to Disabled). | +| **Render Scale** | This slider scales the render target resolution (not the resolution of your current device). Use this when you want to render at a smaller resolution for performance reasons or to upscale rendering to improve quality.

**Note**: This only scales the game rendering. UI rendering is left at the native resolution for the device. | | **Upscaling Filter** | Select which image filter Unity uses when performing the upscaling. Unity performs upscaling when the Render Scale value is less than 1.0. | |     **Automatic** | Unity selects one of the filtering options based on the Render Scale value and the current screen resolution. If integer scaling is possible, Unity selects the Nearest-Neighbor option, otherwise Unity selects the Bilinear option. | |     **Bilinear** | Unity uses the bilinear or linear filtering provided by the graphics API. | |     **Nearest-Neighbor** | Unity uses the nearest-neighbor or point sampling filtering provided by the graphics API. | -|     **FidelityFX Super Resolution 1.0** | Unity uses the AMD FidelityFX Super Resolution 1.0 (FSR) technique to perform upscaling.
Unlike the other Upscaling Filter options, this filter remains active even at a Render Scale value of 1.0. This filter can still improve image quality even when no scaling is occurring. This also makes the transition between scale values 0.99 and 1.0 less noticeable in cases where dynamic resolution scaling is active.
**Note**: This filter is only supported on devices that support Unity shader model 4.5 or higher. On devices that do not support Unity shader model 4.5, Unity uses the **Automatic** option instead. | +|     **FidelityFX Super Resolution 1.0** | Unity uses the AMD FidelityFX Super Resolution 1.0 (FSR) technique to perform upscaling.

Unlike most other Upscaling Filter options, this filter remains active even at a Render Scale value of 1.0. This filter can still improve image quality even when no scaling is occurring. This also makes the transition between scale values 0.99 and 1.0 less noticeable in cases where dynamic resolution scaling is active.

**Note**: This filter is only supported on devices that support Unity shader model 4.5 or higher. On devices that do not support Unity shader model 4.5, Unity uses the **Automatic** option instead. | |     **Override FSR Sharpness** | Unity shows this check box when you select the FSR filter. Selecting this check box lets you specify the intensity of the FSR sharpening pass. | -|     **FSR Sharpness** | Specify the intensity of the FSR sharpening pass. A value of 0.0 provides no sharpening, a value of 1.0 provides maximum sharpness. This option has no effect when FSR is not the active upscaling filter. | +|     **FSR Sharpness** | Specify the intensity of the FSR sharpening pass. A value of 0.0 provides no sharpening, a value of 1.0 provides maximum sharpness.

**Note**: This option has no effect when FSR is not the active upscaling filter. | ### Lighting @@ -82,17 +79,23 @@ These settings affect the lights in your Scene. If you disable some of these settings, the relevant [keywords](https://docs.unity3d.com/Manual/shader-keywords) are [stripped from the Shader variables](shader-stripping.md). If there are settings that you know for certain you won’t use in your game or app, you can disable them to improve performance and reduce build time. -| Property | Description | -| --------------------- | ------------------------------------------------------------ | -| **Main Light** | These settings affect the main [Directional Light](https://docs.unity3d.com/Manual/Lighting.html) in your Scene. You can select this by assigning it as a [Sun Source](https://docs.unity3d.com/Manual/GlobalIllumination.html) in the Lighting Inspector. If you don’t assign a sun source, the URP treats the brightest directional light in the Scene as the main light. You can choose between [Pixel Lighting](https://docs.unity3d.com/Manual/LightPerformance.html) and _None_. If you choose None, URP doesn’t render a main light, even if you’ve set a sun source. | -| **Cast Shadows** | Check this box to make the main light cast shadows in your Scene. On lower-end platforms, you can disable this setting to reduce how much memory URP uses, and reduce processing time on the CPU and the GPU. | -| **Shadow Resolution** | This controls how large the shadow map texture for the main light is. High resolutions give sharper, more detailed shadows. If memory or rendering time is an issue, try a lower resolution. | -| **Mixed Lighting** | When [Mixed Lighting](https://docs.unity3d.com/Manual/LightMode-Mixed.html) is enabled, Unity includes mixed lighting shader variants in the build.| -| **Light Layers** | Select the Light Layers feature to configure certain Lights to affect only specific GameObjects. For more information on Light Layers and how to use them, see the page [Light Layers](lighting/light-layers.md) +| Property | Description | +| -------- | ----------- | +| **Main Light** | These settings affect the main [Directional Light](https://docs.unity3d.com/Manual/Lighting.html) in your scene. You can select this by assigning it as a [Sun Source](https://docs.unity3d.com/Manual/GlobalIllumination.html) in the Lighting Inspector. If you don’t assign a sun source, the URP treats the brightest directional light in the scene as the main light.

You can choose between [Pixel Lighting](https://docs.unity3d.com/Manual/LightPerformance.html) and **None**. If you choose None, URP doesn’t render a main light, even if you’ve set a sun source. | +|     **Cast Shadows** | Check this box to make the main light cast shadows in your scene. | +|     **Shadow Resolution** | This controls how large the shadow map texture for the main light is. High resolutions give sharper, more detailed shadows. If memory or rendering time is an issue, try a lower resolution. | | **Additional Lights** | Here, you can choose to have additional lights to supplement your main light. Choose between [Per Vertex](https://docs.unity3d.com/Manual/LightPerformance.html), [Per Pixel](https://docs.unity3d.com/Manual/LightPerformance.html), or **Disabled**. | -| **Per Object Limit** | This slider sets the limit for how many additional lights can affect each GameObject. | -| **Cast Shadows** | Check this box to make the additional lights cast shadows in your Scene. | -| **Shadow Resolution** | This controls the size of the textures that cast directional shadows for the additional lights. This is a sprite atlas that packs up to 16 shadow maps. High resolutions give sharper, more detailed shadows. If memory or rendering time is an issue, try a lower resolution. | +|     **Per Object Limit** | This slider sets the limit for how many additional lights can affect each GameObject. | +|     **Cast Shadows** | Check this box to make the additional lights cast shadows in your scene. | +|     **Shadow Atlas Resolution** | This controls the size of the textures that cast directional shadows for the additional lights.

This is a sprite atlas that packs up to 16 shadow maps. High resolutions give sharper, more detailed shadows. If memory or rendering time is an issue, try a lower resolution. | +|     **Shadow Resolution Tiers** | Set the resolution of the shadows cast by additional lights at various tiers.

Resolutions must have a value of 128 or greater, and are rounded to the next power of two.

**Note**: This property is only visible when the **Cast Shadows** property is enabled for Additional Lights. | +|     **Cookie Atlas Resolution** | The size of the cookie atlas the additional lights use. All additional lights are packed into a single cookie atlas.

This property is only visible when the **Light Cookies** property is enabled. | +|     **Cookie Atlas Format** | The format of the cookie atlas for additional lights. All additional lights are packed into a single cookie atlas.

Available options:This property is only visible when the **Light Cookies** property is enabled. | +| **Reflection Probes** | Use these properties to control reflection probe settings. | +|     **Probe Blending** | Smooth the transitions between Reflection Probes. For more information, refer to [Reflection Probe Blending](lighting/reflection-probes.md#reflection-probe-blending). | +|     **Box Projection** | Create reflections on objects based on their position within the probe's box, while still using a single probe as the reflection source. For more information, refer to [Advanced Reflection Probe features](xref:AdvancedRefProbe). | +| **Mixed Lighting** | Enable [Mixed Lighting](https://docs.unity3d.com/Manual/LightMode-Mixed.html) to configure the pipeline to include mixed lighting shader variants in the build. | +| **Light Layers** | With this option selected, you can configure certain Lights to affect only specific GameObjects. For more information on Rendering Layers and how to use them, refer to the documentation on [Rendering Layers](features/rendering-layers.md). | ### Shadows @@ -102,40 +105,36 @@ These settings let you configure how shadows look and behave, and find a good ba The **Shadows** section has the following properties. -| Property | Description | -| ---------------- | ----------- | -| **Max Distance** | The maximum distance from the Camera at which Unity renders the shadows. Unity does not render shadows farther than this distance. Increasing the distance reduces the performance.
**Note:** This property is in metric units regardless of the value in the **Working Unit** property. | +| Property | Description | +| -------- | ----------- | +| **Max Distance** | The maximum distance from the Camera at which Unity renders the shadows. Unity does not render shadows farther than this distance.

**Note**: This property is in metric units regardless of the value in the **Working Unit** property. | | **Working Unit** | The unit in which Unity measures the shadow cascade distances. | -| **Cascade Count** | The number of [shadow cascades](https://docs.unity3d.com/Manual/shadow-cascades.html). With shadow cascades, you can avoid crude shadows close to the Camera and keep the Shadow Resolution reasonably low. For more information, see the page [Shadow Cascades](https://docs.unity3d.com/Manual/shadow-cascades.html). Increasing the number of cascades reduces the performance. Cascade settings only affects the main light. | -|     Split 1 | The distance where cascade 1 ends and cascade 2 starts. | -|     Split 2 | The distance where cascade 2 ends and cascade 3 starts. | -|     Split 3 | The distance where cascade 3 ends and cascade 4 starts. | -|     Last Border | The size of the area where Unity fades out the shadows. Unity starts fading out shadows at the distance **Max Distance** - **Last Border**, at **Max Distance** the shadows fade to zero. | +| **Cascade Count** | The number of [shadow cascades](https://docs.unity3d.com/Manual/shadow-cascades.html). With shadow cascades, you can avoid crude shadows close to the Camera and keep the Shadow Resolution reasonably low.

For more information, refer to the documentation on [Shadow Cascades](https://docs.unity3d.com/Manual/shadow-cascades.html). Increasing the number of cascades reduces the performance. Cascade settings only affects the main light. | +|     **Split** **1** | The distance where cascade 1 ends and cascade 2 starts. | +|     **Split** **2** | The distance where cascade 2 ends and cascade 3 starts. | +|     **Split** **3** | The distance where cascade 3 ends and cascade 4 starts. | +|     **Last** **Border** | The size of the area where Unity fades out the shadows. Unity starts fading out shadows at the distance **Max Distance** - **Last Border**, at **Max Distance** the shadows fade to zero. | | **Depth Bias** | Use this setting to reduce [shadow acne](https://docs.unity3d.com/Manual/ShadowPerformance.html). | | **Normal Bias** | Use this setting to reduce [shadow acne](https://docs.unity3d.com/Manual/ShadowPerformance.html). | -| **Soft Shadows** | Select this check box to enable extra processing of the shadow maps to give them a smoother look.
When enabled, Unity uses the following shadow map filtering method:
Desktop platforms: 5x5 tent filter, mobile platforms: 4 tap filter.
**Performance impact**: high.
When this option is disabled, Unity samples the shadow map once with the default hardware filtering. | -| **Conservative Enclosing Sphere** | Enable this option to improve shadow frustum culling and prevent Unity from excessively culling shadows in the corners of the shadow cascades.
Disable this option only for compatibility purposes of existing projects created in previous Unity versions.
If you enable this option in an existing project, you might need to adjust the shadows cascade distances because the shadow culling enclosing spheres change their size and position.
**Performance impact**: enabling this option is likely to improve performance, because the option minimizes the overlap of shadow cascades, which reduces the number of redundant static shadow casters. | +| **Soft Shadows** | Select this check box to enable extra processing of the shadow maps to give them a smoother look.
**Performance impact**: High.
When this option is disabled, Unity samples the shadow map once with the default hardware filtering. | +| **Conservative Enclosing Sphere** | Enable this option to improve shadow frustum culling and prevent Unity from excessively culling shadows in the corners of the shadow cascades.

Disable this option only for compatibility purposes of existing projects created in previous Unity versions.

If you enable this option in an existing project, you might need to adjust the shadows cascade distances because the shadow culling enclosing spheres change their size and position.

**Performance impact**: Enabling this option is likely to improve performance, because the option minimizes the overlap of shadow cascades, which reduces the number of redundant static shadow casters. | ### Post-processing This section allows you to fine-tune global post-processing settings. -| Property | Description | -| ---------------- | ------------------------------------------------------------ | -| **Post Processing** | This check box turns post-processing on (check box selected) or off (check box cleared) for the current URP asset.
If you clear this check box, Unity excludes post-processing shaders and textures from the build, unless one of the following conditions is true: | -| **Post Process Data** | The asset containing references to shaders and Textures that the Renderer uses for post-processing.
**Note:** Changes to this property are necessary only for advanced customization use cases. | +| Property | Description | +| -------- | ----------- | | **Grading Mode** | Select the [color grading](https://docs.unity3d.com/Manual/PostProcessing-ColorGrading.html) mode to use for the Project. | -| **LUT Size** | Set the size of the internal and external [look-up textures (LUTs)](https://docs.unity3d.com/Manual/PostProcessing-ColorGrading.html) that the Universal Render Pipeline uses for color grading. Higher sizes provide more precision, but have a potential cost of performance and memory use. You cannot mix and match LUT sizes, so decide on a size before you start the color grading process.
The default value, **32**, provides a good balance of speed and quality. | +| **LUT Size** | Set the size of the internal and external [look-up textures (LUTs)](https://docs.unity3d.com/Manual/PostProcessing-ColorGrading.html) that the Universal Render Pipeline uses for color grading. Higher sizes provide more precision, but have a potential cost of performance and memory use. You cannot mix and match LUT sizes, so decide on a size before you start the color grading process.

The default value, **32**, provides a good balance of speed and quality. | | **Fast sRGB/Linear Conversions** | Select this option to use faster, but less accurate approximation functions when converting between the sRGB and Linear color spaces.| +| **Data Driven Lens Flare** | Allocate the shader variants and memory URP needs for [lens flares](shared/lens-flare/lens-flare-srp-reference.md) effect. | | **Volume Update Mode** | Select how Unity updates Volumes: every frame or when triggered via scripting. If you select **Every Frame**, URP requires more processing time on the CPU. In the Editor, Unity updates Volumes every frame when not in the Play mode. | - - - ### Adaptive Performance This section is available if the Adaptive Performance package is installed in the project. The **Use Adaptive Performance** property lets you enable the Adaptive Performance functionality. -| **Property** | **Description** | -| ----------------------- | ------------------------------------------------------------ | +| Property | Description | +| -------- | ----------- | | **Use Adaptive Performance** | Select this check box to enable the Adaptive Performance functionality, which adjusts the rendering quality at runtime. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-10-0-x.md b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-10-0-x.md index 4342910eac6..fdd266e4d55 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-10-0-x.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-10-0-x.md @@ -8,7 +8,7 @@ This page describes how to upgrade from an older version of the Universal Render ### DepthNormals Pass -Starting from version 10.0.x, URP can generate a normal texture called `_CameraNormalsTexture`. To render to this texture in your custom shader, add a Pass with the name `DepthNormals`. For example, see the implementation in `Lit.shader`. +Starting from version 10.0.x, URP can generate a normal texture called `_CameraNormalsTexture`. To render to this texture in your custom shader, add a Pass with the name `DepthNormals`. For example, refer to the implementation in `Lit.shader`. ### Screen Space Ambient Occlusion (SSAO) @@ -43,7 +43,7 @@ If you intend to use the SSAO effect with your custom shaders, consider the foll normalizedScreenSpaceUV) ``` -To support SSAO in custom shader, add the `DepthNormals` Pass and the `_SCREEN_SPACE_OCCLUSION` keyword the the shader. For example, see `Lit.shader`. +To support SSAO in custom shader, add the `DepthNormals` Pass and the `_SCREEN_SPACE_OCCLUSION` keyword the the shader. For example, refer to `Lit.shader`. If your custom shader implements custom lighting functions, use the function `GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV)` to get the `AmbientOcclusionFactor` value for your lighting calculations. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-10-1-x.md b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-10-1-x.md index 3cfb50ba706..0e440a4a44c 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-10-1-x.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-10-1-x.md @@ -12,7 +12,7 @@ This page describes how to upgrade from an older version of the Universal Render ### DepthNormals Pass -Starting from version 10.0.x, URP can generate a normal texture called `_CameraNormalsTexture`. To render to this texture in your custom shader, add a Pass with the name `DepthNormals`. For example, see the implementation in `Lit.shader`. +Starting from version 10.0.x, URP can generate a normal texture called `_CameraNormalsTexture`. To render to this texture in your custom shader, add a Pass with the name `DepthNormals`. For example, refer to the implementation in `Lit.shader`. ### Screen Space Ambient Occlusion (SSAO) @@ -47,7 +47,7 @@ If you intend to use the SSAO effect with your custom shaders, consider the foll normalizedScreenSpaceUV) ``` -To support SSAO in custom shader, add the `DepthNormals` Pass and the `_SCREEN_SPACE_OCCLUSION` keyword the the shader. For example, see `Lit.shader`. +To support SSAO in custom shader, add the `DepthNormals` Pass and the `_SCREEN_SPACE_OCCLUSION` keyword the the shader. For example, refer to `Lit.shader`. If your custom shader implements custom lighting functions, use the function `GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV)` to get the `AmbientOcclusionFactor` value for your lighting calculations. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-11-0-x.md b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-11-0-x.md index 271298dadbc..f8da96c0a6f 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-11-0-x.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-11-0-x.md @@ -14,7 +14,7 @@ This page describes how to upgrade from an older version of the Universal Render ### DepthNormals Pass -Starting from version 10.0.x, URP can generate a normal texture called `_CameraNormalsTexture`. To render to this texture in your custom shader, add a Pass with the name `DepthNormals`. For example, see the implementation in `Lit.shader`. +Starting from version 10.0.x, URP can generate a normal texture called `_CameraNormalsTexture`. To render to this texture in your custom shader, add a Pass with the name `DepthNormals`. For example, refer to the implementation in `Lit.shader`. ### Screen Space Ambient Occlusion (SSAO) @@ -49,7 +49,7 @@ If you intend to use the SSAO effect with your custom shaders, consider the foll normalizedScreenSpaceUV) ``` -To support SSAO in custom shader, add the `DepthNormals` Pass and the `_SCREEN_SPACE_OCCLUSION` keyword the the shader. For example, see `Lit.shader`. +To support SSAO in custom shader, add the `DepthNormals` Pass and the `_SCREEN_SPACE_OCCLUSION` keyword the the shader. For example, refer to `Lit.shader`. If your custom shader implements custom lighting functions, use the function `GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV)` to get the `AmbientOcclusionFactor` value for your lighting calculations. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-2021-2.md b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-2021-2.md index 7103eca9d9c..aa226c0f58b 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-2021-2.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-2021-2.md @@ -2,7 +2,7 @@ This page describes how to upgrade from an older version of the Universal Render Pipeline (URP) to version 12.0.x. -For information on converting assets made for a Built-in Render Pipeline project to assets compatible with URP, see the page [Render Pipeline Converter](features/rp-converter.md). +For information on converting assets made for a Built-in Render Pipeline project to assets compatible with URP, refer to the page [Render Pipeline Converter](features/rp-converter.md). ## Upgrading from URP 11.x.x @@ -26,7 +26,7 @@ For information on converting assets made for a Built-in Render Pipeline project ### DepthNormals Pass -Starting from version 10.0.x, URP can generate a normal texture called `_CameraNormalsTexture`. To render to this texture in your custom shader, add a Pass with the name `DepthNormals`. For example, see the implementation in `Lit.shader`. +Starting from version 10.0.x, URP can generate a normal texture called `_CameraNormalsTexture`. To render to this texture in your custom shader, add a Pass with the name `DepthNormals`. For example, refer to the implementation in `Lit.shader`. ### Screen Space Ambient Occlusion (SSAO) @@ -61,7 +61,7 @@ If you intend to use the SSAO effect with your custom shaders, consider the foll normalizedScreenSpaceUV) ``` -To support SSAO in custom shader, add the `DepthNormals` Pass and the `_SCREEN_SPACE_OCCLUSION` keyword the the shader. For example, see `Lit.shader`. +To support SSAO in custom shader, add the `DepthNormals` Pass and the `_SCREEN_SPACE_OCCLUSION` keyword the the shader. For example, refer to `Lit.shader`. If your custom shader implements custom lighting functions, use the function `GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV)` to get the `AmbientOcclusionFactor` value for your lighting calculations. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-7-2-0.md b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-7-2-0.md index 50d0301c135..84c084221e8 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-7-2-0.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guide-7-2-0.md @@ -6,7 +6,7 @@ On this page, you will find information about upgrading from an older version of To build a Project for a console, you need to install an additional package for each platform you want to support. -For more information, see the documentation on [Building for Consoles](Building-For-Consoles.md). +For more information, refer to the documentation on [Building for Consoles](Building-For-Consoles.md). ## Require Depth Texture In previous versions of URP, if post-processing was enabled it would cause the pipeline to always require depth. We have improved the post-processing integration to only require depth from the pipeline when Depth of Field, Motion Blur or SMAA effects are enabled. This improves performance in many cases. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guides.md b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guides.md index e296bc02f07..4bf57a495e4 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guides.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-guides.md @@ -2,7 +2,7 @@ This section contains information about upgrading from an older version of the Universal Render Pipeline (URP) to a more recent version, and about upgrading from the Lightweight Render Pipeline (LWRP) to URP. -For information on converting assets made for a Built-in Render Pipeline project to assets compatible with URP, see the page [Render Pipeline Converter](features/rp-converter.md). +For information on converting assets made for a Built-in Render Pipeline project to assets compatible with URP, refer to the page [Render Pipeline Converter](features/rp-converter.md). * [Upgrading to URP 12.0.x](upgrade-guide-2021-2.md) * [Upgrading to URP 11.0.x](upgrade-guide-11-0-x.md) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-lwrp-to-urp.md b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-lwrp-to-urp.md index 548483a59d8..fcaca29202c 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-lwrp-to-urp.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/upgrade-lwrp-to-urp.md @@ -14,7 +14,7 @@ For each Assembly Definition Asset in your Project: * Select the Assembly Defintion Asset * In the Inspector, enable **Use GUIDs** -For information on using Assembly Definition files, see the [documentation on Assembly Definitions](https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html). +For information on using Assembly Definition files, refer to [documentation on Assembly Definitions](https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html). ## Upgrade process ### Upgrading your version of LWRP diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/urp-global-settings.md b/Packages/com.unity.render-pipelines.universal/Documentation~/urp-global-settings.md index 8eea9367a41..4d6bfec147c 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/urp-global-settings.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/urp-global-settings.md @@ -18,6 +18,6 @@ The check boxes in this section define which shader variants Unity strips when y | **Property** | **Description** | | --------------------------| ------------------------------------------------------------ | -| Strip Debug Variants | When enabled, Unity strips all debug view shader variants when you build the Player. This decreases build time, but prevents the use of Rendering Debugger in Player builds. | -| Strip Unused Post Processing Variants | When enabled, Unity assumes that the Player does not create new [Volume Profiles](VolumeProfile.md) at runtime. With this assumption, Unity only keeps the shader variants that the existing [Volume Profiles](VolumeProfile.md) use, and strips all the other variants. Unity keeps shader variants used in Volume Profiles even if the Scenes in the project do not use the Profiles. | -| Strip Unused Variants | When enabled, Unity performs shader stripping in a more efficient way. This option reduces the amount of shader variants in the Player by a factor of 2 if the project uses the following URP features:Disable this option only if you see issues in the Player. | +| **Strip Debug Variants** | When enabled, Unity strips all debug view shader variants when you build the Player. This decreases build time, but prevents the use of Rendering Debugger in Player builds. | +| **Strip Unused Post Processing Variants** | When enabled, Unity assumes that the Player does not create new [Volume Profiles](VolumeProfile.md) at runtime. With this assumption, Unity only keeps the shader variants that the existing [Volume Profiles](VolumeProfile.md) use, and strips all the other variants. Unity keeps shader variants used in Volume Profiles even if the Scenes in the project do not use the Profiles. | +| **Strip Unused Variants** | When enabled, Unity performs shader stripping in a more efficient way. This option reduces the amount of shader variants in the Player by a factor of 2 if the project uses the following URP features:Disable this option only if you see issues in the Player. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/urp-shaders/urp-shaderlab-pass-tags.md b/Packages/com.unity.render-pipelines.universal/Documentation~/urp-shaders/urp-shaderlab-pass-tags.md index a291cd38c21..15af44ed179 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/urp-shaders/urp-shaderlab-pass-tags.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/urp-shaders/urp-shaderlab-pass-tags.md @@ -16,7 +16,7 @@ The `LightMode` tag can have the following values. | :--- | :--- | | **UniversalForward** | The Pass renders object geometry and evaluates all light contributions. URP uses this tag value in the Forward Rendering Path. | | **UniversalGBuffer** | The Pass renders object geometry without evaluating any light contribution. Use this tag value in Passes that Unity must execute in the Deferred Rendering Path. | -| **UniversalForwardOnly** | The Pass renders object geometry and evaluates all light contributions, similarly to when **LightMode** has the **UniversalForward** value. The difference from **UniversalForward** is that URP can use the Pass for both the Forward and the Deferred Rendering Paths.
Use this value if a certain Pass must render objects with the Forward Rendering Path when URP is using the Deferred Rendering Path. For example, use this tag if URP renders a Scene using the Deferred Rendering Path and the Scene contains objects with shader data that does not fit the GBuffer, such as Clear Coat normals.
If a shader must render in both the Forward and the Deferred Rendering Paths, declare two Passes with the `UniversalForward` and `UniversalGBuffer` tag values.
If a shader must render using the Forward Rendering Path regardless of the Rendering Path that the URP Renderer uses, declare only a Pass with the `LightMode` tag set to `UniversalForwardOnly`.
If you use the SSAO Renderer Feature, add a Pass with the `LightMode` tag set to `DepthNormalsOnly`. For more information, see the `DepthNormalsOnly` value. | +| **UniversalForwardOnly** | The Pass renders object geometry and evaluates all light contributions, similarly to when **LightMode** has the **UniversalForward** value. The difference from **UniversalForward** is that URP can use the Pass for both the Forward and the Deferred Rendering Paths.
Use this value if a certain Pass must render objects with the Forward Rendering Path when URP is using the Deferred Rendering Path. For example, use this tag if URP renders a Scene using the Deferred Rendering Path and the Scene contains objects with shader data that does not fit the GBuffer, such as Clear Coat normals.
If a shader must render in both the Forward and the Deferred Rendering Paths, declare two Passes with the `UniversalForward` and `UniversalGBuffer` tag values.
If a shader must render using the Forward Rendering Path regardless of the Rendering Path that the URP Renderer uses, declare only a Pass with the `LightMode` tag set to `UniversalForwardOnly`.
If you use the SSAO Renderer Feature, add a Pass with the `LightMode` tag set to `DepthNormalsOnly`. For more information, refer to the `DepthNormalsOnly` value. | | **DepthNormalsOnly** | Use this value in combination with `UniversalForwardOnly` in the Deferred Rendering Path. This value lets Unity render the shader in the Depth and normal prepass. In the Deferred Rendering Path, if the Pass with the `DepthNormalsOnly` tag value is missing, Unity does not generate the ambient occlusion around the Mesh. | | **Universal2D** | The Pass renders objects and evaluates 2D light contributions. URP uses this tag value in the 2D Renderer. | | **ShadowCaster** | The Pass renders object depth from the perspective of lights into the Shadow map or a depth texture. | diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md b/Packages/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md index 2614545d765..0ab24b7e3e4 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/urp-universal-renderer.md @@ -2,7 +2,7 @@ This page describes the URP Universal Renderer settings. -For more information on rendering in URP, see also [Rendering in the Universal Render Pipeline](rendering-in-universalrp.md). +For more information on rendering in URP, refer to [Rendering in the Universal Render Pipeline](rendering-in-universalrp.md). ## Rendering Paths @@ -19,7 +19,7 @@ The following table shows the differences between the Forward and the Deferred R | Feature | Forward | Deferred | |---------|---------|----------| | Maximum number of real-time lights per object. | 9 Lights per object. | Unlimited number of real-time lights. | -| Per-pixel normal encoding | No encoding (accurate normal values). | Two options:For more information, see the section [Encoding of normals in G-buffer](rendering/deferred-rendering-path.md#accurate-g-buffer-normals). | +| Per-pixel normal encoding | No encoding (accurate normal values). | Two options:For more information, refer to [Encoding of normals in G-buffer](rendering/deferred-rendering-path.md#accurate-g-buffer-normals). | | MSAA | Yes | No | | Vertex lighting | Yes | No | | Camera stacking | Yes | Supported with a limitation: Unity renders only the base Camera using the Deferred Rendering Path. Unity renders all overlay Cameras using the Forward Rendering Path. | @@ -55,7 +55,7 @@ This section contains properties related to rendering. | Property | Description | |:-|:-| -| **Rendering Path** | Select the Rendering Path.
Options: | +| **Rendering Path** | Select the Rendering Path.
Options: | |   **Depth Priming Mode** | This property determines when Unity performs depth priming.
Depth Priming can improve GPU frame timings by reducing the number of pixel shader executions. The performance improvement depends on the amount of overlapping pixels in the opaque pass and the complexity of the pixel shaders that Unity can skip by using depth priming.
The feature has an upfront memory and performance cost. The feature uses a depth prepass to determine which pixel shader invocations Unity can skip, and the feature adds the depth prepass if it's not available yet.
The options are:On Android, iOS, and Apple TV, Unity performs depth priming only in the Forced mode. On tiled GPUs, which are common to those platforms, depth priming might reduce performance when combined with MSAA.

This property is available only if **Rendering Path** is set to **Forward** | |   **Accurate G-buffer normals** | Indicates whether to use a more resource-intensive normal encoding/decoding method to improve visual quality.

This property is available only if **Rendering Path** is set to **Deferred**. | | **Depth Texture Mode** | Specifies the stage in the render pipeline at which to copy the scene depth to a depth texture. The options are: