Playing with detail texturing.
First creating detail material map for each tile, computed from terrain data - elevation, slope and curvature, using two additional fractal channels for mixing.
The algorithm first computes slope, if it's steeper than some defined angle of repose it's considered to be a rock.
I'm not using slope directly here though - a positive (convex) curvature is used to boost the slope slightly to make rocks more protruding at the top.
Gradual slopes and flat parts can use one of three textures. The mixing is done using one fractal channel. The first texture is default, the two other textures have some coherent probability of occurrence, that is additionally altered so they are more likely to occur on gradual slopes (dryer grass) or flat parts, respectively.
Yet another fractal channel is used for coloring - slight modification of texture colors to break the monotonous pattern on large flat areas.
The textures didn't come from an artist so all the patterns are my fault.
Also, due to this bug I can't have anisotropic filtering on atlas textures yet.