Creating Procedural Snakes in Substance Designer

Creating Procedural Snakes in Substance Designer

Anna Koroleva discussed how she worked on the shapes and details in her Snakes Material made in Substance Designer.


Hello. My name is Anna Koroleva, I‘m from Belarus, Minsk. For the last 5 years, I have been working as a 3D artist. My last job was at Vizor games, where I worked as an environment and material artist, first on the mobile game Zombie Castaways, and then on an unannounced project for PC and consoles.  Now I’m on a break from office work, to improve myself as a 3D artist. In a few months, I’m planning to go freelance.

Actually, I don’t have any proper higher education in 3D or even in art (except for the occasional drawing courses and working as a freelance photographer while I was a student). I graduated from the Biology Faculty of the Belarusian State University with a degree in molecular biology. After university and a year of work, I realized that I couldn’t earn enough money for a living working as a research assistant in Belarus (my salary was up to 200$/month, in Belarus you won’t die of hunger with this money but that’s not enough for comfort living). So I decided to reeducate myself into a 3D artist and find a job in the gaming industry where salaries can be much higher. I also have chosen this profession because I’ve been playing computer games since I was a child, and I do love games. I have been always fascinated by games that have beautifully made living worlds. Besides, quite a lot of online 3D art courses and tutorials appeared on the internet by the time I decided to switch my profession. 

Discovering Substance Designer

I first got acquainted with Substance Designer when I just started my career in 3D. I quickly realized how powerful this program is for creating any tiling textures and patterns but I had to abandon it for two years because I had no practical need for it at work. Fortunately, there was an opportunity to become a material artist on the last project I was working on. So I started spending about 8 hours a day in Substance Designer and Unreal Engine material editor, sometimes alternating “materials” tasks with creating environment parts and weapon sculpts.

Working in Substance Designer for me is similar to putting together a puzzle, it is a very logical and user-friendly program. When creating a material, I first mentally disassemble the reference into its components, think over the order of the graph parts, what shapes and nodes are better to use for achieving the desired result. Of course, I spend a lot of time on experiments and just dragging the sliders in search of the best result.

1 of 5

Snakes Material: Idea

The idea to make the Snakes material came to me about a year ago. With this material, I wanted to study how to create elongated curved shapes and how to layer them. I chose the African bush snake as a reference because it looks a little bit cute comparing to the rest of the species of snakes. I was also afraid that the material would look disgusting and repulsive for people who have a snake phobia.

Creating the Shape

I picked up a lot of information for this material from the amazing tutorial Advanced Shape Creation in Substance Designer by Eric Wiley. I recommend everyone to watch it.

The original idea was to create a snake segment and tile it with splatter circular node. Also, it was necessary to separately create the head and attach it to the body using transform 2D. But in the process, I discovered that splatter circular is not able to tile segments as I needed. So, I googled a node that could correctly tile the segment along the path and came across Ilya Kuzmichev's node. I used only one of the ways of how it could work. In general, this node is able to tile segments along the line set by the curves node. You can adjust the amount of segment repetition, offset, and thickness. It is also possible to set the curvature of the path by points directly inside the node and make various curls. 

The rounded snake was made with linear to polar node.

Detailing and Coloring the Snakes

Making the scales was the easy part, I just made one scale and tiled it with the tile sampler. For the head, I adjusted the scales direction using one of the normal channels of the head shape and put it into “rotation map”, then I mirrored the result. I blended the scales with the main shape through subtract. The eyes were also made using shape, non-uniform blur, transform 2D, mirror, and blend.

I made each snake in a separate subgraph to ease the load on the computer. I also made outputs for random grayscale ID, masks for eyes, belly, and other parts. Later these masks will be useful for creating a base color map. The part of my graph responsible for layering the snakes is almost entirely done according to Eric Wiley’s tutorial. I made a node that helps me to move and scale the snakes. Every snake was laid out manually with this custom node in order to have more control over the shape and intersections of different snakes. To layer one snake above another, I used shape splatter node because it takes into account the height of the lower layer. With splatter node and darkening the place of intersection on the bottom snake, I almost got rid of the stuck geometry effect.

I also blended the masks for ID, eyes, belly, etc. so that they matched the heightmap. As a result, for the base color, I just had to paint the right body parts with the right colors using these masks. To make the snakes different from each other in the base color, I used grayscale ID that I turned into random color with a gradient map. To add depth and shine to the eyes, I made them almost white in the metallic map. I also included the edges of the scales in this map. It is, of course, against the principles of PBR, but it gave me the desired effect while rendering. For the base color, I used gradient maps made from the heightmap and noises, took color from the references, and then mixed 2-3 gradients together. For the roughness map, I utilized all the same masks I used for the base color, but in the end, I made the snakes much shinier than they are in real life, just because it was more beautiful that way.


Marmoset is perhaps the most convenient program for rendering, it’s not complicated and gives you the possibility to quickly set up lighting. With proper settings, it gives a result no worse than you can reach with V-Ray or Arnold.

A good render setup and presentation is responsible for the main impression of the work. While rendering for portfolio, I usually use displacement, set high resolution in the viewport, use high-quality reflections and GI, and blend the AO map with the rendered AO. I also use focus blur and sharpness. Most of the time, rendering for me means playing with lighting and position of the object. After rendering, I correct the colors and contrast in Photoshop if it’s necessary. Almost always, the result in SD render viewport is different from the result in another render. Usually, I have to adjust textures for a particular render program. If I was making a material for a game, I wouldn’t take into account the possibility of using displacement and would also consider the engine rendering features and technical requirements.


As I mentioned earlier, the main challenge was the snake’s shape. It took me some time to tile the segments properly, and perhaps this material wouldn’t have happened if I hadn’t found a ready-to-use solution on the internet. These days, you can find an answer to any question or a pre-made solution or, at least, instructions on how to do everything yourself just by googling the information.

Learning Substance Designer

I’m not sure what the most effective method to learn Substance Designer is, but I personally started to study the program with tutorials available on Substance Youtube channel. I also experimented with nodes and looked at other artists’ materials. In my opinion, the tutorials and materials by Daniel Thiger are really useful. Also, a lot of Substance graphs that can be used for studying are available for download on Substance Source. For me, the process of making some new challenging materials consists of experiments, watching tutorials, and googling the answers.

Anna Koroleva, 3D Artist

Interview conducted by Arti Sergeev

Keep reading

You may find this article interesting

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more