# Introduction to materials

> Understand using materials to describe the appearance of surfaces.

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](/engine/6000.5/manual/assets-and-media/asset-types/mesh/components-reference/class.md) to describe shapes, and materials to describe the appearance of surfaces.

Materials and shaders are closely linked; you always use materials with shaders.

## Render pipeline compatibility

> **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](/engine/6000.5/manual/render-pipelines/universal-render-pipeline/introduction/installing-and-configuring-urp/upgrading-from-birp.md.md) and [Render pipeline feature comparison](/engine/6000.5/manual/render-pipelines/choose-a-render-pipeline/feature-comparison.md.md).

| Feature   | Universal Render Pipeline (URP) | High Definition Render Pipeline (HDRP) | Custom Scriptable Render Pipeline (SRP) | Built-in Render Pipeline |
| --------- | ------------------------------- | -------------------------------------- | --------------------------------------- | ------------------------ |
| Materials | Yes                             | Yes                                    | Yes                                     | Yes                      |

## Material fundamentals

A material contains a reference to a [Shader object](/engine/6000.5/manual/materials-and-shaders/shaders/writing-custom/shader-writing/shader-objects.md). If that Shader object defines [material properties](/engine/6000.5/manual/materials-and-shaders/shaders/reference/sl-reference/sl-shader-object/sl-properties.md), then the material can also contain data such as colors or references to textures.

The [Material](/engine/6000.5/script-reference/unityengine/material.md) class represents a material in C# code. For information, see [Using Materials with C# scripts](/engine/6000.5/manual/materials-and-shaders/materials/accessing-via-script.md).

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](/engine/6000.5/manual/materials-and-shaders/materials/class-material.md).

## Material Variants

Unity supports functionality for creating variants of Materials. To learn more about this functionality, see [Material Variants](/engine/6000.5/manual/materials-and-shaders/materials/materialvariant-landingpage.md).
