Procedural Asphalt Texture Breakdown

Making Of / 16 July 2019

In this post, I will show how I made this asphalt texture using Substance Designer. 

I used Substance Designer 2019 to create this texture. You can also use preview versions, but some nodes might not exist.

Step 1: Grayscale

The first step is to create a grayscale image. This image is the base for creating other textures maps such as normal, diffuse, roughness, height, AO, etc.

Therefore, it's important to create some level of detail since all the effort invested in this part will also contribute to the creation of the next textures.

I like to mix different types of noise maps, so I can create a good variation and make things more realistic.

These are all the nodes used:

The objective is to combine everything. The result of a blend is mixed again with another blend. I do it until the variation looks good enough for me.

I like to think about iterations. For this texture, I iterate 3 times.

After the 3rd iteration, I got a good variety of large and small details. It's time to go to the next step: the cracks.

Stop 2: Cracks

The plan is to add two types of cracks: large/deep cracks and small/thinner cracks. The amount of cracks will be exposed so the user could tweak the texture and create variation.

The most simple way to create cracks is by using the Environment Toolkit, available for free on Substance Source.  It can be used to create wood patterns, cracks, small rocks, etc.

When dealing with cracks, you can control the size, amount, disorder, and rotation. I used this setup:

Distance is the exposed parameter.

Step 3: Small Details

Still using the Environment Toolkit, I created a small rock to splatter the texture.

I used the Splatter node to splat the rocks. Splatter is similar to Tile Sampler node, but it's easier to use, in my opinion.

After splatting I blend the output with a Clouds 1 node to give color variation.

Final Step

Now it's time to blend all the grayscales maps and use that to create to the others. Here is my final grayscale:

The next map is the base color. It's pretty simple since the grayscale map already has a good variation.

I plugged an HSL node to allow the user to tweak the colors and create variations. This is the final base color:

I used a Levels node to output a nice grayscale to create the roughness map and an Ambient Occlusion node to create the AO.

I also created a package that contains 3 4K texture presets and .sbs and .sbar files to use in engines like Unity and Unreal.

It's just $4.99 and you can buy on my ArtStation store.