WuhuIslandTesting/Library/PackageCache/com.unity.render-pipelines.universal@8148.0.7-4/Documentation~/shaders-in-universalrp.md
2025-01-07 02:06:59 +01:00

2.9 KiB
Raw Blame History

Shaders and Materials

The Universal Render Pipeline uses a different shading approach than the Unity built-in Render Pipeline. As a result, built-in Lit and custom Lit Shaders do not work with the URP. Instead, URP has a new set of standard Shaders. URP provides the following Shaders for the most common use case scenarios:

Upgrade advice: If you upgrade your current Project to URP, you can upgrade built-in Shaders to the new ones. Unlit Shaders from the built-in render pipeline still work with URP.

For SpeedTree Shaders, Unity does not re-generate Materials when you re-import them, unless you click the Generate Materials or Apply & Generate Materials button.

Note: Unlit Shaders from the Unity built-in render pipeline work in URP.

Choosing a Shader

With the Universal Render Pipeline, you can have real-time lighting with either Physically Based Shaders (PBS) and non-Physically Based Rendering (PBR).

For PBS, use the Lit Shader. You can use it on all platforms. The Shader quality scales depending on the platform, but keeps physically based rendering on all platforms. This gives you realistic graphics across hardware. The Unity Standard Shader and the Standard (Specular setup) Shaders both map to the Lit Shader in URP. For a list of Shader mappings, see section Shader mappings.

If you are targeting less powerful devices, or your project has simpler shading, use the Simple Lit shader, which is non-PBR.

If you dont need real-time lighting, or would rather only use baked lighting and sample global illumination, choose a Baked Lit Shader.

If you dont need lighting on a Material at all, you can choose the Unlit Shader.

SRP Batcher compatibility

To ensure that a Shader is SRP Batcher compatible:

  • Declare all Material properties in a single CBUFFER called UnityPerMaterial.
  • Declare all built-in engine properties, such as unity_ObjectToWorld or unity_WorldTransformParams, in a single CBUFFER called UnityPerDraw.

For more information on the SRP Batcher, see the page Scriptable Render Pipeline (SRP) Batcher.