Introductions

My name is Michael Susha, I’m 28, I’m living in Moscow, Russia, with my beloved partner and my cat. I’m a freelance wide-range specialist: 3D artist, game developer, animator, texture artist, and sometimes even a programmer. Right now I’m working with my good friend on a project called SuperSolar, a space-themed twin-stick shooter, making core game mechanics, creating concepts and modeling assets. On the other hand, I have a few personal projects, which I developed in my spare time, including, Overcharged, a UE4-based racing game, and an RTS game. In real life, I handcarve wooden figurines, play guitar, ride my bike, and learn C++ when I have some spare time.

My background

I’ve been obsessed with 3D since school. I wanted to learn to program, but it was hard and my path was more artistic after that. First steps back then were in modding of The Elder Scrolls III: Morrowind and Command & Conquer: Generals. I did maps and locations, new adventures, and quests.

I never studied in any graphics/art school, here we didn’t have anything like in Europe or the US, and I learned all software tools on my own. Speaking honestly, I never paid to learn something new — software, techniques, pipelines — related to my work. I learned things from YouTube, Polycount, co-workers, and friends I gained working in the industry, along with the main source: experimenting in my spare time.

Later on, after school (it wasn’t a special, graphics school, just a regular school) I worked in the architectural area, doing all kinds of interiors and exteriors, and almost abandoned my dream to work in game development. My first step into games was on the game Faceless. In the meantime, I’ve started my own personal project, a racing game inspired by the good old Re-Volt. This is a game from my childhood. I just want to bring some good memories back to life.

Overcharged is a personal project, a racing game made with UE4.

Since then, I’ve been developing and leading a small team for a scientific experience: Microcosmic Worlds. It was a fantastic experience working on a VR project, which is where I’ve used Substance Designer and Substance Painter a lot. Every surface in the game was generated in Substance Designer, or later used as a layer in Substance Painter to texture objects.

Beyond that, there have been many interesting projects and games in which I’ve been involved; I’m doing games and I love my job.

How I discovered Substance

Substance came up for the first time about four years ago, when I was working in an architectural bureau. We had been doing a massive project and I stumbled upon a training video about Substance Designer that included a video with a process of car texturing. I was amazed at how easily the surfaces and materials could be made. I always enjoyed procedural and generated things, but this was a new level of capability. It was basically a new pipeline: a revolution in the way we had done things for a long time. And I was blown away. Back then, textures were picked from CGTextures.com and renderings made with V-Ray. I’m glad the progress doesn’t stay at the same place and the Substance team pushes it so much.

I knew I wouldn’t be able to find all the textures on the web or capture them. I don’t know if there’s a spaceship parked somewhere so I could find some surface references, but I knew that the procedural approach was going to be the future. Want sci-fi, realism, stylized, or anything else? Generate it. This is power. This is why I started to learn it from the early days and I still believe that the procedural approach is more powerful than photogrammetry. It gives more control, more creative freedom for what you want to do, and the variety in the final output. One more thing that amazed me: an option to click “Random seed” and see how the whole graph creates a new stone for you, or new paving, new bricks, a new metal surface—a unique one, never existing in real life, but still the same— or even more detailed—crisp, and proper.

My workflow

I’ve used 3ds Max to make the geometry, RizomUV to make clean and proper UVs (outstanding software!), and Substance Designer to generate the materials and later use them in Substance Painter. I rendered everything in 3ds Max with Redshift, made final touches with Corona Image Editor, and organized references with PureRef.

I wanted to use the built-in Iray renderer in Painter—the images were fantastic—but rendering time was way longer than Redshift, so I didn’t use it on this occasion.

Breakdown

Everything starts with references. Pick the three best references and you win the battle. Google it, look at the stock image websites, take a photo—or be creative and skip this step. When you skip the references step, you cut your chances in half, but, still, the outcome could be great; Substance Designer has proved this many times.

References

I’ve started making a fake leather from a Dynamic Cells node. I picked it from Substance Share and it saved me a lot of time on the material. DeteDirectional Warp is also a custom node, freely available from the Gumroad of the outstanding artist Daniel Thiger.

Fake leather material in-depth view in Designer

I think the most important thing I learned working in Substance Designer is that you have to work in a way in which masks are the top priority. If you have the right mask, the objective will be easier to reach.

And I also start by working on the height first. Many making-of videos on the Substance channel and different artists taught me this. That’s the same thing I’m doing here as well.

A good thing to keep in mind is that any repetitive action you do in Substance Designer could be packed into a subnode and used later. With the proper approach, you could make the same for Substance Painter, some helping material or filter, which will save you plenty of time.

One of my favorite nodes I made for myself is Blur’n’Scan: It keeps blurring and histogram scan actions all in one place, allowing me to smooth the hard edges, or shrink or expand the border—there are many uses. I’m using it here to expand the white areas and make the trenches more narrow.

Later on, I’m using Flood Fill to randomly assign different shades of gray on white areas and use with random gradient slopes, also generated from Flood Fill node. Since borders are clearly separated, Flood Fill works like a charm, giving me a freedom to randomize the pattern. Some extra noise and voila!

Using Flood Fill and noise to randomize patterns

The rest is simple when you have all the masks for the rest of the channels. For color—don’t use simple tones. This is boring, and most know it from the classical arts— never pick black, never pick white, always add color.

I’m using this for the color with HSL node. When you have simple color as an input after using a variety of blends with noises, it becomes something more than just blue or green, it becomes a tone of the color. You’d almost never see an object that has only one color all over the surface in real life.

Noises are saviors. Use them where you can and the material will shine.

For the weaving, I’ve used a Weave generator, a Scratches generator for the strand fibers and Tile Sampler to spread them on the pattern of the mask, provided by the Weave generator.

For the amp head, the weave pattern is made out of bold strings, sort of, not stripes, and I solved this by using Directional Blur, to smooth the lines, make them round instead of flat stripes.

Stripes become round with the help of Directional Blur and masks from the Weaving generator.

For the micro-surface details, I’ve used Fibers2 and MessyFibers1, blended with the masks from the Weaving generator. The output gave me braided strings. With the help of Scratch generator and Tile Sampler, strings have stranded fibers here and there.

Weaving material, display of shape and strand fibers

I’ve used Height Blend to cleanly add the stray fibers. This was the only way to add them cleanly with a soft transition to the base height.

For the dust hanging between the fibers and in cavities, I’m using Ambient Occlusion, multiplied with a noise and inverted.

Using Ambient Occlusion gives clean and proper results for the dust in no time. After getting the mask for the dust, I’m adding it into the main roughness map with Blend (Add).

Roughness display with blended dust

Each and every step should be under control, even after you’ve finished with the material—Substance Designer helps with that too. The real power is to have a procedural and dynamic material working outside Substance Designer—whether it’s Substance Painter and the material is just a part of texture set, or a dynamic tiling material inside the game engine like Unreal Engine 4, or software tools like 3ds Max. You have all the tweaks at the tip of your fingers; this is the true power.

This is what I’m doing before the last save while working on materials—exposing parameters.

Mostly it’s the Blend nodes, the amount of blends. Sometimes it’s a color value, sometimes a warp amount: Everything depends on the situation. After all, you’re making it for yourself, so do it right. 😉

Here ends the Substance Designer step. Materials are done, everything is prepared for the work in Substance Painter. The lowpoly is divided into 4 texture sets by materials and proper names with corresponding suffixes (for example, _low, _high), which is how to get baking in Substance Painter and Substance Designer properly.

3ds Max mesh preview

I’ve separated the labels and stickers into their own texture set, this is also called the Star Citizen decal technique or Mesh Decal in terms of Unreal Engine 4. This gives sharp shapes and allows re-usage of the texture atlas in any area. Most of the contents of this labels atlas have been picked from the rear photo of the amp, and filtered in Photoshop. Some elements were made in Substance Designer in no time; I didn’t even save them.

4 texture sets in Substance Painter

To split the repeating pattern of the leather material, I use two layers with the same material and identical parameters, except Projecting Angle and Mask. (Yes, I’m projecting the material with triplanar mapping.)

This gives me the ability to break the repeating pattern.

For the simple elements like the edge bumpers or logo plastic, I’m also using a custom-made “Universal Basic Material”. This is a material with all the basic parameters you could ever need to define the surface. It also comes with pre-made basic noises, so I don’t have to bother adding thousands of layers with different kinds of noises, and I can keep my layer stack clean.

Universal Basic Material applied on the edge bumpers

Redshift in 3ds Max

Tips & tricks

Don’t be afraid to learn; spend time on it, it’s worth it.

Create your own custom nodes in Substance Designer and custom materials in Substance Painter.

Don’t forget to expose parameters in Substance Designer. You could make a very powerful tool for Substance Painter there—that’s a huge time saver!

Plan your work before the start, pick the references, think about the easiest/shortest approach for the material/texture/any kind of work.

Help each other. The more you give, the more you receive. Share the knowledge.

Always ask yourself if you like the result you see or not. Work harder if the answer is no.

Final words?

Maybe my X-TAON contest participation. I have to say this was a great challenge to me. Unfortunately for me, I found this contest six hours before the deadline, and that was the fastest work I’ve ever done! The technical part was simple enough—to arrange everything and properly put it on the car. But my hardware was not prepared for rendering and operating with heavy files. Anyway, I’m happy that the result came out great.