文档

Unity Engine


Unity Engine


Built-In Render Pipeline prebuilt shaders in URP reference

Discover which URP shaders the Built-In Render Pipeline shaders convert to when you use the Render Pipeline Converter.
阅读时间3 分钟最后更新于 1 个月前

After you use the Material Shader Converter in the Render Pipeline Converter, Unity converts the selected prebuilt shaders to its corresponding Universal Render Pipleine (URP) shaders.
注意
This page is about converting prebuilt shaders to URP only. For more information on how to convert custom shaders to URP, refer to Convert custom shaders for URP compatibility.

Shader mapping

The following table shows which URP shaders the Built-In Render Pipeline shaders convert to when you use the Render Pipeline Converter.

Built-In Render Pipeline shader

URP shader

StandardUniversal Render Pipeline/Lit
Standard (Specular Setup)Universal Render Pipeline/Lit
Standard TerrainUniversal Render Pipeline/Terrain/Lit
Particles/Standard SurfaceUniversal Render Pipeline/Particles/Lit
Particles/Standard UnlitUniversal Render Pipeline/Particles/Unlit
Mobile/DiffuseUniversal Render Pipeline/Simple Lit
Mobile/Bumped SpecularUniversal 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/VertexLitUniversal Render Pipeline/Simple Lit
Legacy Shaders/DiffuseUniversal Render Pipeline/Simple Lit
Legacy Shaders/SpecularUniversal Render Pipeline/Simple Lit
Legacy Shaders/Bumped DiffuseUniversal Render Pipeline/Simple Lit
Legacy Shaders/Bumped SpecularUniversal Render Pipeline/Simple Lit
Legacy Shaders/Self-Illumin/DiffuseUniversal Render Pipeline/Simple Lit
Legacy Shaders/Self-Illumin/Bumped DiffuseUniversal Render Pipeline/Simple Lit
Legacy Shaders/Self-Illumin/SpecularUniversal Render Pipeline/Simple Lit
Legacy Shaders/Self-Illumin/Bumped SpecularUniversal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/DiffuseUniversal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/SpecularUniversal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Bumped DiffuseUniversal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Bumped SpecularUniversal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Cutout/DiffuseUniversal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Cutout/SpecularUniversal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Cutout/Bumped DiffuseUniversal Render Pipeline/Simple Lit
Legacy Shaders/Transparent/Cutout/Bumped SpecularUniversal 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 shaderpublic 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