Mihajlo Ciric talks about the artist's procedural coin material and touches upon learning the basics of 3D material modeling.
In case you missed it
You may find these articles interesting
My name is Mihajlo and I am 20 years old. I am a student in game development, specialized in Technical Art. I am actively looking for an internship in the field. I am currently in my second year of Bachelor's at LISAA Paris, but I have been making little games since I was a kid, when I first got my hands on a copy of Game Maker 8 and then Game Maker Studio. In high school, I discovered Unity, Unreal Engine, and Blender and decided to pursue a career in game development.
My main interests in the world of 3D are procedural assets and environment art, as well as modeling and texturing. I also enjoy prototyping games using Unreal Engine or Unity, and Game Jams.
First Steps in Substance Designer
I discovered Substance Designer relatively recently, in the first year of my Bachelor's. I discovered these interesting renders of spheres with different-looking materials while browsing ArtStation. Turns out those were procedural materials made by artists as submissions for the Nodevember Challenge. I was amazed that all these things were made using only nodes and math functions. I decided that my goal was to learn the program well enough to be comfortable to enter the challenge the following year. This is how my SD journey started.
I have discovered many different artists over this year and met people that helped me get started and showed me a lot of tips and tricks. One of them is Nikolay Marinov, who I met via Instagram and who has been a great source of inspiration and an amazing mentor, and who gave me some of the tips I am going to share with you in this article.
This November I joined the Nodevember Challenge. It is a yearly challenge with the goal of making one procedural asset per day using nodes, a daily prompt is given and participants make something to fit the theme of the day. You can use different software like Houdini, Blender, Substance Designer, or others. I decided to go for one procedural material per day using Substance Designer. On day 7, I started working on the coins inspired by the daily prompt called 'Print'. I imagined a pattern that could have been printed onto coins using a coin press. In all honesty, this material was not made in a day, I became obsessed with this one and remade it about a dozen times before getting it just right.
First things first, I started gathering references, images of treasure chests, piles of coins, coins from different areas, different ages. Then I sorted them into categories, some helped me with the colors, some became references for the patterns, the others inspired the details.
In reality, this was a relatively simple material to make. It is composed of two graphs. The first is the graph that corresponds to a single coin.
The second graph is instancing and layering the coins on top of each other. I know it looks scary but it is actually really straightforward.
The first step in my workflow is always making the Height Map. I started by making the pattern that would be printed on each coin. First, I made a background and created my octopus.
These were made using basic shapes by twisting and transforming them, then blending them together to make more complex shapes. One trick I used for blending these shapes together is the Non Uniform Blur node.
The next step is to put that pattern onto a coin and then add some more details. I used the Slope Blur node to expand and then chip away some parts of it with masked plasma noise.
I derived the Normal Map from the Height Map, then added cracks and some fractal sum noise.
Let us now look at the second graph and how I made the pile of coins in the final material.
I used the Shape Splatter nodes to do this. I carefully blended each layer with a blend node and a corresponding mask of the sum of the layers on top. To offset the height, I used a Levels node on each layer before blending it with the rest, but you can also use a Height Blend node.
If you do not know how to get started with the shape splatter nodes I recommend this little tutorial by Pascual Hernández.
The Cavity Map helps to separate the coins in the renders a lot, it also adds some juiciness to the pattern on the coins.
Here is a quick and easy way to make the Cavity Map.
I use a Blend node, set to Add Sub as its blending mode, to blend the final material curvature in the foreground input and a uniform white color as background input. This results in a simple Cavity Map, but in my opinion, it is very effective, see the difference between the image with and without render in the gif below.
Color and Roughness
A great resource for PBR texturing is The PBR Guide by Allegorithmic, you can find a detailed explanation for basically everything you need to know to get started with PBR and realistic materials. If you are interested in learning material art or want to be a better texture artist I recommend giving this resource a read.
The next step is to color the coins, I do this in a single coin graph. For the color base, I used a uniform color from the PBR guide, that I then built upon with various maps: Curvature Maps, dust generators, and finally some procedural Grunge Maps.
My base was the gold color, then I added highlights by using my Height Map and shadows with some ambient occlusion. Then I added some grunge and some dust.
The last step for the color is to add some of that information about the details from the Normal Map to the color.
It is a quite subtle difference but it sells the realism a lot better, here is a gif showing you the before and after. You can see the cracks in the coin even though there are no normals.
Roughness is a simple case of blending and warping a grunge map, then using a Levels node. I limit the roughness to be between 0.2 and 0.4.
The metalness is even simpler. I reused the dust I had made earlier for the color and blended it with the Roughness Map, then used another Levels node to set it in the range that works best for a gold coin. The metal parts should be white or near-white while the dust and dirt should be non-metallic so near-black.
The final material is procedural and has some useful exposed parameters. A parameter called 'Coin Age' controls the opacity of multiple blend nodes that are responsible for blending color roughness and grunge maps.
The second parameter controls how many coins are to be instanced on the material, it is connected to the splatter nodes by setting the shape amount on x and y.
I render my materials in Marmoset Toolbag 3. I have a setup that I use for pretty much all my materials and only change the lighting to fit the theme of the material. The scene in Marmoset is composed of a Half Sphere UVed in a way to reduce stretching, a few basic lights, and some post-processing.
You can achieve a similar look by following this tutorial on Quixel Youtube channel.
You may find these articles interesting