Check out Simon Tremblay Gauthier talking about the way he designed a cool project, which allows generating pretty ground materials in Substance Designer.
This project actually originated from a more specific Substance Designer graph I was working on, a dirt road. While I was exposing parameters to make the dirt road customizable, I realized that by blending the different elements of the substance together in different ways, I could create a rather large amount of variety with this single graph. There came the idea to refactor the graph into a “ground generator”.
I added a few more elements and exposed additional parameters that would give me the control to create all the variations presets shown in the GIF.
All in all, this took about 4 days. The original road Substance took me around 2 days. Refactoring the graph and exposing all the parameters took about a day. I then spent another day working on setting up the presets, renders and presentation.
Original dirt road substance:
I always start with the height map and it’s also where I will spend most of my time. This is very important, attempting to jump into color and roughness maps too early while the height map isn’t completed is a recipe for disaster. If the height information isn’t correct, the normal and ambient occlusion will also look wrong and a whole bunch of issues will occur.
I analyze some reference images and try to identify all the different elements I will need to create. I then start building each element separately working my way from the biggest shapes to the smallest details in that order as much as possible. I try to make sure I account for all “level of details”: Large, medium and small shapes as well as surface detail. I won’t start working on other maps until I am satisfied with the height, normal and ambient occlusion.
One of the key challenges in this kind of material with a lot of different elements is figuring out how to blend all the different elements together. I had to think about the order in which the elements are gonna be blended one on top of the other. For example, in this material, it was interesting to blend in the rocks before the grass. This would give the grass some much-needed volume and would create an interesting effect as it overlayed on top of the rocks.
I used quite a few different techniques to create the various elements. Here are a few examples:
Most of the smaller elements were created using this workflow:
Here is the clovers height map generation portion of the graph as an example:
The full organized and commented graph SBS file is included in my Gumroad release.
This kind of style between realism and stylized is something I’ve been experimenting with. I don’t really have a personal preference for either style when it comes to games I play. I find each approach has its own merits and I have been trying to incorporate elements of both styles into my work.
The way I build my height & normal maps is a bit closer to realism with a lot more details than you would usually find in a stylized texture.
On the other hand, I will often go for an Albedo map that’s much closer to what you would find in a stylized texture. I use very bright and saturated colors blended together using simple gradients. I try to stay away from incorporating too much noise or grunge.
I let the height/normal information do most of the work when it comes to smaller shapes & surface details and intentionally omit to include these in the albedo. I find this can give a rather eye-catching look. The lack of noise in the albedo makes it easier to “read” the shapes and can provide some much needed “eye rest” in-between all those height/normal information details.
Since the material is composed of many different small elements that needed to be spread around, one of the nodes I used the most was the “Tile sampler”. While it’s a widely known and used node by everyone using Substance Designer, I feel some of its features are often underused.
This is a bit hard to explain but I’ll do my best:
This kind of masking technique is why I find the “mask map input” of the tile sampler very powerful when compared to a simple blend that would “cut off” the height information.
The vines were one of those fun unexpected results you often get when working procedurally. I had set up a few parameters to control the size and warp intensity of some branches/twigs. While tweaking these parameters I accidentally ended with something resembling vines found in overgrown environments. I liked the effect and decided to push the idea further, creating a few more variations presets to include them.
I don’t know about a full environment, that really depends on the scope of it but the substance is quite versatile. Those 36 presets I provided were all created in the span of a few hours once all the parameters were set up. A simple drop-down menu allows to access those presets:
I left a few simple parameters accessible to the end user to tweak those presets:
Shall even more modifications be necessary, the full 150+ parameters that I used to create the presets can be accessed by using this “Dev mode” option.
These extra 150+ parameters allow for a ton of flexibility but they might not be as user-friendly… hence why they are hidden behind a “dev mode” but they are accessible nonetheless.
I originally tweaked these materials for some beauty shots in Marmoset Toolbag but they should be pretty much “good to go” for any rendering engine that supports PBR and metalness/roughness workflow.
Some slight tweaks to the roughness map might be necessary depending on the rendering engine and lighting you are using. While doing test inside of Unreal I found the results were a little bit too glossy for some of my presets. A simple level to bring some roughness values a little bit closer to white did the trick.
Here are a few random screenshots of tests in Unreal. I’m using some of the presets that I modified slightly, blended together on a simple terrain:
The commented Substance Designer graph, the textures in 2048×2048 TGA format as well as the Marmoset scene used for the renders are all available for download on my Gumroad page.
I will eventually be updating this with a version that includes those slight tweaks and some new presets.
It was a pleasure to write this little article for 80.lv about this project! If you have some questions or want to reach out to me for whatever reason, you can contact on Artstation