Universal Renderer
This page describes the URP Universal Renderer settings.
For more information on rendering in URP, refer to Rendering in the Universal Render Pipeline.
Rendering Paths
The URP Universal Renderer implements three Rendering Paths:
Forward Rendering Path.
Rendering Path comparison
Each rendering path uses a different set of steps to calculate lighting and draw objects. Which rendering path you choose affects the performance of your game and lighting options.
- Forward rendering path: URP draws each object one by one. For each object, URP checks every light that affects it to calculate how the object looks.
- Forward+ rendering path: Works similarly to the Forward rendering path, but lets you use many more lights without affecting performance.
- Deferred rendering path: URP first renders information about every object into multiple buffers. Then in a later ('deferred') step, URP draws each screen pixel one by one by combining the information from the buffers.
The following table shows the differences between the Forward and the Deferred Rendering Paths in URP.
Feature | Forward | Forward+ | Deferred |
---|---|---|---|
Maximum number of real-time lights per object. | 9 | Unlimited. The per-Camera limit applies. | Unlimited |
Per-pixel normal encoding | No encoding (accurate normal values). | No encoding (accurate normal values). | Two options:
|
MSAA | Yes | Yes | No |
Vertex lighting | Yes | No | No |
Camera stacking | Yes | 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. |
How to find the Universal Renderer asset
To find the Universal Renderer asset that a URP asset is using:
Select a URP asset.
In the Renderer List section, click a renderer item or the vertical ellipsis icon (⋮) next to a renderer.
Universal Renderer asset reference
This section describes the properties of the Universal Renderer asset.
Filtering
This section contains properties that define which layers the renderer draws.
Property | Description |
---|---|
Opaque Layer Mask | Select which opaque layers this Renderer draws |
Transparent Layer Mask | Select which transparent layers this Renderer draws |
Rendering
This section contains properties related to rendering.
Property | Description |
---|---|
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:
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 at which stage in the render pipeline URP should copy the scene depth to a depth texture. The options are:
|
Native RenderPass
This section contains properties related to URP's Native RenderPass API.
Property | Description |
---|---|
Native RenderPass | Indicates whether to use URP's Native RenderPass API. When enabled, URP uses this API to structure render passes. As a result, you can use programmable blending in custom URP shaders. Enable Native RenderPass if you use Vulkan or Metal graphics APIs, so URP automatically reduces how often it copies render textures into and out of memory. For more information about the RenderPass API, refer to ScriptableRenderContext.BeginRenderPass. Note: Enabling this property has no effect on OpenGL ES. |
Shadows
This section contains properties related to rendering shadows.
Property | Description |
---|---|
Transparent Receive Shadows | When this option is on, Unity draws shadows on transparent objects. |
Overrides
This section contains Render Pipeline properties that this Renderer overrides.
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.
In URP, you can use bits 0 to 3 of the stencil buffer for custom rendering effects. This means you can use stencil indices 0 to 15.
Compatibility
This section contains settings related to backwards compatibility.
Property | Description |
---|---|
Intermediate Texture | This property lets you force URP to renders via an intermediate texture. Options:
|
Renderer Features
This section contains the list of Renderer Features assigned to the selected Renderer.
For information on how to add a Renderer Feature, refer to How to add a Renderer Feature to a Renderer.
URP contains the pre-built Renderer Feature called Render Objects.