When creating an object in Blender we will often need to give our objects a material/texture/shader. Material and Shader are often used interchangeably as well as textures being mentioned very often. So what do these terms mean?
In Blender materials contain node graphs that make up the bulk of a materials content as well as a set of properties. Shaders are the mathematical formulas a material uses to calculate its shading, and textures are used by shaders as input for various information.
In the rest of this article, we'll go into more detail about what exactly a Shader, Material, and Texture are.
Material shading is a method for objects to respond to incoming light in a scene. By using the properties of a material and any of its associated shaders and textures the render engine can calculate what to do with incoming light properly.
Related content: Blender: lighting basics tutorial
Rather than just simply mapping the color information of an image onto an object material shading will take lighting into account as well as allowing much more customization.
Materials usually generate all of this color information through shaders, which contain the mathematical formulas that Blender uses to generate lighting.
Related content: The complete beginners guide to Blender nodes, Eevee, Cycles and PBR
At first, materials and texture can seem to be the same thing. Since a texture already contains color information it doesn't seem intuitive to process it through a material.
The first difference between Materials and Textures is that materials contain information needed to calculate shading. Textures can be one of those things that can be contained in a material and contribute to the final output of the material.
It is much like a mesh object. The object itself is a container and inside it is the mesh data. In turn a material is attached as a subcomponent to the mesh.
The material then contains all the information needed to know what is going to happen to the incoming light that hits an object that has the given material assigned to it.
This is opposed to textures which, whether procedural or image based, do not have any sort of lighting calculations done on them directly. Instead, they are inputs for shaders that are also stored and managed inside a material before the result of the material is realized.
There are two kinds of textures that you will come across. Image textures and procedural textures.
Image textures can be just about any image that is stored on your hard drive. A procedural texture is a computer-generated pattern that we can use in place of an image texture as input for a shader.
While an Image Texture can contain lighting information it is static and will not be updated with any lighting in the scene it occupies.
Materials instead use all the information that goes into the material and calculate lighting on top of that to create color information for whatever object or surface the material is applied to.
In Blender materials contain node trees which we use to create the properties we want our material to have. Textures are one component used to control the parameters of that material.
Another difference is that Materials can use shaders to generate a much wider range of effects and take advantage of certain material properties that cannot be captured in an image or texture alone.
For example, you could not realistically recreate a volumetric material with a texture alone, certain glowing materials also do not translate well to image textures since usually the brightness values in an image are limited. Metallic and shiny materials also do not translate well to image textures.
Materials usually cannot be transferred between 3D applications due to how they are rendered, instead we usually export texture maps for each material property and then input those into whatever 3D application we are moving the materials to so that we can recreate the original material when possible.
This is a standardized process often referred to as a PBR workflow. Blender support what is known as the metalness workflow.
Related content: What is PBR and how do we use it in Blender?
Fourth, Textures can be mixed and combined either through shaders or with a photo editing program unlike materials which in Blender cannot be mixed. While we can have more than one material on a object there is no way to smoothly blend in between them.
Any materials that do blend are the result of one material mixing multiple shaders using either a texture or some factor of the model such as vertex colors to mix the two shaders.
Related content: Mixing materials and textures in Blender
A shader is the mathematical formula that takes color, positions, and different values as input and output a shader that can interact with light.
In Blender shaders are usually referred to as the Shader Nodes available in the Shader Graph such as:
Shaders can also be referred to as the node trees inside of our material, so this could be a combination of shaders.
Shaders can generate a wide variety of effects, they can be used to create rocks, glowing light bulbs, leaves, food, and just about anything we can think of. Usually this is achieved with the Principled BSDF shader, but we can also combine the many shaders available to create ever more materials.
Blender materials also support displacement which can then be combined with displacement textures and math to even create the shape of an object.
Related content: How to use displacement in Blender
In general shaders can be thought of as the properties of a material. They don't have to be strictly photorealistic as we can either combine other shaders to create our own custom materials or change the values of shaders such as the Principled BSDF to create a wide range of materials.
There are several shaders available in Blender both for specific purposes and for more broad purposes, examples, for instance the principled bsdf and principled volume shaders that are called ubershaders and cover multiple purposes.
Another example is the diffuse shader. It covers a much narrower use case and, in most cases, needs to be combined with other shaders for a realistic result.
Some shaders in Blender are designed for very specific uses while others can be used to create a wide variety of materials, we can also combine shaders to create even more materials.
There are multiple shaders available in Blender, the most common ones to use are the Principled BSDF and Volumetric BSDF shaders, they provide many values that we can use to create most materials, we can also manually combine individual shaders to create a more complex shader.
Related content: Physically based rendering and Blender materials
Like mentioned above shaders don't have to strictly be color information as we can also use them to create volume as well as displacing the mesh, in fact Blender provides many different math operations we can use to generate a wide variety of shapes.
Volumetrics allow us to create materials such as dust and steam, this can be used to create anything from fog and clouds to smoke and even the haze seen underwater.
Materials, Shaders, and Textures all are very useful when creating objects in Blender, they allow to create a wide range of effects alone and in combination, knowing how they relate makes it easier for us to use them to their full potential.
Thanks for your time.