Beginner's Guide To Creating Glazed Ceramic Tiles In Substance 3D Designer
Elie Paquiet walks through his workflow for creating a ceramic tile material, from creating the pattern and introducing layers and variations to rendering the result with Unreal Engine 5.
Introduction
Hi, my name is Elie Paquiet. I'm a French Environment/Material Artist, previously working at Ubisoft, where I worked on AAA titles including Assassin's Creed Shadows, Rainbow Six Siege, Hyper Scape, and more recently on the canceled remake of Prince of Persia: Sands of Time. I am now focusing on my portfolio while looking for my next opportunity in the industry.
When I moved on to this glazed ceramic tile material, I had the will to get back into Substance 3D Designer, but I wanted to keep things simple. I had just spent months working on a larger-scale environment, so the idea of creating a small, self-contained material project felt right. Something I could jump into, enjoy, and finish without turning it into another huge undertaking.
This kind of material is a great starting point for beginners looking to learn or practice Substance 3D Designer. It relies on common nodes and simple, reusable techniques, making it a perfect exercise for getting familiar with the software. So, let's dive in and take a look at how to approach this kind of surface.
Getting Started
The idea for this particular material came about quite naturally. I was browsing through an old folder where I keep all my material and project ideas for someday, and this one had been sitting there for years. It felt like the perfect fit for what I wanted to work on at the time.
When gathering references for a material, I try to look for examples in different contexts whenever possible. First, rough or grayscale references are incredibly useful for analyzing the surface without color interfering with additional information. It's actually quite similar to what we do in Substance 3D Designer when sculpting a height map.
Then, I look for references showing the finished material in isolation, but not yet in its final context. For example, tiles laid out or displayed as a showcase, without any grout or cement, so I can focus on the tiles themselves and their surface details.
Finally, I look for references of the material in its final context. This could be tiles assembled and grouted on a wall, ideally with some environmental context or storytelling, such as a bathroom. These references help me understand how the material reacts to moisture and lighting in a more realistic setting. They also provide inspiration for the final assembly, giving me ideas for different tile layouts and patterns to experiment with.
Sculpting Height Map
I start by creating the pattern itself, then apply it to the individual tiles.
By placing the pattern in one of the hexagon's corners and enabling Random Symmetry, we get only four possible orientations. To cover the remaining two possible orientations, I rotate the pattern by 60 degrees and keep Random Symmetry enabled. That gives us all six possible orientations. If desired, we can also add a third input featuring a plain, unpatterned tile to introduce even more variation.
The Distribution Map can be very useful for defining specific placement rules, such as creating lined patterns or applying a particular variation across the tiles. Depending on the desired result, you might need additional orientations of the base tile. These can easily be created by simply rotating the original tile by 60-degree increments.
One little trick I like to use when working with a Tile Sampler is to duplicate it and introduce a difference in the Color Random parameter between the two nodes (Keep in mind that the Substance 3D team also added an option to copy and paste all parameters from one node to another). I can then blend them using the Divide mode, with the more contrasted version plugged into the background input.
This gives me a very useful Flood Fill that I can use downstream to generate random gradients or random grayscale values, for example, which I can then use to introduce additional variation into my height map.
Next, I start layering different surface details to give the tiles their final ceramic look. I blend in subtle surface imperfections, small bumps caused by the firing process, slight variations in thickness, and a delicate brushed effect inspired by my references.
The height map sculpting is now complete, and the material should already be looking quite close to the initial references.
Something I like to add when creating tile materials is a very subtle variation between individual tiles in the normal map. First, I gradient-pick the color from the normal of a paraboloid shape. I then run my ID map through this gradient map node (now with normal colors). This gives me a range of normal values that I can use to introduce subtle variations between the tiles, helping break up the uniformity of the surface.
Since this process can become quite repetitive every time you need to do it, I'd definitely recommend turning it into a reusable tool with a simple intensity parameter.
Roughness & Base Color
Personally, I like to work on the Roughness before moving on to Base Color, as it makes the surface details easier to read and helps me quickly assess whether they’re working or not. If the material response feels right at this stage, it gives me a solid foundation to build upon for the rest of the material.
To start building the roughness, I invert the AO map and flatten the values to bring them closer to the range I’m aiming for. This also naturally begins a rougher patina in the AO areas. Next, I isolate each tile using a Flood Fill Mapper node and plug a Gaussian shape into it. This gives me a gradient that transitions from rougher edges to a glossier center on each tile.
On top of that, I subtract two Edge Detect nodes to isolate the inner contours of each tile. I then subtract this mask to bring out the glossy edges, adding another layer of variation to the roughness.
After these steps, I start layering the different patina details I want to bring into the material. This includes a few dirt marks with a more matte finish, some dust settling into the gaps between the tiles, a subtle brushed effect, and even a few leaks to add more variation and character to the surface. Examples of grunge maps I layered into my material after applying a Directional Warp node:
One big piece of advice I can give is to make use of the procedural resources available in Substance 3D Painter. It's a great library of high-quality grunge maps and generators, with a huge variety of options to explore. They're especially useful when building roughness maps and Base Color variations.
You can easily add these resources to your Substance 3D Designer library. The .sbsar files are stored by default in the following location: C:\Program Files\Adobe\Adobe Substance 3D Painter\resources\starter_assets\procedurals
The final step is optional, you can add subtle leaks to the roughness map to introduce some contextual wear and patina. However, this isn't always necessary and really depends on the look you’re going for. They could be added or subtracted depending on the context.
For the Base Color, I like to keep things relatively simple and build it up gradually. I usually start with a Curvature, pushing the details I want to emphasize a little further, so I can target them easier in a gradient map. Then blend in a few grunge maps to introduce some color variation.
One simple thing I do to create color variation by tile is to create a second gradient map node that's slightly different and blend them together with the greyscale ID. This step could be repeated as many times as needed with different colors and different ID maps to create richer, more varied results.
This gives me a first pass that I can use as a starting point for the rest of the process.
From there, I focus on the edges of each tile. I wanted to capture that subtle accumulation of pigments along the edges, with a few areas where the color appears less saturated or slightly worn out. I also bring back the brushed effect from my references, this time in the color, to help reinforce the ceramic look.
To finish things off, I add a subtle layer of patina, with a bit of dust and dirt collecting in the gaps between the tiles. I try not to overdo it here; I just want enough variation to give the material a little more character without losing the clean, glazed look of the ceramic.
As it was not really planned to make this material fully customizable, the parameters for this material are pretty straightforward. You can, of course, change the main color, add a subtle metallic paint effect to the pattern, or adjust the amount of patina. The tile distribution is customizable as well.
Rendering
The rendering setup in Unreal Engine 5 is pretty simple as well. I quickly modeled a smooth, chamfered object to use as a background. It helps create nice contact shadows and adds a bit of ambient occlusion to ground the scene.
I would recommend using an HDRI for your renders in Unreal Engine, as it provides smoother shadows and an overall more realistic look. For more neutral lighting, try using a studio HDRI, such as Tomoco or Black Soft Light. Both the Rounded Cylinder and HDRI were extracted directly from the Substance 3D Designer files.
For the lighting, I went with a simple three-point setup. A main spotlight from above acts as the key light, a fill light softens the contrast on the left side, and a backlight on the right helps define the silhouette of the material. Each cylinder is illuminated by its own set of three lights.
I also rendered the material on slightly bent planes, each lit by a single spotlight. This setup helps showcase the roughness map more clearly by highlighting how the surface responds to the light.
Conclusion & Advice
This material is pretty simple. It was just a small personal exercise to scratch an itch I had for quite some time. It was relatively quick to make, taking around 4-5 hours, roughly an afternoon or evening, with another 2-3 hours spent on the renders in Unreal Engine.
I would highly recommend this kind of simple material exercise to beginners or anyone looking to learn Substance 3D Designer. The logic behind it is straightforward and easy to get to grips with. The nodes I used are some of the most common ones, and ultimately, the ones you'll find yourself using all the time. Projects like this are a great way to understand how Substance 3D Designer works, whether you're learning how to create tiles, build patterns, or put together a simple Base Color without getting caught up in overly complex details.
And if you want to take things a step further, this is also the perfect playground to learn how to customize and expose parameters. You can experiment with the number of tiles, their shapes, colors, wear, and much more.
If you have any comments or questions, please just reach out, I will be more than happy to discuss it. Special thanks to Kseniya Serebrennikova and 80 Level for giving me the opportunity to write these few words. It was a pleasure! I really hope it will help or inspire you as much as it did when I was reading other articles and breakdowns here.