So, I've been poking around with Substance Designer.
This is a tool for procedurally generating PBR materials for use with modern engines.
It works by chaining together generators and effects and blending them into each other in a series of steps to slowly build up detail on a texture.
You start off with a basic shape or effect, then apply more and more effects to it to add more types of detail, and by the end you have outputs for the various types of texture maps that you need for PBR - a colour map, normals, roughness, and metallic maps (plus potentially height and ambient occlusion for engines which support them.)
The whole thing turns into a substance package which can be imported into UE4 or Unity and be configured there (such as choosing the resolution or any modifyable parameter you created), and it will automatically bake out all the texture files required.
I've included some screenshots of a material I was working on.
I wanted to create a pattern of tiles, so the first step was to design that pattern. I used a vector shape, stretched it, then cloned it a few times at different overlapping offsets to make the shape I wanted:
Then I used that basic pattern to create a heightmap, using various effects to add chipped and damaged sections and irregularities, and also used various filters, combining noise and pattern generators to build the surface: rock grain, dirt, moss in the cracks for the colour portion of the material.
Adding detail through a large set of filters, generators and blends
This whole thing took me quite a few hours, though I was also poking about and learning the program at the same time.
I could still do more work on this (especially for the areas between the tiles), but here's a larger preview of the result:
Preview of the result
And here's a shot of the resulting material imported into UE4:
Resulting texture in-game in UE4
It's still a lot of work to create good-looking textures like this, but it's an interesting workflow that has a lot of merit for someone who doesn't have the skills to draw textures by hand, and has the advantage that you can create anything you want without needing to find a texture-suitable royalty-free source image to beat into shape with liberal use of the clone stamp tool. Also, when you build up a material piece-by-piece like this, you make the heightmap (to build the normal map) and the other maps alongside it, so you don't have the hard job of trying to create them afterwards from a photo-sourced texture.
Just today, I was also playing around with a very interesting feature: tri-planer projection. The basic idea is that it takes a model and tries to wrap the texture around it automatically, placing the details in the appropriate parts of the UV map for you and without any seams.
The results varied a bit, but they were still impressive considering how fast it was compared to making the UV maps and painting the textures manually would have been, and even more so considering the somewhat awkward shape of the model I used.
I guess this would mostly be useful for objects which have a mostly uniform surface, e.g. stone objects and rocks, though if you have good UV mappings (which I didn't), you could still use it to make a good base to draw details on in another program.
Here are some screenshots of me applying the above-created material to a simple mesh (yes, I know that texture doesn't really make sense on this object):
(imgur library of above images)