Today we’ll be talking about Physically Based Rendering maps, or PBR maps for short, and in particular about the diffuse, normal, roughness and displacement maps. I’ll be using the 2.90.1 version of Blender.
Table of Contents
Step 1 – Download the PBR Maps
We need PBR maps to work with, so let’s download some. If you want to follow along with the same PBR maps I’m using, you can go to texturehaven.com and find the large_red_bricks texture:
You can see all the available PBR maps on the right. We’ll need the diffuse, normal, roughness and displacement maps, so make sure you download them to your project folder.
As this is just for demonstrational purposes, you’ll be good with the 2k JPG maps:
Here’s what they should look like in the folder:
Step 2 – Add a Grid
We must apply the texture to something, so let’s delete the default cube add a grid in Blender. A grid is basically a plane with some subdivisions added to it:
Step 3 – Add a Material
We now want to add a material. So, go to the Shading workspace (A) and switch to Rendered shading (B). We’ll be using the maps that we just downloaded, so just copy the folder path to them and paste it in in the File Browser editor (C) for easy access. Make sure the Grid is selected in the Outliner (D) and hit the New button (E) to add a new material:
Now you should see the Principled BSDF material added:
Step 4 – Add the Diffuse Map
Let’s start by adding the diffuse map. This map determines the color of the texture, so in our case the brick pattern. To add the map, you can just click on it in the File Browser editor (A) and drag it into the Shader editor (B):
When you drop the map in the Shader editor, just connect the node’s Color to the Principle Shader’s Color (A). Now you should see the texture in the 3D Viewport (B):
This looks decent, but it’s just a flat image. So, let’s use the other maps to fix this.
Step 5 – Add the Normal Map
The normal map contains vector data about how the texture should interact with light. When we add the normal map, the texture will look less flat. Just like before, drag the normal map from the File Browser editor to the Shader editor and drop it there (A). In case of a normal map we don’t use color information, just the data it contains, so set Color Space to Non-Color (B).
We don’t connect a color map directly to the material. We need a Normal Map node, so add one by hitting Shift + A and then Vector -> Normal Map (C). Now we can plug Color into Color and Normal into Normal (D). In the 3D Viewport you can see that the texture got a little bumpy (E):
You can now play with the Normal Map node’s Strength to make the texture more or less bumpy. Here’s what it looks like when we drag Strength to an extreme:
If you orbit around the grid, it will still be flat, though:
When you’re done playing with the Strength, leave it at 5.
Step 6 – Play with the Light
Now we’re going to play with the light for a while to see how it interacts with the surface. Go to the Layout workspace (A), rendered shading, to see it better. Select the light in the Outliner (B). Hit Shift + S and select Selection to Cursor, provided the 3D cursor is still at the world center. This will move the light to the world center as well (C):
Now move the light 2 units up on the Z axis by hitting G Z 2:
Zoom in on the grid and hit G to move the light. Try moving it in different directions to see how it interacts with the texture, but hit Enter so that the movement is not confirmed. Instead just hit Escape when you’re done experimenting:
Go back to the Shading workspace (A). The light is probably a little too strong, so with the Light still selected in the Outliner, go to the Data Object tab (B) and set Power to 200 W (C):
Step 7 – Play with Roughness
Select the Grid in the Outliner and zoom in on it. In the Principled Shader node find Roughness. It’s by default set to 0.5:
You can now play with this value. If it goes down (A), the bricks get shinier (B):
If the value goes up (A), the bricks get rougher (B):
Step 8 – Add a ColorRamp
You can use a ColorRamp to manipulate roughness. To add one, just hit Shift + A and then Converter -> ColorRamp (A). Connect its Color to Roughness (B):
Now you can play with the black and white color handles. Generally black makes the texture shinier, white makes it rougher, so just watch how they influence roughness. Here, for example, by moving the white handle to the left (A) we added more white, thus making the texture pretty rough (B):
When you’re done, drag the two handles to their original positions.
Step 9 – Add the Roughness Map
We will use the ColorRamp to get some more control over the shininess of the particular parts of the texture. But we’re also going to use a roughness map, which contains different shades between black and white, so black, white and all possible shades of gray. The white areas will get rough, the black ones will get shiny.
To add the roughness map, just drag it to the Shader editor, set Color Space to Non-Color and connect it to the ColorRamp:
This will do the job. You can still, to some extent, manipulate the roughness by dragging the handles of the ColorRamp.
Step 10 – Add the Displacement Map
Although the texture now looks way better than before, it’s still a flat image. Let’s add some real displacement to it. We’ll need more geometry, so let’s start by subdividing the grid.
Let’s go to the Layout workspace and in the Modifier tab (A) let’s add a Subdivision Surface modifier (B). Select the Simple subdivision algorithm (C) so that the corners won’t be rounded. Set both Viewport and Render Levels to at least 3 (D):
Below the Subdivision Surface modifier, add a Displacement modifier:
Hit the New button and you will see that we can now use a texture:
So, let’s go to the Texture tab (A) and make sure the Type is set to Image or Movie (B). Then let’s click on the dropdown (C) and select the displacement map (D):
Now you will see actual displacement:
You can orbit the 3D Viewport to see it even better:
If you feel that the displacement is too strong, just go back to the Modifier tab and set Strength to a lower value, like for example 0.2:
That’s it. You can tweak all the parameters to your liking, but you now have the general idea about how all the maps work.