Material Layers Door Example Project
Weathered door using Material Layers.
This example project demonstrates a production-ready procedural weathering workflow built with Material Layers.
Requires Material Layers 1.0+
Instead of baking wear and tear directly into textures, it uses baked mesh maps to generate fully editable effects such as edge wear, dirt accumulation, discoloration, and surface variation. Each effect is implemented as an independent material layer, allowing you to tweak or disable individual effects without re-baking textures. The project also demonstrates modular texture sampling through Material Layers. Noise and normal maps are injected as reusable layers rather than hard-coded into shaders, making the workflow significantly more modular and reusable.
All included materials, masks, and shaders can be reused to texture other assets.
Features
- Production-ready procedural weathering workflow
- Fully editable edge wear, dirt accumulation, and surface variation
- Dirt accumulation driven by baked ambient occlusion and mesh position
- Edge wear generated from curvature maps
- Tileable wood material
- Albedo procedurally derived from height using editable gradient maps
- Modular noise and normal map texture array sampling
- Reusable layered workflow suitable for doors, furniture, and other wooden assets
Included
- Demo project with door material
- Complete LayerStack and LayerGraph setup
- Wood SurfaceMaterial colored using gradient maps
- Weathering effects (ground dirt, AO dirt, edge wear etc.)
- Optimized texturing workflow
- Texture sampler layers
- Texture array sampler layers
- Normal map array sampler layers
- Source shaders for every layer
- Door mesh (.glb)
Important Details
UV Layout
- UV1 - Baked mesh maps (AO, Curvature, etc.)
- UV2 - Reserved for Godot lightmap baking
- UV3 - Wood texture tiling
- UV4 - Noise and normal map tiling
- UV5 - Normal map rotation data
Normal Map Rotation
Rotating UV islands also rotates tangent-space normal maps, resulting in incorrect lighting. To compensate, the required rotation is baked into UV5.x. The wood shader reads this value and rotates the sampled normal back to its correct orientation, ensuring consistent lighting regardless of UV orientation.
The included .glb door mesh in /assets/imported can be inspected to understand the required UV layout.
Installation
- Download the .zip package.
- Open the Godot editor.
- Choose Import and select the downloaded .zip file.
- The example project and all resources will be imported automatically.