3D Artist: Francesco Furneri
Project: Making Of: Procedural rocks with details in Substance Designer
Software: Substance Designer, Marmoset Toolbag
Project Link: https://www.artstation.com/artwork/JlP4km
Hi there, my name is Francesco Furneri and I'm a 3D artist with more than 10 years of experience in the 3D computer graphics field and specialized in 3D modeling and Texturing.
I worked in 3D companies as modeler, sometimes with the role of technical arstist and I have been specializing in texturing for quite some time at the company I currently work with.
At the same time, I have an activity as freelancer in the States, dealing with 3D organic modeling for characters and prop texturing.
Without getting into furher details, my knowledge is a mixture of technical and artistic skills, that are the results of my previous studies in Computer Science (Bachelor's and Post graduate Degree at the University of Turin- Italy) and in 3D Computer Animation (Master of Science Degree at the University of Kent - England).
In this article I would like to share some aspects of my last project with you: entirely made in Substance Designer with the detailed description of my workflow as well as the breakdown of some parts.
I want to thank treddi.com for giving me the possibility to share this article with you and I really hope that you find this description useful for your ongoing projects.
First of all, the tool!
Substance Designer: here it is! A wonderful software that can appear, at first, a bit tough and difficult to learn but it really has lots of potential for producing materials.
Amongs the different workflows, I personally adopt the PBR metal/roughness, which allows me to have good freedom and simplicity while creating my materials.
In a nutshell, Substance designer is a node based tool, where every node has precise inputs, it works for a specific purpose and it outputs a result that can be used as input for other nodes, and so on to the final result.
When I plan my projects, I always organize my elements in blocks, with a proper description, in order to make everything clear from the very start. In the following figure, there is an example of network that produces simple base debris.
Many many references!
Before starting off on Designer, I spend a bit of time collecting as many references as possible, even spending 1 hour of my time on the Internet. This works fine because it gives me a precise idea of what I want to produce.
I usually download a bunch of images and a few close ups, in order to study the subject.
Many times, if I find interesting elements in different references, I merge them up to give a touch of creativity to my projects.
Regarding the current work, the idea was to create a single tile to show in my portfolio, with different details that are:
- Main rocks (the big ones)
- Medium rocks
- Tiny rocks
- Leaves and debris
- Cigarette butts
You will find a high res image at the following address: https://www.artstation.com/artwork/JlP4km
Here is the final result, mapped on a cylinder:
The idea behind the big rocks was to emphasize the shapes and the erosion effects, due to the weather conditions.
While I prefer to use the tile sampler when I have to scatter objects in space (e.g. cobblestones), in this case I followed another solution by modeling rock by rock, so that each of them appears different from each other and positioned in a different and random spots.
Each rock has its own features and position: all around, you will find scattered material produced by the use of the tile sampler in Substance Designer.
I would like to describe the graph used to build the rock in foreground.
- We start with a simple square shape on which a slope blur function is applied. That helps create an irregular effect at the edges
- At this time we apply several transformation nodes to obtain a more vertical shape. This is achieved by the Directional Warp node, that models the changes of the shape along a precise direction. we add a series of 2D Transformation nodes to the chain to manipulate the shape in the 2D view. Other erosion effects on the edges are made by different blending nodes (Subtract / Add, Sub, Overlay, etc..)
- For erosion details, I took advantage of a cloud map to which I applied a directional warp to create the following pattern. The result was then blended on the rock and a fractal sum noise was applied to get high frequency details
- After a series of similar steps, here we have the final rock. I also wanted to produce some variants (some not utilized in this project but stored in my personal collection for future purposes).
I quickly show you the final results
Mid / small rocks and leaves
For this kind of process, the technique is based on scattering the elements around the big rocks and randomizing in a natural way.
To accomplish this task , the Tile Sampler is the tool we need: a powerful node to distribute elements in the space, based on several input parameters.
With the tile sampler we can:
- set up the quantity of the elements to scatter
- define the scaling of the single elements
- randomize the distribution and the transformation of the single elements
- define a flow map (vector map) around the objects
- Mask areas to avoid or to allow the scattering in those parts
and much more!
For the rocks, as well as the leaves, I tried to achieve the most natural distribution, with dense areas against bare ones.
My advice is to try and retry many times without stopping at your first result.
In order to create clusters in circular shapes (e.g. blades of straw, leaves, etc.) there is a node called Splatter Circular, that shares a few parameters with the tile samples but it scatters the objects in circular patterns ( e.g. petals around a flower).
This is the funniest and the most curious step that I could experiment within Designer.
I started by observing further references of common elements in environment.
I knew there was something else to add, in order to complete the project and the cigarette butts crossed my mind.
I scattered the butts with the Tile Sampler and I built the cigarettes from scratch with interesting nodes.
Here are the most used ones:
- Directional warp: to modify the cigarette butt shape
- Non Uniform Blur e Slope Blur: used to create details and irregular patterns on cigarette ashes
- Gradient nodes: series of nodes to define a gradient to cut the cigarette at the extremes. The cuts can be sharp or smooth
- Histogram scan: mainly used to create masks (coloring the cigarette parts), or to set the brightness and the contrast of the noise maps, used for the cigarette ashes
- Histogram range e auto levels: used to modify the histogram by shrinking and spreading the luminance range. In the specific case, I used them on the height map to scale the height of the cigarette butts
- Bevel: useful for smoothing the edge of the cigarettes.
A word of advice, in order to create any procedural shape, is to use the couple Gradient + curve node, where the former defines a luminance range, whereas the latter remaps the gradient with a custom curve: this is mostly used for the creation of custom height maps.
Furthermore, to lay an object on a surface in a smooth way, you can take advantage of the Non Uniform Blur node by blurring the terrain with the cigarette shape. After that, a blending operation (Add) must be used to integrate the 2 parts so that one part perfectly sits on the other.
I wanted to experiment 2 different looks for the terrain:
- a dry solution
- a wet solution
The procedural creation starts from a precisely treated and modified cloud map, with some added imperfections produced by observing other photo references.
At this point, there is another Substance Designer node popping up, which is extremely useful in this situation, where the forementioned elements need to merge into the terrain. the Height Blend node comes in handy!
It is a recent add to Designer, where 2 grayscale inputs (terrain and various elements) are connected and the merge,between the two, is automatically performed with a simple slider: sometimes the terrains overlaps the rocks and it creates a natural effect.
In my project I didn't want to push the effect to the limit but I slightly applied it to merge the two parts.
See how the square rock, at the top, is partially covered by the soil and both the terrain and the other elements appear well integrated.
Talking about the different terrains, as I said at the beginning, I wanted to experiment a drier look and another one with the presence of water and reflections.
Here Designer helps us by introducing a recent node called Water Level and, as the work suggests, it checks the height map info to decide where to put the puddles and the wet parts: everything achieved by a series of cool parameters. This is fantastic, isn't it?
With this node in mind, for instance, you can set the transmittance effect in the refraction and so you can make the water appear darker as the light ray moves deep into the water and light is absorbed and scattered.
See, in the indicated areas, how the water level seems to make the rocks appear underwater (e.g. the small stone at the bottom).
In this project, as you see, I wanted to test the Water Level node but it's always possible to create a custom effect of submerged objects: you can simply skip the calculations of the normals in the wet areas, compute a low roughness for those areas too and maybe you can insert some caustics and waves with painted elements that suggest the presence of deep waters.
Time to color!
Once the procedural creation of the terrain has been finished, it's time to think about the albedo.
A common mistake that usually occurs during the texturing, in my honest opinion, is to underestimate the micro variations in the tones that every object in nature shows: even if an object seems to have a single color, it has a series of shades that should be taken into account, unless you want to exhibit a total cartoony look.
3D artists, painting with tablets, perfectly know that creating realistic and compelling objects requires the use of layers to define all the micro variations and imperfections (e.g. the mottling pass in the skin helps break up the monotony and helps achieve a realistic goal).
The same concept happens in Substance Designer.
The next images, in relation to the main color, make the process easier to understand and they represent the basic idea behind the complete work, so they are quick snapshots (not at the max resolution).
Considering the texturing for the big rocks, my approach is basically the following:
- First Pass. Random grayscale color on the single rocks, where each rock has almost its own grey color
- Use of the Gradient Map node to remap the gray with a uniform color. The color can be chosen from a color palette or sampled from a reference image: the last solution is the one I personally prefer
- Second pass. Grayscale map that is the result of the ambient occlusion map combined with another procedural map (e.g. dirt map, grunge map, etc). Use of the Gradient Map node on the generated map by sampling the values from a reference image
- Third pass. Generation of a Curvature map to capture the concave and convex areas: the result will be used in the multiply blend mode with the color map, to give more contrast to the albedo
- Blending. Combination of passes number 1,2,3 with different blending modes to get the final result (in the following image you also see other terrain details)
To sum up, you can follow the previous steps and eventually you can interleave more custom passes. The point is to get an interesting variation in the tones and create an acceptable level of realism.
At the end you can apply other nodes such as HSL, that allows you to set the saturation or the global brightness of your albedo map.
For the following renders I applied different versions of the albedo map and the HDR helped me set up a proper environment.
Render and mood
Many 3D artists love Marmoset Toolbag when they show their projects built in Substance Designer and I must say that I love it too then I decided to integrate that tool in my workflow, obtaining good results in very short times.
I like to try several render solutions, I change the lighting to catch a specific mood, that I usually plan in advance and the render progressively converges to a final result.
Furthermore, in my presentation, I often add the cover image as a material mapped on a sphere or a cylinder, I try to light areas by capturing details and I try to create contrast areas in penumbra (semi darkness), to evaluate how the material reacts to the general lighting in the scene.
Soon after that, I add close up images to capture more details and generally change the lighting to create my favourite moods.
All of the following images can be seen in high res at the following address:
In my project I wanted to create:
- a dry terrain, with a brown key color, in order to make it even drier.
- a wet terrain (like deep in the undergrowth), where the presence of a gobo projecting a tree shaped shadow on the ground and the presence of green parts, suggests that we are close to a brook
- a completely different atmosphere, night time, with the presence of a strong volumetric key light so as to indicate that there are some car headlights or some artificial lights
- A gloomy atmosphere, focused on capturing the soil humidity
- finally a daytime atmosphere, without a visible key light but with naturalistic look, like a day with the cloud cover
My advice is to try several solutions and select what you like the most.
This paragraph brings up to the conclusion and I hope you find the article interesting.
With this idea in mind, I'd like to give you a few more suggestions
- Start off with a clear idea about what you are going to produce and use your reference images. Spend a bit of time on those images before starting to work with Designer: it's better to begin with the right step. Your concept / visual references are your friends... don't hurry up! You might compromise the qualty of your work.
- Once you get used to Substance Designer, try to improve your knowledge with the functions and the nodes that you already know and exercise with new materials. New features can be learnt day by day and they are related to the type of material you need to produce.
Don't worry to memorize many nodes, there is a well written guide on the Allegorithmic Website (Documentation) . Reasoning in terms of digital sculpting, in Zbrush, there are artists that, despite using a limited set of brushes, they are able to come out with masterpieces. So in Designer you can reach great results with a well defined set of nodes.
- Dont' worry to redo your graph if something goes wrong: Substance Designer allows you to easily modify some parts and to adapt the network consequently, as long as your network is robust and well built.
Furthermore, you can test different variants in the output of your network with some slight changes in the inputs, that is awesome!
- Dont' worry to make tileable textures: Substance Designer is great because it has the ability to work with tiles without visible seams for you. The only nodes that break the continuity are the Transform 2D nodes but Designer comes to the rescue by introducing the safe Transform nodes.
- Be proud to build modular networks: this simplifies how you keep your project organized, even for your future works, where you can build up a custom library.
For instance, in this project I built a main graph, made of subgraphs: the cigarette butts as well as the leaves, are an example of networks that are recalled in the main graph.
if you liked this article so that it helped you understand a bit of my workflow in Designer, put a like and follow me at my Artstation profile page:
For any question or interest in the topic, feel free to drop me a line at: