Propane Tank - Shader Breakdown

Having learned a lot about Unreal Engine shaders over the last year I wanted to challenge myself to make a versatile propane tank shader that could be used to quickly adjust color, dirt and rust levels to suit level designers needs on the fly!

My goal was to pack in as many fun adjustable parameters as possible while considering both performance and keeping things user friendly. One thing I'm extremely happy with is the use of primitive data. Having unique settings for each instance of the object is super useful, not to mention it limits the amount of material instances needed per unique look to just one!
Let me know what you think and feel free to ask any questions below!

Who knew propane tanks could be so beautiful!

Who knew propane tanks could be so beautiful!

Adjustable color and ground up dirt
Dirt will always be ground up Independent of rotation
Using custom primitive data allows propane tanks to use the same material instance but have unique parameters!

Tank wide rust based on Z-up Normals first

Edge rust that combines vertex normal data with pixel normals

Sand blast simulator!
Edge Rust and Rust Wide can be erased using the Red and Green Vertex channels respectively

Wireframe

Wireframe

Base color, roughness, normals, layered material masking

Base color, roughness, normals, layered material masking