Singularity/Library/PackageCache/com.unity.render-pipelines..../Documentation~/urp-universal-renderer.md
2024-05-06 11:45:45 -07:00

6.8 KiB

Universal Renderer

This page describes the URP Universal Renderer settings.

For more information on rendering in URP, see also Rendering in the Universal Render Pipeline.

Rendering Paths

The URP Universal Renderer implements two Rendering Paths:

Rendering Path comparison

The following table shows the differences between the Forward and the Deferred Rendering Paths in URP.

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:
  • Quantization of normals in G-buffer (loss of accuracy, better performance).
  • Octahedron encoding (accurate normals, might have significant performance impact on mobile GPUs).
For more information, see the section Encoding of normals in G-buffer.
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.

How to find the Universal Renderer asset

To find the Universal Renderer asset that a URP asset is using:

  1. Select a URP asset.

  2. In the Renderer List section, click a renderer item or the vertical ellipsis icon (⋮) next to a renderer.

    How to find the Universal Renderer asset

Universal Renderer asset reference

This section describes the properties of the Forward Renderer asset.

URP Universal Renderer

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:
  • Forward: The Forward Rendering Path.
  • Deferred: The Deferred Rendering Path. For more information, see Deferred Rendering Path.
  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:
  • Disabled: Unity does not perform depth priming.
  • Auto: If there is a Render Pass that requires a depth prepass, Unity performs the depth prepass and depth priming.
  • Forced: Unity always performs depth priming. To do this, Unity also performs a depth prepass for every render pass. Note: Depth priming is disabled at runtime on certain hardware (Tile Based Deferred Rendering) regardless of this setting.
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.
Copy Depth Mode Specifies the stage in the render pipeline at which to copy the scene depth to a depth texture. The options are:
  • After Opaques: URP copies the scene depth after the opaques render pass.
  • Force Prepass: URP does a depth prepass to generate the scene depth texture.
Note: On mobile devices, the After Transparents option can lead to a significant improvement in memory bandwidth.

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. For more information about the RenderPass API, see 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.

URP Universal Renderer Stencil override

For more information on how Unity works with the Stencil buffer, see ShaderLab: Stencil.

Compatibility

This section contains settings related to backwards compatibility.

Property Description
Intermediate Texture Controls when URP renders via an intermediate texture. Options:
  • Auto: Uses information declared by active Renderer Features to automatically determine whether to render through an intermediate texture or not.
  • Always: Forces rendering via an intermediate texture, enabling compatibility with renderer features that do not declare their needed inputs, but can have a significant performance impact on some platforms.

Renderer Features

This section contains the list of Renderer Features assigned to the selected Renderer.

For information on how to add a Renderer Feature, see How to add a Renderer Feature to a Renderer.

URP contains the pre-built Renderer Feature called Render Objects.