Version: 2021.1
Render pipelines introduction
Using the Built-in Render Pipeline

Switching render pipelines

This page contains information on setting the active render pipeline Unity is using. This information lets you switch to the Built-in Render Pipeline, the Universal Render Pipeline (URP), the High Defintion Render Pipeline (HDRP), or a custom render pipeline.

Note that if you switch to a different render pipeline, you must ensure that the assets and code in your project are compatible with the new render pipeline; otherwise, you might experience errors or unintended visual effects.

As soon as you set the active render pipeline in the Unity Editor, Unity begins rendering with it. This includes the Game view, the Scene view, and previews for Materials that are displayed in the Project panel and the Inspector.

Activating the Built-in Render Pipeline

To set the active render pipeline to the Built-in Render Pipeline, you must tell Unity that you are not using any Scriptable Render Pipeline based render pipelines. When you have removed all references to these from your project settings, Unity defaults to using the Built-in Render Pipeline.

Para hacer esto:

  1. Open the Quality Settings window by navigating to Edit > Project Settings > Quality.
  2. For each quality level, set the Render Pipeline field to None.
  3. Open the Graphics Settings window by navigating to Edit > Project Settings > Graphics.
  4. Set the Scriptable Render Pipeline Setting field to None.

Activating URP, HDRP, or a custom render pipeline based on SRP

To set the active render pipeline to one that is based on SRP, you must tell Unity which Render Pipeline Asset to use. A Render Pipeline Asset is an asset that contains data about which render pipeline to use, and how to configure that render pipeline.

You can have multiple Render Pipeline Assets that tell Unity to use the same render pipeline with different configurations; for example, you might have one that has settings suitable for high-end hardware, and one that has settings suitable for low-end hardware.

For a general introduction to Render Pipeline Assets, see Scriptable Render Pipeline introduction. For information on Render Pipeline Assets in URP, see The Universal Render Pipeline Asset. For information on Render Pipeline Assets in HDRP, see The High Defintion Render Pipeline Asset.

In the Unity Editor

  1. Open the Graphics Settings window by navigating to Edit > Project Settings > Graphics.
  2. In your Project folder, locate the Render Pipeline Asset for the render pipeline that you want to use.
  3. Drag the Render Pipeline Asset on to the Scriptable Render Pipeline Setting field. This defines the default render pipeline, which Unity uses when there is no override for a given quality level.
  4. Optional, to use a different Render Pipeline Asset for different quality levels: Open the Quality Settings window by navigating to Edit > Project Settings > Quality.
  5. Optional, to use a different Render Pipeline Asset for different quality levels: for each quality level, drag the Render Pipeline Asset on to the Render Pipeline field.

In C# code

You can set the Render Pipeline Asset using C# code. You can run this code in Edit Mode or Play Mode in the Unity Editor, or at runtime in the built player.

Because SRP is highly configurable, changing the active Render Pipeline Asset can result in a very minor change, or a very large change (such as switching from URP to HDRP). The performance cost of changing Render Pipeline Asset at runtime varies accordingly.

Note that swapping to a new Render Pipeline Asset causes Unity to destroy the current Render Pipeline Instance, and call the new Render Pipeline Asset’s CreatePipeline() method. Depending on the code in your SRP, this might be a computationally resource-intensive operation.

The following example code shows how to set the default Render Pipeline Asset that is stored in GraphicsSettings.renderPipelineAsset.

Note that if you have assigned Render Pipeline Assets to the quality levels in your project’s Quality Settings, the Render Pipeline Asset for the current quality level overrides the default Render Pipeline Asset. You can update these in C# code in the same way as below, using the QualitySettings-renderPipeline API.

using UnityEngine;
using UnityEngine.Rendering;
 
public class SwitchRenderPipelineAsset : MonoBehaviour
{
    public RenderPipelineAsset exampleAssetA;
    public RenderPipelineAsset exampleAssetB;
 
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A)) {
            GraphicsSettings.renderPipelineAsset = exampleAssetA;
            Debug.Log("Default render pipeline asset is: " + GraphicsSettings.renderPipelineAsset.name);
        }
        else if (Input.GetKeyDown(KeyCode.B)) {
            GraphicsSettings.renderPipelineAsset = exampleAssetB;
            Debug.Log("Default render pipeline asset is: " + GraphicsSettings.renderPipelineAsset.name);
        }
    }
Render pipelines introduction
Using the Built-in Render Pipeline