Frozen Lake

Material Breakdown

Abderrezak Bouhedda

main01
dbffc6043b735c14c3ae12287aebe21a

Abderrezak Bouhedda

Material Artist

Introduction

My name is Abderrezak Bouhedda and I am currently working as a Material & Shader Artist at Stellar Entertainment Software.
I have been selling Substance tutorials & tools since 2018 on Gumroad.

First step

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 & Shape reading is ultimately important stage when it comes to creating any kind of work, props, environments, characters, materials. You can’t make food without a recipe, right? References are the recipe of your craft, so here’s an example.

ICE_refs

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 colour maps, details and more.

Here’s a quick look at the Scratches Generator Node (which comes with Substance Designer).

Create the scratches and put them aside for use later, we’ll blend them with the cracks later.

scratches

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 & scratches into one map.

blend

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 colour 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 Multi-Directional Warp node again, with Clouds 2 for the sake of intersecting crack edges

mtd_w

After that, we create two Non-Uniform Blur nodes (in deep frost frames), as the settings are shown. The second one is just different from the first one by the Angle.

dp_frst2

The Non-Uniform Directional Warp node, middle one. Is used for depth colour later. It takes input from the previous Multi-Directional Warp.

dp_frst2

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.

Colour Map & Details

The previous stuff we did, run it into a gradient map with 4 colours, the reason I did this is I keep this gradient, and any change I need to do I’ll work backwards, 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.

clr_

Now we have the large values of the colour map, we need to add the micro & 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 & height.
So basically we have this to start from (gradient flood fill with no edges) which is you can create like this (a bonus tip).

distance

I’m going to 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 colour 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 the curvature Sobel.

crv_
crv_2

Here we have a detail map for our colour map, the dirt node result will be used to colour the albedo later.

crv_3

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 colour map with a mask to apply the details.

crv_4

No fancy things in this step here, just the previous main gradient, blend with a dark blue colour, then blending the details with a mask (I added cracks to the mask a little bit, to get more brightness & fade in the cracks) and TADAA, now just some polishing, adding some depth & fake frost to the colour map, we can separate those later if we need to use them on different shades as well.

crv_5

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 nonuniform blur results and blend them with noise maps, mask them with some cells from the flood fill, etc.
Which is the mask here.

crv_6

Then if you’d like to do some colour corrections as well, use the HSL node, levels or anything that helps you correct the overall colour 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.

rgh_n

The translucency is pretty simple, I did desaturate the colour map, then levels to select only the brighter & mid bright areas.

translc_

Here’s a good example of using the translucency map in Marmoset Toolbag, using just a single point light, it makes the light spread on the cracks & deep frost spots.

1-1

Final Results

Sorry I didn’t explain everything in detail cause I missed some stuff that takes more than paragraphs to explain, so I left you all the graph here: https://lockedloaded.gumroad.com/l/upczz

If you’re interested in buying it for more experiments. Make sure to follow me on Artstation for more stuff, the ones I did post before and the new stuff I’ll be posting in the future.

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 or Email.