So I see there’s a few procedural shaders out already, but they seem to rely on the AO map and don’t really do anything to improve the behaviour of specific things, such as rust, moss, dirt, etc.
With this in mind I’ve set out to improve the situation. Here’s a rough progress video of my rust shader:
The rust is defined first by vertex painting the model. You can also supply a rust mask as a texture. From there you can control the age of the rust, depth (it uses parallax occlusion so will actually eat into the model), sun damage such as bleaching and cracking paint and sun direction (and also whether the sun damage is relative to the object or the world). The rust textures themselves are 4k and will progress from light surface staining to deep, rich weathering that will almost certainly give you tetanus. The paint will bubble and crack even before the rust comes in.
I’m looking at adding seepage from rain next and then I’ll be looking at the moss grower and dirt dirtier.
Finally I’m considering adding a tool that can analyse a mesh and do an initial painting pass of the vertices for you, to maximise rust in enclosed corners, moss where moss would like to live and dirt where things typically get dirty.
This is the first time I’ve actually planned an asset out that far in advance so we’ll see how it goes.