Skip to content
Home » PBR Maps – Diffuse, Normal, Roughness, Displacement

PBR Maps – Diffuse, Normal, Roughness, Displacement

Spread the love

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.

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:

texture haven

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:

maps

Here’s what they should look like in the folder:

maps in 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:

Add a Grid

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:

Add a Material

Now you should see the Principled BSDF material added:

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):

Add the Diffuse Map

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):

diffuse map

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).

Your Panda3D Magazine

Make Awesome Games and Other 3D Apps

with Panda3D and Blender using Python.

Cool stuff, easy to follow articles.

Get the magazine here (PDF).

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):

Add the Normal Map

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:

normal map

If you orbit around the grid, it will still be flat, though:

normal map

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):

Play with the Light

Now move the light 2 units up on the Z axis by hitting G Z 2:

Play with the Light

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:

Play with the Light

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):

Play with the Light

Python Jumpstart Course

Learn the basics of Python, including OOP.

with lots of exercises, easy to follow

The course is available on Udemy.

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:

Play with Roughness

You can now play with this value. If it goes down (A), the bricks get shinier (B):

Play with Roughness

If the value goes up (A), the bricks get rougher (B):

Play with Roughness

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):

Add a ColorRamp

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):

Add a ColorRamp

When you’re done, drag the two handles to their original positions.

Blender Jumpstart Course

Learn the basics of 3D modeling in Blender.

step-by-step, easy to follow, visually rich

The course is available on Udemy and on Skillshare.

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:

Add the Roughness Map

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):

Add the Displacement Map

Below the Subdivision Surface modifier, add a Displacement modifier:

displacement modifier

Hit the New button and you will see that we can now use a texture:

displacement 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):

displacement map

Now you will see actual displacement:

displacement map

You can orbit the 3D Viewport to see it even better:

displacement map

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:

displacement map

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.


Spread the love

Leave a Reply