I am playing with the GSOC 2013 paint and I just realised I didn’t used all the tools available in it. But on the other hand I tried something I had never done before and it turned not too bad.
I used mostly the texture mask with the cutoff option (not present in 2.70a and in 2.71RC, but it’s ok without it) to generate a grayscale texture which is used to mix several procedural shaders (and you can use this texture as an input for those shaders, like color variations, roughness variation, etc…).
The thing you need to know is that each mixing shader node has the texture followed by a converter node coloramp as a factor input. Then you have to do the same for the bump, in order to have scratch deep, rust higher or lower than paint, etc… With some organisation it is easily manageable.
Of course it is easier to achieve a good result if you use a tablet and some brush textures. And by using the material mode in the 3D viewport, you can see how you are mixing your materials with pressure variation. Kind of cool ! With a low opacity black brush, It’s like if you were scratching more and more the paint stroke after stroke to reveal the metal !
The more materials you want to mix, the less freedom you have in the value range of your brush, or the more sensible it is… In fact it is defined by your coloramps, and the cool thing is that you can tweak how tight are the transitions between materials after having finished your paint by modifying the colorramps, and you can animate them if you want to show the aging, or change the colors easily (blue or green paint but keeping the metal and rust same color for example)… It is very flexible.
Here is an example of what you can achieve with this method, it could be better but I only painted one grayscale texture.
And here is a blend file with a cube ready to be scratched if you want to test.