← Back to Portfolio

Environment Art

Procedural Rust

Role Technical / Environment Artist
Software Unreal Engine, Substance Designer
Collaborators None
Category Shaders

Project Overview

This project showcases the creation of realistic procedural rust materials using Unreal Engine and Substance Designer. The materials dynamically respond to surface depth, allowing rust and moss to accumulate naturally in low-lying areas.

Tank mesh - Render pass visualization

Car mesh - full rust and moss blend

Showcase of dynamic rust and moss - both meshes in scene

Technical Approach

This project uses signed distance field techniques which allow for a dynamic rust and moss layer height based on the depth of the surface.

Material Function graph

Shared material function - Plane SDF depth logic with parameters to control fall-off and moss depth

Material blending graph

The use of the custom material function used with unreal engine's material blending

Artistic Approach

Substance Designer was used to create the base textures for the rust material

In order to achieve a realistic look, I followed a reference-based approach, studying real-world rust and moss colours to guide texture creation process. This was done with the help of Grzegorz Baran's study (Color Calibration For PBR Materials, 2025)

Material Function graph

Shared material function

A material function is used to encapsulate core SDF calculations and parameters for reuse across different materials.

Material instance preview

This is a look in to how the user can tweak the material parameters in real-time in order to achieve the desired visual outcome.

Key Learnings

This project taught me about the use of blueprints to manage shader parameters in order to create dynamic and visually rich materials. It also deepened my understanding of signed distance field techniques and how they can be used to create procedural effects that respond to surface geometry. Overall, this project was a valuable learning experience in both technical shader development and artistic material creation.

If I had more time, I would have liked to explore additional procedural techniques for creating more complex weathering effects and further optimize the material system for better performance.

Assets Used