This page contains information on setting the active render pipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info
See in Glossary 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 viewAn interactive view into the world you are creating. You use the Scene View to select and position scenery, characters, cameras, lights, and all other types of Game Object. More info
See in Glossary, 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.
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:
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.
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);
}
}