I have seen this experimented with before. Here's my own version.
I added code to tg_height shaders that generates a Mandelbrot set and indents it into the terrain to create rivers. I didn't really edit code or parameters in the shader as much as just added a section to it, so this new terrain is fairly distinguishable on the SE landscape.
Currently there is minor/no performance impact, and I think it looks pretty nice.
There are issues that may be visible in some of the pictures (contour lines for example) but they are likely addressable.
Shader has been uploaded so you can try it out yourself!
It might not look totally realistic yet but this is kind of a first implementation and I think could be improved quite a bit.
Here is what it looks like so far:
/// Mendelbrot offset ///
float scale = 17.0; //Adjust this parameter to change the deepness the fractal
float quality = 45.0;
float fdist = 0.0;
float pass = 0.0;
position.x = point.x;
position.y = point.y;
complex.x = position.x;
complex.y = position.y;
while (pass<=quality && fdist<2.0)
tr = complex.x*complex.x - complex.y*complex.y + position.x;
ti = 2*complex.x*complex.y + position.y;
complex.x = tr;
complex.y = ti;
fdist = sqrt((position.x-complex.x)*(position.x-complex.x)+(position.y-complex.y)*(position.y-complex.y));
pass += 1;
height.x = height.x-sqrt(scale*pass) / 100.0 + 0.006*scale;
/// It has been done! ///
The main advantage of this method I have noticed so far is that seems to be very cheap computationally.
Improvements likely to come in the future.
Let me know what you guys think!