Max Kutsenko discussed the workflow behind the Substance Receipt material, shared the nodes used for the paper and creases, and explained how the coins were made.
Hi everyone, my name is Max Kutsenko and I am a Material Artist currently working for Ubisoft Quebec on a very awesome AAA project. In the past, I was a freelancer making Substance 3D procedural materials for places like Textures and GameTextures.
For material creation, I rely primarily on Substance 3D Designer as it allows me to be creative, work non-destructively and procedurally, iterate quickly, and make changes instantly.
I got introduced to Substance 3D Designer when I was at my 3D art school but the introduction was brief and at the end of the course. The focus was mostly on Substance 3D Painter, I am sure things must have shifted now though. I started looking into it on my own and got fascinated by the ability of this program to generate an infinite amount of noise and grunge variations. At the time, the procedural approach was an unknown territory for me, but I was super excited to dive in and explore the possibilities. Another big factor in choosing the software was seeing all the Substance artwork online and what people could do with it – some absolutely mind-blowing materials. I was lucky enough to pick up the software in a moment when there were already a dozen of tutorials available, so I just kept watching them, going through other people's Substance graphs and of course practicing creating my own stuff by applying the knowledge I learned from others.
The Substance Receipt Material
The project started with me experimenting with the recently added node “Voronoi Fractal''. I am really fond of this node as it allows you to generate a wide variety of unique shapes, both hard surface and organic looking. As I was playing with the settings, it generated for me a shape that looked like folds, so I continued to build on top by adding some further distortions and imperfections. By pure coincidence, I had a crumpled supermarket receipt lying on my desk. When I looked at it, the light bulb in my head lit up right away.
The idea of producing a shop receipt that was folded several times to fit in a pocket, then taken out, unfolded back, and placed on a desk with some spare change dropped around. I also came to the realization that a text with my local food purchases will be quite boring, so to spice things up I decided to replace it with the node names that were used for the production of the folds and insert some jokes that the Substance 3D Designer community will understand.
Let's run through my graph to see how the nodes were set up to achieve the final result. The material is subdivided into 3 subgraphs for ease of use: Substance Receipt, Logo, and Coins. As mentioned earlier, it started with a “Voronoi Fractal” node for the base folds shape. There are a lot of settings to be changed, so check out the screen grab if you would like to know the specifics.
The key concept here is to achieve some crisscrossed lines that will be used for our folds. I followed with “Non Uniform Blur '' to blur the fold peaks slightly, it's important not to have them razor sharp but at the same not too soft either. Then goes a series of warps to distort those straight lines. The “Multi Directional Warp” node is great for this task coupled with “Crystal 1 and 2” noise.
Crystals by themselves already have a fair amount of crease information in the height map so it makes sense to utilize them for our warps. This is why I rely on them to create a crumpled look to overlay on top of our folds. Be sure to use a different scale for crystals to have a variety of sizes in your distortions.
Finally, I finish off my height with some smaller edge creases around the main folds, “Tile Sampler” is great for this task as I can feed a mask derived from the curvature of the main folds, so the small creases will appear only where the folds are, again “Multi Directional Warp” come in handy here for extra warping, I multiply the result at a low opacity to make it subtle and voila, the height map for the receipt is ready.
To add some text to my receipt, I studied carefully the examples laid out in front of me and followed the same structure: name of the shop, address, item description and quantities, individual prices and a total one, payment details, and refund information. Instead of copying the real receipt, I came up with an amusing concept of a Substance shop. Essentially, you buy various nodes which cost milliseconds (ms), you also pay with ms coins. I thought it would be a lot of fun to do it this way, it keeps the attention of a viewer a bit longer. Let's admit, the paper by itself can be quite boring.
Naturally, I used a “Text” node to get the job done, it contains dozens of fonts and allows you to manipulate the size and positions of your text. I wanted to have an authentic font, something that a cash register machine would print for you. Therefore, I visited a fantastic website called DaFont, which allows you to search for a specific type of font. I settled on a font called “Merchant Copy” and installed it straight to Substance 3D Designer. This type of font mimics a dot-matrix print of the kind you'd get on a modern receipt and was made by S. John Ross, so a big shout-out.
If you wish so, you can also make the text yourself. For instance, use “Arial Narrow”, drop the resolution of the node to 256x256 and you will get the kind of pixelated look we are after, lastly tighten it up with “Histogram Scan” for a sharper look. For the barcode, “Anisotropic Noise“ was used, it permits you to generate loads of vertical lines at random grayscale, I only clamped it with “Levels” to get a binary mask. Once the text was compiled, I created some imperfections by using a bunch of “MultiDirectional Warp” nodes. I think the key here is to use a height map of the paper folds for distorting the text, so the letters stretch and move in the direction of the folds, it looks more natural this way. “Dirt 1” or any other high-frequency noise will do fine to break up the font a little bit so it looks as if the ink was in use for quite some time. To finish it off, I added some subtle finger smudges here and there with “Non Uniform Blur”.
The albedo of the receipt was really simple, at the end of the day it's just a white piece of paper. I only added a tiny amount of high-frequency noise and a mix of “Cloud” nodes to have a bit of variation. The roughness of the receipt was a big deal for me, I really wanted it to shine and contain a lot of data to compensate for the lackluster albedo.
I started my roughness build-up with mid-gray. Then I added a touch of blurred “Grunge Splashes' ' and “Grunge Galvanic' ' to add an interesting variation. These grunges are a new addition to Substance 3D Designer and I try to use them as much as possible in order to learn their behavior. After this, I slope blurred a high-frequency noise to get a grainy effect and subtracted it. The reason I did it is that I had noticed that the paper of the receipt sort of scattered the light in tiny fragments which gave it that silky glimmering look. I also wanted the text to have some punch, so I multiplied it on top, the same with the peaks of the folds which I derived from curvature.
Last but not least, I added some fingerprints to sell the idea that the ticket was handled by a person. I used a bitmap, but in case you want to keep it all procedural I have included some tips in the screengrab on how you can achieve a similar fingerprint effect within Designer.
After I was done with the receipt, I moved on to the coin creation. I decided to use euro cents as a reference, adding my own spin to it, and went with 2 versions: 5 and 20 cents, the reason being one is made of bronze finish, the other of copper and they are also of distinct sizes. All this combined adds more visual interest to a final composition.
I started with a circular shape and added a text again, this time around I opted for a more classic look with “Bodoni MT '' in italics. The “Stripes” node was used as a background. On a real 5 euro cent, there is a globe printed on the face part. I decided to create my own cybernetic-looking globe and used “Voronoi Fractal” again to create that effect. You can see how powerful this node is for making unique shapes. I then proceeded to feed that exact same Voronoi to Cells 4 Image Input for the generation of separated islands of cells. This became my fake Europe map that went to the 20-cent face part. On the tail part of the coins, I went for a “Blend” node sign with 3 input and 1 output connectors. This was done in a separate graph by adding very simple geometrical shapes together.
Once the coin's height was complete, it was scattered with a “Tile Sampler”. I also used another “Tile Sampler'' with identical numbers but in color to create some hue, saturation, and luminosity variation of the coins. Observing the coin change in my wallet, I was amazed by how different the same 5-cent coin can look in terms of color values and roughness.
The age of coins varies greatly, some may circulate in the market for years while others could be just recently printed. And this is what I tried to replicate. I subtracted several high-frequency noises such as “BnW Spots 3” and “Grunge Shavings” to give that old worn look with lots of bumps and knocks. Once again, the roughness was super important to me, that's why I made sure each coin had an individual and unique greyscale value. To make this easy, I converted my coin color map to a grayscale one and that gave me the variety needed. Then a few grungy noises were blended in, a “Dirt” node to get the grimy dirty look in the crevices and once again some subtle fingerprints to add a storytelling element.
At the end of the graph, I exposed a switch parameter that allowed me to select between the receipt, coins, or both, these options were used depending on the render I wanted to make. Speaking of which, I made my renders in Marmoset Toolbag 4 as I really enjoy its ray tracing capabilities and the overall image quality.
To set up the main receipt scene in Marmoset Toolbag, I first went to Houdini, which I began learning recently, projected the receipt normal map on a grid, and made some geometry cuts where the folds run across the paper, this allowed me to lift or lower some edges to create a displaced look like in my references. Lastly, I created a fairly flat cylinder and mapped the coin on it.
The mesh was exported to Marmoset Toolbag, where I duplicated the coins, hand-placed them around the receipt, and made the final render.
All in all, it took me around 3 evenings to finish the material, but then I spent the same amount of time, if not more, trying different renders and lighting setups before I was happy with the final shots. In the majority of cases, I spend as much time rendering as creating a material. I firmly believe that a well-executed render makes 50% to 70% of the success rate of your artwork, so this part should not be underestimated.
Looking back at this project, I think the most challenging part for me was nailing those folds and creases. It is easy to generate a cool-looking shape in Substance 3D Designer, but it is also super easy to end up with a procedural-looking shape, so you need to make sure you shift the forms around, distort, and bend them so it becomes more natural looking. Even though I had to spend almost the entire evening on it, I was satisfied with the final result.
I hope that I got you interested in Substance 3D Designer if you are new to this program. If you like to try it out, I would recommend you check out Adobe's YouTube channel. It has plenty of informative videos to get you started with Designer, just keep in mind the learning curve with Substance 3D is slow and it will take you some time to get good at it, be patient and open-minded, and eventually you will get there. I would also advise going through other artists' graphs to see how they had constructed their materials. I personally learned a lot by doing it, this is the website to download the assets.
I hope it was helpful. If you have any further questions regarding the project, please do not hesitate to contact me, I am happy to help. Keep creating, guys, but also take some time to rest. All the best!
Max Kutsenko, Material Artist
Interview conducted by Arti Burton
You may find these articles interesting