Ceramic Azulejo Tiles
Introduction
Hey, I am Oday Abuzaeed, a Senior Technical Environment Artist with +7 years in the industry.
I have a passion for storytelling through detailed stylized and hyper-realistic surfaces and textures, and trying to create flexible shader workflows and Unreal integration along the way.
Goals
I picked a relatively simple material and aimed to achieve a very realistic look packed with fine details.
I wanted a material that holds up beautifully in close-ups, and most importantly, I wanted the breakage and wear to be fully art-directable with complete parameter control inside Unreal Engine.
References & Inspiration
For references, I focused heavily on edge damage behaviour and how to make it feel natural and believable. I ended up watching over 4 hours of DIY videos showing bathroom remodels and demolitions — I have to admit, I’m kinda addicted to them now.
I also drew inspiration from classic blue Portuguese tiles.
Material Creation
This part is pretty straightforward, so it’s better explained with visuals.
Pattern Creation
It’s worth investing some time to find interesting patterns.
The tricky part was getting a clean, high-quality pattern. When using an image, you can easily bottleneck the graph by mixing raster data among procedural nodes. So I tried to convert the pattern to a high-quality version, even if the source was low resolution.
I started by creating a high-contrast mask from the image, then used the spline and path nodes to generate a crisp HQ mask (similar to working with paths and SVGs in Photoshop).
Finally, I added nice organic breakups by warping directional noise, applying edge detect, and blending everything with a grunge map.
UE Mask Setup
This was the most technical part of the process.
I began by creating an X+Y Position using flood fill converted to grayscale through a linear gradient. This mimics the flood fill map so Unreal can understand the layout.
Then, inside Unreal, the shader generates a directional mask that controls where damage or variation appears across the material. The UVs are projected along a user-defined angle and then normalized, so the effect remains consistent no matter the object’s orientation.
Parameters such as Position, Range, and Softness control the width and falloff of the band, while Contrast sharpens or softens the final result. This mask is then used to drive the blend between the different textures.
Final Conclusion
- Always build height first.
- Keep masks reusable.
- Test materials early in the engine.
- Roughness variation is key.
- Avoid over-detailing albedo.