Version: 2020.3
Render pipelines introduction
Choosing and configuring a render pipeline and lighting solution

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 renderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info
See in Glossary
with it. This includes the Game view, the SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary
view, and previews for Materials that are displayed in the Project panel and the InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
See in Glossary
.

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 settingsA broad collection of settings which allow you to configure how Physics, Audio, Networking, Graphics, Input and many other areas of your project behave. More info
See in Glossary
, Unity defaults to using the Built-in Render Pipeline.

To do this:

  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
Choosing and configuring a render pipeline and lighting solution