Rocks Path Breakdown

Making Of / 15 January 2020

In this post, I will share my workflow to create the following render:

Step 1

I started with a small terrain procedurally generated in World Machine. I used the default nodes, but I tweaked some parameters and changed some curves until I get the desired heightmap.
After a good result, I created a grid in Blender and used that heightmap in the displace modifier. Then I converted to a mesh and made small changes over the surface. It's nice to add a subdivision surface to smooth everything to allow you to read every curve and see if it's smooth and gentle, like in nature.

Step 2

I duplicated the terrain and positioned along the Y-axis to get more variation and more depth. It's the same mesh, but in another angle.

Step 3

Lighting! I didn't want to create a super bright environment, with a clear sky and a strong sun, so I tested a lot of HDRI files and I found a nice one at It was a little bright, but I changed the exposure and changed the angle to fit in my camera. Here is how it looks like:

Step 4

My gray ground deserved a texture, so I searched online and tested some textures, applied some materials, and tweaked colors. This is my base texture:

Step 5

I started adding details: from large rocks to really small ones, trying to find a good balance. I also added the background forest, it's that plane over there.

Step 6

Since I added a forest, I thought that should be nice to scatter small details over the surface. For example dry leaves and small twigs that could be carried by the wind. To do that, I duplicated some polygons over the terrain and assigned a different material to it. I got some textures with alpha channel on MegaScans. I tweaked my UV and created the material. Here you can see a preview in Eevee:

Step 7

Now I rendered the preview image using the same setting for the final image, but a smaller image to render fast. With that preview render, I've found some areas that could have more detail and fixed it.

Step 8

After I detailed work in Step 7, I rendered the final image with the original size and a decent number of samples.

Step 9

I imported the in Darktable to do the final adjustments. I could have done it in Blender Compositor, but Darktable is easier to use - actually, I wanted to see how the last version looks like. It's a free and open-source project, check it out!

  I added a subtle vignetting, a grain effect, and corrected the colors, I wanted to give the feeling of a cold area, but the colors were warmer. After that, I saved the final image, which is the first image in this post.

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.