Version: Unity 6.5 Alpha (6000.5)
Language : English
Converting material references from the Built-In Render Pipeline to URP reference
Converting quality levels from the Built-In Render Pipeline to URP reference

Converting prebuilt shaders from the Built-In Render Pipeline to URP reference

After you use the Material Shader Converter in the Render Pipeline Converter, Unity converts the selected prebuilt shadersA program that runs on the GPU. More info
See in Glossary
to its corresponding Universal Render Pipleine (URP) shaders.

Note: This page is about converting prebuilt shaders to URP only. For more information on how to convert custom shaders to URP, refer to Upgrade custom shaders for URP compatibility.

Shader mapping

The following table shows which URP shaders the Built-In 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
shaders convert to when you use the Render Pipeline Converter.

Built-In Render Pipeline shader URP shader
Standard Universal Render Pipeline/Lit
Standard (Specular Setup) Universal Render Pipeline/Lit
Standard TerrainThe landscape in your scene. A Terrain GameObject adds a large flat plane to your scene and you can use the Terrain’s Inspector window to create a detailed landscape. More info
See in Glossary
Universal Render Pipeline/Terrain/Lit
ParticlesA small, simple image or mesh that is emitted by a particle system. A particle system can display and move particles in great numbers to represent a fluid or amorphous entity. The effect of all the particles together creates the impression of the complete entity, such as smoke. More info
See in Glossary
/Standard Surface
Universal Render Pipeline/Particles/Lit
Particles/Standard Unlit Universal Render Pipeline/Particles/Unlit
Mobile/Diffuse Universal Render Pipeline/Simple Lit
Mobile/Bumped Specular Universal Render Pipeline/Simple Lit
Mobile/Bumped Specular(1 Directional Light) Universal Render Pipeline/Simple Lit
Mobile/Unlit (Supports Lightmap) Universal Render Pipeline/Simple Lit
Mobile/VertexLit Universal Render Pipeline/Simple Lit
Legacy Shaders/Diffuse Universal Render Pipeline/Simple Lit
Legacy Shaders/Specular Universal Render Pipeline/Simple Lit
Legacy Shaders/Bumped Diffuse Universal Render Pipeline/Simple Lit
Legacy Shaders/Bumped Specular Universal Render Pipeline/Simple Lit
Legacy Shaders/Self-Illumin/Diffuse Universal Render Pipeline/Simple Lit
Legacy Shaders/Self-Illumin/Bumped Diffuse Universal Render Pipeline/Simple Lit
Legacy Shaders/Self-Illumin/Specular Universal Render Pipeline/Simple Lit
Legacy Shaders/Self-Illumin/Bumped Specular Universal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Diffuse Universal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Specular Universal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Bumped Diffuse Universal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Bumped Specular Universal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Cutout/Diffuse Universal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Cutout/Specular Universal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Cutout/Bumped Diffuse Universal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Cutout/Bumped Specular Universal Render Pipeline/Simple Lit

Define upgrade paths for shaders

To define upgrade paths for shaders, do the following:

  • Map an old shader to a new one with a custom MaterialUpgrader.
  • Expose the upgrader to the system with IMaterialUpgradersProvider.
// This class defines the upgrade rule from an old shader to a new shader
public class MaterialUpgraderExample : MaterialUpgrader
{
    // Priority determines order — higher values override lower-priority upgraders
    public int priority => 1000;
    public MaterialUpgraderExample(string oldShaderName, string newShaderName)
    {
        if (oldShaderName == null)
            throw new ArgumentNullException(nameof(oldShaderName));

        // Maps the old shader to the new shader with optional property remapping (null here)
        RenameShader(oldShaderName, newShaderName, null);
    }
}

// This provider makes the upgrader discoverable by the upgrader system.
// It declares support for the Universal Render Pipeline and exposes the custom upgrade rule.
[SupportedOnRenderPipeline(typeof(UniversalRenderPipeline))]
private class ExampleMaterialProvider : IMaterialUpgradersProvider
{

    public IEnumerable<MaterialUpgrader> GetUpgraders()
    {
        // Replace "SomePathToShader" and "MappingShaderPath" with actual shader names/paths
        yield return new MaterialUpgraderExample("SomePathToShader", "MappingShaderPath");

        // Add as many upgraders you need
    }
}

Additional resources

Converting material references from the Built-In Render Pipeline to URP reference
Converting quality levels from the Built-In Render Pipeline to URP reference