Note: videos were recorded using an earlier folder structure.
The project has since been reorganized to meet Fab / Epic standards.
Only asset locations changed — functionality and workflows remain the same.
Procedural Material Layers
A production-ready procedural layered material system for Unreal Engine 5, built on Material Layers and Material Functions to create highly customizable, performant PBR materials. Designed for environments, props, architecture, vehicles, and more.
Features advanced transition techniques such as 4-channel vertex painting, breakup textures, DFAO, height and albedo blending, procedural noise damage, gradient and side-selection masks, plus studio-proven visual effects like dirt, decals, peeling effects, and fake shadow layers.
Refined through real production use, this system helps artists build high-quality scenes faster—without endless manual blend tweaking.
Visual Documentation: A guided tour of the "Procedural Material Layers" pipeline.
Support topic: ask direct questions in our support section. We’re here for your workflow.
Procedural Focus: Heavy emphasis on non-destructive, parameter-driven workflows. Layers can be stacked, blended with height/vertex/masks, and adjusted procedurally—no baking required unless desired.
Performance Optimized: Uses efficient Material Functions and instancing for clean graphs, reduced compile times, and runtime efficiency. Compatible with Nanite, and Substrate (where applicable).
✨ Key Features
Modular Material Functions Library: Organized into categorized folders for easy navigation and reuse:
Adjustment: Advanced controls for Albedo, AO Injection, Emissive, Height, Normal, Opacity (including masks), ORM adjustments, Overlay ORM/Dirt, Specular, and SSS—allowing fine-tuned post-processing on any layer.
Setup: Utility functions for base UV management, height blending, RGB channel workflows, world-aligned normals, and triplanar UV alignment for seamless projection on complex geometry.
Tech: Technical tools like fake shadows, camera fade, mesh edge wear masks, normal peeling, random per-object variations, and Fresnel effects for added realism.
Transform: Procedural UV transformations including base UV overrides, atlas mapping, procedural/transform variations, triplanar mapping (single/multiple passes) for non-UV'd meshes.
Transition Mask: Extensive masking tools for smooth layer blending—basic vertex paint, breakups, combined masks, DFAO, extra UV channels, height lerps/blends, linear/gradient masks, procedural noise damage, side selection, and switch/transform masks.
Base Materials: A collection of ready-to-use Material Layer Instances as starting points, including metals, bricks, concrete, plaster, stone, and wood—rendered with high-fidelity PBR properties.
Meshes: Variety of static meshes (boxes, buildings, cathedrals, modular kits, rocks, stairs, tunnels, vehicles, walls, windows, etc.) for testing layers on real-world geometry.
Layered Material Examples: Pre-built layered materials like base materials, all-features demos, background blends, layer blends, and master layer instances.
Benefits for Artists & Developers
Rapid prototyping of complex materials (e.g., weathered metal with dirt overlay, edge wear, and procedural damage).
Easy customization via Material Instances—tweak colors, roughness, normals, masks, and blends on the fly.
Reusable across projects: Mix and match functions to build unlimited variations.
Great for archviz, games, cinematics, and open-world environments needing consistent yet varied surfaces.
⚠️ Note: All textures used in this product are sourced from Poly Haven (polyhaven.com).
Please ensure proper attribution in your projects according to their CC0 license.
quick note: the videos were recorded with an older folder structure. .The project was later reorganized to meet Fab/Epic standards, but all materials and workflows work exactly the same
Gonna grab this soon, extremely impressive. I was wondering if you’d ever considered doing something like this for a landscape material. Day’s Gone had a similar technique going on with the landscape and I’d love to see something similar available on the market.
Thanks! Glad you’re impressed and planning to grab it—we appreciate the support.
We’re currently deep into development on SPa Materials Baker V2 , which should be releasing soon.
In parallel, we’re also working on material layers specifically for landscapes.
If you have any ideas or suggestions for landscape materials.we’d love to hear them!
Im not the most knowledgeable with shaders but if I remmber correctly their landscape faked depth the same way your materials do. Here is the link for the work:
I just wanted to ask if it’s possible to improve one feature: “use random instance.” It would be helpful if we could set the range of variation for color, saturation, etc.
Hi, thank you so much for your kind words. I’m really glad to hear it’s been the best material system you’ve tried so far.
And yes, that’s a very good suggestion. Having more control over the “Use Random Instance” feature, especially setting variation ranges for things like color, saturation, and similar values, would definitely make it much more useful and flexible.
We’re currently working on many improvements and new features for the next version, and Random Instance enhancements are included in what we’re considering and developing.
Also, if you have a moment, it would really help us a lot if you could leave a review and a rating on the store. It makes a big difference in helping others discover the product.
Thanks again for the feedback and support. Suggestions like this really help us improve the product in the right direction.
There will be the possibility to paint masks using the new UE 5.5 texture paint system?
Vertex do the same thing but it is “locked” to instance so every mesh instance will have the same vertex paint mask…
With texture painting I could have different paint masks for each mesh instace.
Yes! We’re currently working on a new version of the product with many improvements and new features.
We decided to support Unreal Engine 5.6 and above only, in order to take advantage of the latest systems and workflows.
And yes — we also added support for paint masks using UV textures, so you can have unique paint masks per mesh instance, unlike vertex painting which is shared across instances.
Yes, it’s suitable for games, but the shader cost depends on how many layers and features you enable.
A basic setup is relatively light, while features such as multiple POM layers, displacement, rain effects, and several procedural masks will increase the shader complexity. You can disable the features you don’t need and use simpler material instances for background assets.
For hero assets, you can keep the full layered material. Once the look is finalized, another option is to bake the complex material into a simpler texture-based setup.
I created SPA Material Baker for this type of workflow, so the procedural material can be used during production and then baked when a lighter final version is needed:
The best approach still depends on the asset and target hardware, so I recommend checking Shader Complexity and profiling the final scene.