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.
| 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.