Difference Among Static, Procedural, and PBR Texturing?

Hey guys,

Ive heard that the typical textures are static images for static assets.
So like a rock for instance that just sits there would be a “static teture”

However for moving textures like a crisp waterfall then that would be more in line with “procedural texturing” which takes more computer power to create an run.


Now after hearing about these two, then I found out there’s another one called PBR which is also part of the “texturing” category…

So what is the difference here? What is PBR supposed to be that Procedural and Static Texturing aren’t?


And what catergory of texturing does the human face/skin follow?

Yeah its doesn’t have the widest range of movements like a waterfall so Im not sure it falls under “Procedural”
But its not completely static like a rock asset so Im not sure its under “static texture” either…

PBR, the Unreal Engine Specific Explanation

The shorter, more general explanation: PBR is procedural lighting using a physically based distribution function.
PBR textures are used as the inputs to this distribution function, such as color, normal, roughness, occlusion. This often means, when taking photographic references, that some extra steps are needed to derive these textures from a photograph so that the input is as clean as possible.

It’s not an extra category like “static” and “moving” textures, as either can be PBR. They are probably not even good categories by themselves… You can make a waterfall from static textures, or use a moving texture to create a multitude of rocks.

Those categories are pretty awful. Most textures are going to be either PBR or non-realistic. Then, textures are often either static or dynamic (such as a waterfall). And then they are either done by hand, procedural generated, or somewhere in between. PBR has nothing to do with a texture being static or dynamic or procedural.

Procedural in games typically refers to something being automatically and semi-randomly generated. A waterfall texture could be generated procedurally or done by hand, having motion or a dynamic texture does not make it procedural.

Also procedural is a very vague and open term, you could be procedurally generating textures before important them into the engine with Substance Designer, you could be generating them in the engine using the Substance Designer plug in, or you could be procedurally generating, blending, or editing textures using the material editor within UE4. You could easily create a material that procedurally places extra dirt where there is ambient occlusion, or procedurally blending rocks with the terrain, or procedurally generating a flow map from a river to have the water flow around rocks.

There’s special shaders for certain types of materials like cloth, foliage, hair, skin, translucent/transparent materials, there’s plenty of documentation on the wiki.

is right. Those categories are mostly arbitrary, but procedural would technically be a material with customizable parameters that allow it to be altered.
PBR is just a material type intended to create a physically accurate appearance. It’s been the standard type for years now.

So would a PBR material be the proper term for realistic materials used in films?

Because Ive mostly only heard the term PBR thrown around mostly in the game engine community?

No idea, I don’t do VFX.

So would a shader be a term that is engine specific?
And the process would be for example to create a material that is
PBR,Static, Procedurally generated which creates Material A
and then after all this the resulting material A, would be set up in a specific engines “shader” to then render correctly?

So with Material A we could set this base material up in pretty much any render engine so long as we set up the shader correctly?

PBR is a term for video games, in visual effects they have been using physically accurate materials for years–renderers like Mental Ray and Vray have always used them. Games haven’t tried to do that until recently because it took extra processing power.

Shader is just the code that describes how the 3D model is shaded. Some engines and 3D software has the option to read common shader code, but most of the time you’re working with something unique to that software.

Film sometimes uses the terms physically based lighting and rendering. Disney and Pixar have released papers and videos using the term recently, but it is correct that film has been using tech similar to physically based rendering for much longer than games.

Personally I use the term materials to describe most materials in UE4, but will sometimes call them shaders if you are changing the shader model settings or writing one from scratch.

I believe a shader defines the rules for how an object is rendered, such as toon shading, and a material is a combination of both the shader and the various texture maps.

A material just references the shader and allows you to adjust whatever settings the shader allows you to change. One thing I really like about UE4 is that you don’t have to mess with shaders, each material can be unique for what you want to do with it and you don’t have to create a shader and a material for every different thing you want to do.

Oh?

To what extent would I not need to set up shaders for the materials Im creating?
If say I am mostly making my materials with and Substance Painter

If you’re working with /Substance they will generate textures and then you would create a new material in UE4 and plug those textures into the correct slot. You don’t have to manage shaders at all in UE4, you have a massive amount of customization you can do in your material.
In something like Unity, if you have a different way you want to use your textures (for example combining several grayscale textures into a single texture by putting them in separate color channels) then you would have to create a new shader and code it to how you want to plug in your texture, and then you have to create a new material that uses that shader.

Okay awesome,

Ill mostly do the texture generating in and Substance.

Just curious though, can UE4 do this as well?

If so, would we be going through the same workflow as in Unity?

The UE4 materials offer the vast majority of things that you would normally code a shader for, but I do think it has the option if you know how to code a shader to be able to do it yourself. Besides, the source is available so you can pretty much do anything.

But no, it wouldn’t be like how you would do with Unity, it would be more technical. Unless you’re a shader artist then you won’t need to worry about that. Like I said, one of the big advantages of UE4 is the material system and how much it offers along with how easy it is to use.