The Synthesis and Rendering of Eroded Fractal Terrains(1989) – The classic by Musgrave, Kolb and Mace. This was a real find. While I’ve kind of given up on using procedural methods to generate global terrains, I still use procedurals quite a bit to detail the terrains I create. Often with a great deal of difficulty. While this paper is more than old enough to legally drink booze and graduate from the university, there is still a lot of meat in this paper. The description of their hydraulic erosion model should be of help if I ever go back and fix the precipiton node in planetGenesis. An interesting touch with the Musgrave et al version of precipiton erosion is that it accumulates water into little lakes over successive iterations, promoting flow even over surfaces with troublesome basins. I need to remember that bit, although I’d probably try to work in several non-erosive iterations to give pits a chance to fill before beginning actual erosion.
note: The Holder exponent, H, that he refers to is also called the Hurst exponent in other papers. H is often used in fractal algorithms in place of persistence. The Hurst exponent describes a relation between lacunarity and persistence, such that:
persistence = lacunarityH, and
H = log(persistence) / log(lacunarity).
An Erosion Model Based on Velocity Fields for the Visual Simulation of Mountain Scenery(Chiba, Muraoka and Fujita, 1998) – More sophisticated erosion algorithms. This one seems like it could be applied equally well to a precipiton or an accumulated-flow model. I think working with accelerations due to slope rather than assuming steady-state flow velocities for given slopes increases realism. I’m not sure I understand the meaningful physical reality of the surface impact energy element, but it does add interest and another layer of customizability to the erosion process.
River Networks for Instant Procedural Planets(Derzapf, Ganster, Guthe and Klein, 2011) – This is an interesting completely procedural method for, as the name implies, generating planets as meshes. My interest of late has been the manual creation of planets as raster grids(heightfields, temperature grids, etc.), but I’d love to see an implementation of this one. I’d be interested in adapting this things algorithms for river network generation to grids. Particularly interesting is it’s formula for water and ground elevation along rivers.
The reason this method is constrained to meshes is mentioned in the article.
We use a mesh data structure because the algorithm of Kelley et al. requires labeled edges. While it would be possi- ble to store the planet in a displacement map wrapped around a sphere, only eight directions are possible for transporting water between neighboring cells, and a solution would be needed that can exceed these 8 directions when zooming in. Otherwise, parallel rivers would emerge. The mesh data structure supports two atomic operations – edge split and vertex collapse – that are used to manage the level of de- tail. Edge split operations can be applied to increase the level of detail locally when the user comes closer to parts of the terrain. The reverse operation, vertex collapse, restores the representation at the lower level of detail.
Perhaps this could be adapted to a mesh by use of something like the Tarboton d-inf flow-accumulation algorithm?
Controlled Procedural Terrain Generation Using Software Agents(Doran and Parberry, 2010) – This algorithm is another altogether procedural methodology(although with a lot of somewhat understandable parameters controlling the generation of terrains). The paper has lots of helpful pseudocode to clarify the various procedures.
It would be fun to play with the Mapgen3 program shown to the left. It doesn’t appear to be publicly available as yet, though. As with most pure procedural methods, terrain-building is more a matter of exploration(altering parameter and seed values and re-generating) than design. Though not a design-based method, the generously provided pseudocode makes it seem like a good program to try to implement. Probably, it would be better if I could find an existing implementation by someone with less meagre programming skills than my own…
Terrains(Teoh, 2009) – This one has the most user controllability of any of these. The user has the option to input the desired shore and ridge lines. A river network and a set of elevations are generated based on that information.
For my purposes, this puppy may be the most useful methodology. I posted about this on the Middle Earth DEM. For their purposes they would need more control of river paths. I think, with a user-defined river network and skipping to the fifth step on creating an elevation map, this could be useful to them, too. Without pseudocode figuring out how to
implement this algorithm would probably prove a formidable task for me, but looking at the results is pretty inspiring.
Realistically, I’m just really hoping an implementation of this is already available out there.
I just found Modeling Landscapes with Ridges and Rivers: bottom up approach(Belhadj, 2005). This one
has pretty good looking results, though I don’t find them quite as attractive as the ones RiverLand produces. The paper contains several pseudocode listings that might be of help in implementation.
When you’re as skilled a programmer as I am, you aim at the lowest point consistent with your goals. Honestly, if I could get something to generate a terrain that looks like the image to the left, I’d be very satisfied.
Finally, here are some additional related articles that I think may be of use but have yet to examine closely.
River and Coastal Action in Automatic Terrain Generation(Teoh, 2008) – At first sight,
this one looks complicated, but with a lot of real potential. It has several different profiles and growth patterns of mountain ranges, hills, deltas, beaches, headlands and meandering rivers. Like RiverLand, this one, called WaterWorld, produces some very attractive landscapes.
A nice attribute of WaterWorld is the
| wonderful coastal erosion effects. WaterWorld can also vary the placement of rivers based on a constant prevailing wind and existing topography, thus making wind shadow desert and wet coastal mountains. Sweet. I wonder if WaterWorld’s water model could be adapted to erosion. Maybe precipitons could be dropped at higher density on windward mountain slopes and lower density downwind of mountains?
There’s a lot here that could be of use to a skilled programmer creating a terrain-generating app. Much as I like this stuff, I think I’ll aim lower.