To draw something in Unity, you must provide information that describes its shape, and information that describes the appearance of its surface. You use meshes to describe shapes, and materials to describe the appearance of surfaces.
Materials and shaders are closely linked; you always use materials with shaders.
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.
For more information on migration, refer to Migrating from the Built-In Render Pipeline to the Universal Render Pipeline and Render pipeline feature comparison.
| Feature | Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Custom Scriptable Render Pipeline (SRP) | Built-in Render Pipeline |
|---|---|---|---|---|
| Materials | Yes | Yes | Yes | Yes |
A material contains a reference to a Shader objectAn instance of the Shader class, a Shader object is container for shader programs and GPU instructions, and information that tells Unity how to use them. Use them with materials to determine the appearance of your scene. More info
See in Glossary. If that Shader object defines material properties, then the material can also contain data such as colors or references to textures.
The MaterialAn asset that defines how a surface should be rendered. More info
See in Glossary class represents a material in C# code. For information, see Using Materials with C# scripts.
A material asset is a file with the .mat extension. It represents a material in your Unity project. For information on viewing and editing a material asset using the Inspector window, see Material Inspector reference.
Unity supports functionality for creating variants of Materials. To learn more about this functionality, see Material Variants.