15
$\begingroup$

I'm working my way through a Blender online course. Sometimes the word material is used, other times it is a texture or a shader. I feel like all three of these words, while related, have a difference specific technical meaning. Can someone explain what each means and how they are different?

$\endgroup$
18
$\begingroup$

Shader

A shader is a piece of code that is run when shading a mesh. It can be anything, including a texture, but the term is often used to refer to a shader that runs a BSDF or group of BSDFs, or something of that nature, such as emission. Blender's UI follows this convention, the BSDF nodes are in a submenu called "shaders". (but in some sense, all the nodes are shaders).

Texture

Textures add detail at the shader level. They do this by either loading an image file, or creating a procedural pattern of some kind, such as noise, bricks, or gradients. There are also a number of things that aren't quite textures that fall under the vague heading of "utility shaders". These perform some conversion function (examples in Cycles would be the Math node, or the Blackbody node), or provide access to variables (such as the Geometry or Texture Coordinates nodes)

Material

A material is a collection of shader(s) that you apply to a model to define how it is shaded. A material might consist of a single BSDF, or it might contain a vast array of textures, utilities, and multiple BSDFs. You can think of it as a container or wrapper

Finally, remember that many people are not always consistent about using these terms according to the definitions here. "material" and "shader" especially are often used interchangeably.

$\endgroup$
  • $\begingroup$ It will be great if you also explain which one is used where and why. $\endgroup$ – user541396 May 7 at 10:49
2
$\begingroup$

Relatively new to Blender and 3D but this is how I think of them...

A shader conveys fundamental properties that determine how light interacts with the object. How well, for example, does it reflect, refract or transmit light and what is the primary/overall color we perceive it as. Usually applies uniformly to an object (in contrast to textures). You could say it's the DNA of a material.

A texture is a (possibly random) pattern used to alter existing characteristics of an object+shaders in a controlled way. This may have a purely color-based effect (e.g. change overall brightness by multiplying in a monochrome gradient) but just as often affects non-color properties (e.g. control glossiness with a roughness map, using it as a mask that highlights/emphasizes some parts of the surface over others). Textures can even have a tactile/physical effect (e.g. modifying surface elevation via a displacement map).

A material is just a particular selection of shaders and textures. A container of them, if you like.

Of course, as the previous answer mentioned there are a number of alternate definitions out there and there may be shaders or textures that don't fit perfectly into one of my boxes but they've served me pretty well so far.

$\endgroup$
  • $\begingroup$ Wouldn't it be more precised to say that textures are image-like information for shader to retrieve extra data in a rasterized method? $\endgroup$ – Hikariztw Jun 25 at 5:34
  • 1
    $\begingroup$ @Hikariztw I'm not sure how procedural textures are image-like. Either way I was going for a slightly more accessible phrasing. If "information for shader to retrieve extra data in a rasterized method" is more precise that's fine but not sure it helps as many people. (BTW, the texture==pattern idea isn't something I made up. I've seen it in other definitions.) $\endgroup$ – B Layer Jun 25 at 5:56
  • 1
    $\begingroup$ Ah, that's right. "Textures" is a rough speaking for information in some definition. There shouldn't be a precised way to explain it. I just thinking about that pattern is kind of limit the texture to only color or directly visual effect, but not a bad explanation. Thanks for the discussion $\endgroup$ – Hikariztw Jun 25 at 7:21
  • $\begingroup$ @Hikariztw Thanks. Cheers. $\endgroup$ – B Layer Jun 25 at 9:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.