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.
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 |
To define upgrade paths for shaders, do the following:
MaterialUpgrader.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
}
}