Important: The Built-In Render Pipeline is deprecated and will be made obsolete in a future release.
It remains supported, including bug fixes and maintenance, through the full Unity 6.7 LTS lifecycle.
The Universal Render Pipeline (URP) doesn’t support surface shaders. For more information on how to replace surface shaders in URP, refer to Convert custom shaders for URP compatibility.
Resources and techniques for writing Surface Shaders in the Built-In Render Pipeline, which are streamlined shaders that interact with lighting.
| Page | Description |
|---|---|
| Introduction to Surface Shaders | Learn about how Surface Shaders let you write shaders in a streamlined way. |
| Surface Shader output structures | Understand the structures Surface Shaders uses for input data, for example albedo color and surface normals. |
| Surface Shaders and rendering paths | Understand how the rendering path affects how Unity applies lighting, and which passes Unity uses. |
| Create a Surface Shader | Create a Surface Shader using the #pragma surface directive. |
| Set the lighting model in a Surface Shader | Set the lighting to a built-in model, or define a custom lighting model. |
| Optimize Surface Shaders | Make Surface Shaders run faster or reduce their file size. |
| Surface Shader examples | Examples of Surface Shaders in the Built-In Render Pipeline. |
| Surface Shader language reference | Find the directives and input structures you need to write a Surface Shader in the Built-In Render Pipeline. |