Where it Started - Textures
How Textures Work Within Current Pipelines
What are Textures?
Materials are a comparatively new concept.
Historically, we would use Textures for this exact same purpose.
Textures can be thought of as "painting colors on to a model."
Each texture is represented as a flat image with colors drawn onto it. This "flat image" is then wrapped around the model (almost like wrapping paper for a gift), in a process called UV Mapping.
This video from AcademicPhoenixPlus does a good job describing how textures work. (For more on texturing from AcademicPhoenixPlus, see their course on "Texturing for Beginners".)
Brief History of Textures
As graphics became better, we ran into a problem.
How do you define certain properties with just colors in a flat image?
What if you want something to look metalic?
Or like glass?
What if you want something that's glossy or reflective?
Furthermore, even if you found a way to make all these properties "look correct" in one
environment, it would usually look wrong in other environments.
In other words, what if our model is in a hot desert, vs an icy wasteland, vs deep underwater?
How do you visually account for these changes with just a texture?
Ultimately, textures did not contain enough information, and ended up being inadequate in many ways.
Current Use of Textures
The above issues are why materials came about.
Materials are effectively a collection of many different properties. This often includes properties such as metallic, roughness, specular, refraction, and more.
However, for many of these individual properties, they can use a texture file as an input. So in an overly-simplistic way, materials can be thought of as a collection of textures and other properties.