The creator of a cool cracked ice material Abderrezak Bouhedda allowed us to repost the breakdown of the project.
Hi Everyone I'll give a quick introduction to anyone who doesn't know me. My name is Abderrezak Bouhedda, I'm working as a AAA Material & Shader Artist at Stellar Entertainment Software. Selling Substance tutorials & tools since 2018 on Gumroad. You can take a look at my works here. I recently posted the Frozen Lake material on my portfolio and many people asked for a breakdown, so let's dive into the icy craft.
First of all, before you do anything or even start the Substance.exe, you need to collect some references on what you're willing to create. Information and Shape reading is ultimately an important stage when it comes to creating any kind of work, props, environments, characters, or materials. You can't make food without a recipe, right? References are the recipe of your craft, so here's an example:
I didn't just collect random references, Most important thing you need in references is a reference from an angle that shows how reflection/roughness/specular is being affected by the light, one or more references that show how big/small is that material, scale-wise it varies and we can deal with that in SD but a scale reference helps a lot, especially in production.
You read the shapes and imagine them basic without warping, like a simple sketch or you can draw over them straight lines so you could have an idea of which nodes to use first. Otherwise, you'll get used to it and be able to read shapes easily from refs and determine which nodes to use first, It's pretty clear here that they look like cracks with long nearly-straight lines on top of the cracks.
Creating the Initial Shapes
A quick start/sketch with the Cracks generator that I did create before, you can create your own or just use cells, mask a few of the bigger cells, and put more cells on them. We can use the potential of Flood Fill nodes, to give our cells random value variations, and gradients, which are the resources we need later for the color maps, details, and more.
Here's a quick look at the Scratches Generator Node (comes with Substance Designer)
Create the scratches and put them aside for use later, we'll blend them with the cracks later.
After that, the cracks can be done with any crack nodes, either you create your own cracks or grab one of the free crack generators which there are plenty out there in Substance Share or anywhere on the internet. I preferred to create mine and set outputs that I usually need.
Output for Cracks with damage on the edges, one for flood fill crack cells, and one for edges without damage.
After warping the cracks using Multi-Directional Warp node, mode Average, 2 directions with Clouds 2. We proceed to blend using Screen Mode, both cracks and scratches into one map.
Deep Frost Creation
As the graph is a little bit big, with many details, I'll cover the most important things so the article isn't boring to read & learn from. The depth is going to be used later as a translucency map, in the color map, as a separate map to use later maybe for UE's bump offset or parallax offset for shader purposes depending on your needs.
The blended previous result we run it into the Multi-Directional Warp node again, with Clouds 2 for the sake of intersecting crack edges
After that, we create two Non-Uniform Blur nodes (in deep frost frames), as the settings show. The second one is just different from the first one by the Angle.
The Non-Uniform Directional Warp node, middle one. Is used for depth color later. It takes input from the previous Multi-Directional Warp.
After that, we blend both Deep Frost results (non-uniform blur nodes) with Screen mode opacity 1.
Here I'll just put a Video/GIF of the next process which is very simple, taking the previous results, making variations of them, one with slope blur, one blurred, one blended with a noise map, then we keep blending results by the previous (SCREEN BLENDING MODE). We can also use crack edges from the Initial shapes, and blend them with a Perlin noise to add variations to the edges instead of blending them later as a uniform edge with the same values.
Color Map and Details
The previous stuff we did, run it into a gradient map with 4 colors, the reason I did this is I keep this gradient, and any change I need to do I'll work backward, which means I go back to previous nodes and add/reduce values of cracks, add details to the blend nodes. The brighter the value the more it shifts to white, and the darker the more it shifts to dark blue.
Now we have the large values of the color map, we need to add the micro and mid details to pop out the realism.
Before we do that let's have a quick look at how I did create the details for the normal map and height. So basically we have this to start from (gradient flood fill with no edges).
I'm gonna demonstrate the detailing phase on the normal map and how it changes, nothing fancy here, just blending the scratches, dirt node 1, grunge map 4, and the crack edges from the multi-directional warp until we get a final satisfying detailed normal/height map, that doesn't mean you'll directly make it, just add stuff that you see it works similarly to the reference.
Now the exciting part, detailing the color map we start by creating a map that is very similar to the curvature map, but darker values will give us more dirt/dust or white values which means this map will be used in the Ambient Occlusion input of the Dirt node. By then, the scratches, dents, spots, and damaged areas will have a white ice look.
We start by Normal map, grab the two Curvature nodes (Curvature smooth, Curvature Sobel) blend them together using Add Sub mode, opacity 0.13, or the value that gives lower contrast look which works like sharpening the curvature smooth by curvature sobel.
Here we have a detail map for our color map, the dirt node result will be used to color the Albedo later.
Then sprinkle some spots on top using clouds 1 (selecting only a few brighter values in the histogram) then run it into a gradient, the gradient will be blended with the color map with a mask to apply the details.
No fancy things in this step here, just the previous main gradient, blend with a dark blue color, then blending the details with a mask (I added cracks to the mask a little bit, to get more brightness and fade in the cracks) and TADAA, now just some polishing, adding some depth and fake frost to the color map, we can separate those later if we need to use them on different shades as well.
The last thing is blending the inner frost which is a bunch of warps & cells blending but the general idea of it is you can use the previous non-uniform blur results and blend them with noise maps, mask them with some cells from the flood fill, etc... which is the mask here:
Then if you'd like to do some color corrections as well, use the HSL node, levels, or anything that helps you correct the overall color map.
Roughness Map & Translucency
Basically here it's the dirt node map, with histogram correction to clamp or set minimum limits of the darker/gloss values to not make it 100% glossy just about 88% glossy instead. Added some damage spots to make the damage spots rough.
The translucency is pretty simple, I did desaturate the color map, then levels to select only the brighter and mid bright areas.
Here's a good example of using the translucency map in Marmoset Toolbag, using just a single point light, which makes the light spread on the cracks & deep frost spots.
Sorry I didn't explain everything in detail cause I missed some stuff that takes more than paragraphs to explain, so I'll leave you the graph here if you're interested in buying it for more experiments.
I hope you all like this breakdown and find it useful, If you have any questions I'll be more than happy to help! Just leave me a message on my ArtStation. Have a wonderful day!