Alexandr Nechitaylo shared the way he creates amazing 3d materials with Substance Designer.
Alexandr Nechitaylo shared the way he creates amazing 3d materials with Substance Designer.
Introduction
Hello 80.LV. My name is Alexander. My profession is an aviation engineer. In my youth I was really inspired by computer games, so I began to study 3D modeling. I’ve worked on architectural visualization for several years. After that I went on to the development of mobile games. I worked in Moscow for a few years. And now I live in Saint Petersburg and work at the studio Sperasoft, where I work at AAA shooter as a level artist.
Learning Substance Designer
In developing computer games, I have always been keen on creating game environments. Creating textures, environment models, setting up the light. For quite a long time I started the process of creation the textures with sculpting in ZBrush, with the following texturing in third-party programs. I still use this approach, but it has a number of disadvantages for me. There is a necessity of baking maps, possible problems with tiling, difficulties with correcting or improving the texture.
I was absolutely fascinated when I first saw Substance Designer. The main advantage of SD for me is the possibility to change anything and anytime just with a couple of clicks, in combination with the possibility to see the result in real time, and the absolute freedom of actions to create forms and their modulations. And these are the most important reasons to switch to full texturing in SD.
Procedural Way
Scanning gives amazing results when it comes to realism and speed of production. However, the process of correcting and modifying the scanned textures seems labour-consuming to me. There might be also a question of stylized graphics where scanning will not help. In SD, having made one quality generator of shapes, I basically can have an infinite number of its variations. So, having made one quality generator of brick laying, I have an infinite number of variations of brick laying of any sizes, colours, textures with slight changes of the original graph. It is also very convenient when it is necessary to make variations of the same material for blending in shader. For example, the concrete with different rate of soiling and destruction. All this you can do in one project with a couple of clicks. With creating quality generators for different types of surfaces, gradually the work turns into combining them to reach new results. There is no need to create the same thing every time. Source projects weigh nothing. You will never go wrong with the size of textures. You can adjust textures according to the needed definition at the output, for instance, adding or reducing detailing.
Concrete
For me, the main goal of creating these materials was to understand how close to real life the result can be that I can get with SD. I continuously try to find the limits, but the more I work, the more I realize that SD just has no limits. I usually start working by looking for good references. I break the surface into component elements, for example, cracks, small chips, stones insertions, and other elements which I can create with different generators. Every texture of concrete has two main elements – the main surface and the destroyed one, and some additional ones, cracks, small stones insertions, small chips, pores and so on. The most difficult task was to make most naturally looking textures of destroyed and unbroken surface. For imitating different surfaces, I usually create a separate generator. I rarely use standard generators of noise to create surface texture, because they bring plain and boring result, as I see it.
As an example, this is how the generator of the destroyed surface looks like:
I start with a simple basic shape. I modulate it to get an interesting organic form. I mix it with different noises. And in the end, with the help of tile-generator node, I’m filling the whole surface with this shape. Probably there are other ways to achieve good results, but I have found this one for myself. This is how the result of the work of such assemblage looks like:
To get masks, on which the mixing of different types of surfaces will take place, I use similar assemblages. For example:
As a rule, I make a lot of iterations of modulation to get the required detailing. I use Slope Blur Grayscale a lot, with the variety of generators of noise of different sizes. I use similar assemblages to give surface layered dimension.
This is an example of the work of mask with mixing two types of surfaces:
As a rule, I make Albedo with the help of gradient map nodes. I usually make several gradient maps with different colours, and mix them on masks until the required colour variation is found. Then I add various layers of mud and diversities. To highlight the shape of the surface in albedo, I usually use masks based on Cavity and Ambient Oclusion maps, making certain parts lighter and darker. For both cases I use Add Sub blending mode. To my mind, this blend mode works in both cases most natural and accurate. The most important thing is not to add these effects too much on albedo, the texture can become much less realistic.
I usually get roughness from the ready-made map of albedo, desaturating and correcting it a little be levels. I sometimes mix it with the heightmap and blend with different shapes for adding necessary details.
As for a normal map, I like adding a little noise to it. I get the noise by desaturating the final albedo map through the node Normal with a little value of intensity. Then I combine original and resultant normal map in the Normal Combine node.
Upgrading Material
The further development of these materials is limited only by your imagination. You can add any procedural elements. The time of reworking will be equal to the time of developing of a new layer, whether it is procedural armature, grid or brick laying, and so on. In case you have sufficient base of previously developed generators, the process of reworking will take a little time.
Masonry
I do not have any special secrets in this case, and I think, I am far from a perfect result. At this point, the main work is done by masking groups of stones and specific settings Slope Blur Grayscale and blending with Cells during the first steps of forming.
It looks something like this:
I make color masks with grey color levels. Then I expose the same texture to the chain of effects, similar to the method of work, but different in configurations. After that I put the results back together using masks and Blend node. It turns out to be an interesting and diversified form.
After that I use a lot of Directional Warp, Slope Blur and mixing with noises.
Using Toolbag 3
I have been working with Marmoset for quite a long time. I really like how it works with light and its abilities of shader. It is also very convenient and easy to use while setting up the “artistic” light. And this is one of the instruments which quickly allow you to get the required result. Now I would like to try rendering materials in UE4.
Light
The modern approach to the light and materials in games, the technology PBR itself makes life easier for today’s texture artists. It is necessary to adhere to certain rules. It is very difficult to advise anything specific, because in different engines the light works in different ways. But a properly made PBR material works with any light, and it works correctly in different engines with some tweaks. Of course, if the light is set up correctly as well. Don’t make normal map too strong, add too much of AO and Cavity in Albedo, make it too dark or too light, and do verify your materials with PBR charts. Most importantly, the material must look natural.
In my point of view, SD is a kind of a revolution in the game texture production. It is not too difficult to master, but it takes a lot of practice. Despite the fact that developing realistic materials is the task which takes quite a lot of time, the result gives an incredible amount of advantages in comparison to traditional approach. You have an endless number of variations of the same material, they are very simple to refine and change. You can use quality heightmaps that you made in SD or other applications such as zBrush. You can control the quality of material tiling, the level of detailing and you can see the result of your work right away in PBR on the fly. It saves plenty of your time and allows you to focus directly on material refinement. You can use your sculpts from zBrush in SD, which also increases the speed of developing textures.