Blind Sidewalk

Material Breakdown

Ye Hang


Ye Hang

Texture Artist


Hello everyone, my name is Ye Hang. I am an artist from Chengdu, China. I joined Ubisoft five years ago as a texture artist, and recently I have become interested in learning how to make materials more realistic and enjoyable!

I would like to express my gratitude to GamesArtist for providing me with the opportunity to share my thought process regarding the creation of this material. I am eager to share the intricacies of my work with each one of you. Without further ado, let us delve into the details.


To make your material appear more realistic, it is advisable to gather a large number of reference photos and spend time analyzing them. For this purpose, I use a Sony A7R4 camera to capture high-resolution images that serve as my reference.

You can view all of my reference photos on my X account. I also have a Git repository to archive these photos which you can download to your computer for free!

The reference for this material is also from my reference library. I find it has a regular shape with some interesting natural cracks inside.

The color is interesting too! You have a main color with a lot of variation.

There are also nice details such as small plants and mud inside cracks. So I decided to go with this one to test how far I can push the quality of my material with all my skills.

The benefit of using a camera is that you can get a lot of detail from your photo, and you can zoom in like this:

Break Down Reference

It’s time to analyze and break down the reference photo after you choose what you want to make.

Basically, you just need to find everything you think is interesting and mark it out!


Base Shape

It’s time to jump into Substance Designer and start building some base shapes to give yourself a rough idea of what this material is going to look like.

I decided to have a different shape compared to the reference photo because we already have a straight line in that bumped-up pattern.

So I tried using the “Pixel Processor” node to add a sine wave shape to the base shape like this:


Here is the graph view. Basically, I added two passes of sine wave in the X and Y directions and used some float values to control the phase and frequency, etc.


Then I added some bevel and tiled it using the “Tile Sampler” node. I also added some first-pass quality cracks into it. This is what my height map looks like so far:


I was talking about having a rough idea of our material, so we still need at least a base color channel to get a nice preview of this material.

I recommend using Ben Wilson’s “BW Color Variation” workflow.

You just need to mix these channels: “AO”, “Curvature”, “Normal Slope”, and “Noise warped based on height” and input them to the node:


Boom! We get a base color very quickly! You can see the preview render of this material on the right side:


Basically, it’s the only method I’m going to use for base color creation. It’s fast, easy to control, and the results are good too!

How to Preview Your Material

Speaking of preview render, I want to mention the workflow that I’ve used so far.

Which is the “PBR Render” node. I find that the 3D view that comes with Designer by default is hard to use. Here’s a comparison I made:


This is the reason why I usually use the “PBR Render” node to preview my material. The setup process can be quite easy, you only need to plug all your channels and an HDR image into this node:


And you can try some of the presets:


You can even put four of these nodes together to see how the material looks from different angles and different lighting conditions at once.


So you can basically replace the 3D view with this node!


Pin Your Final Render

  • Click any node to open a new 2D view window.
  • Use this window as the 2D preview window you normally use.
  • Close the 3D view window.

Below is how I arrange my workspace:


Refine Height Shape

During the next period, I experimented with various crack combinations to achieve optimal results.


I feel good about this last one:


So I decided to refine the shape based on this height. I first added the bar structure.

The purpose of this structure is to assist the blind in recognizing that this is a road that can be walked on. I think this structure can enrich the shape language of the material:


Then I added some noise in the slope area and broke some corners.

These areas were designed as cement; they will be the second most important color of the material, and will also bring contrast between the two visual languages of “complete” and “broken”.


Now I have a very solid height shape. The next step is to add more details.

The first thing that came to my mind was that the shapes were too perfectly aligned so I needed some breaks.
I used a node from Ben Wilson called “Flood Fill To Transform” to break the alignment.


I will give you a sneak peek of the final height:


The Base Color

Now with a good height shape, I plan to continue working on our base color to see the overall results.

Based on my observations of the reference photo, some of the bricks had been placed there for a long time, but some of them were broken so they were replaced with new ones. Based on these observations, I started making the base color.

I created a few base colors based on the workflow I mentioned before with different parameters and mixed them.

Then I used them as a clean version of this material. I think of them as bricks that have just been laid on the road from the factory.

Next, I began to make aged bricks that had weathered the elements and sewage, and time had left its mark on them.

I used a darker color as a base, blended some lighter colors using noise, then created some darker wear effects near the edges and finally added the effect of the surface peeling off to reveal the white underneath at the sharpest turns.

I used a flood-fill random mask to blend them together:


Finally, I laid on some overall dirt and dust to mix the two types of bricks together:


Here’s a preview so far. I’m done with all the colors that belong to the bricks:


I haven’t forgotten we have some cracks, so I also made a cement base color for the cracks via the same workflow:

This is the result so far. It’s 90% done, but I want to polish it more.


By the time I reach this stage, I’ve been working on this material for about half a month. I usually spend an hour or so working on the material when I get home, sometimes more on Saturdays and Sundays.

However, it’s easy to get aesthetically tired from working on the same thing for a long period, so I take selective breaks every once in a while to let my brain forget about the material so that I can continue working on it later with new inspiration.

The first thing I noticed was that the cracks were too deep and obvious, so I covered them with mud.


I thought the material was too dry overall, so I added a shallow layer of water using the nodes that came with Designer.

I even added some aquatic plants as accents on the water, which also had a positive effect on the richness of the colors.


I added small gravel to the area where cement was applied as a finishing touch.


I also added a lot of other small details, so I won’t go into them too much here. Here’s the difference between before and after I added the details.

When you look at the whole thing, it doesn’t change much, but when you zoom in, you’ll see close-to-scanning material-level detail, which is why I used 4K resolution for this material:



I think I’ve already mentioned some of the rendering hacks in the previous part, so here I’m still using the same process, except that I’m trying more different parameters, like switching between different preset models or HDR images.

I also tried a variety of different camera positions to show the details at close range. Here are some of my final renderings.


Above is the whole process of how I made this material. At each stage, I had a prioritized goal, focusing on getting the overall effect right before moving on to the next step, and finally the details.

That way I don’t get lost in a sea of nodes hahaha.

I hope you guys enjoy this work of mine and thanks again to GamesArtist for the opportunity. Thank you all!!!