That list looks suspiciously like one I wrote about 10 years ago when I set out to do some programming.
I have sampled numerous random terrain generators - and gotten some nice results, but I have in mind a tool that would be amazing. I have no idea how to create it, but if anyone had the know-how, it would be really nice to have a terrain generator that could:
1) Accept a real-world DEM as an input, and use that DEM to flavor the character of the generated terrain. Input a DEM from the Himalayas to get rough mountains, the Appalachians to get rounded ridges, Nevada for basin-and-range type topography, central Kentucky for sinkholes, etcetera etcetera.
2) Hey, a lot of real-world topography is defined by lineaments. Ridgelines in Nevada run pretty much north-south. I should be able to use a Nevada DEM for my terrain character, but change the lineament to east-west if I want.
3) Also accept a rough layout for features. You should be able to take a square, and draw ridgelines and rivercourses on it, and the generator would spit out a nicely detailed DEM that includes those features in the character of whatever real-world DEM you provided in step 1.
4) When one square has been generated to your liking, you should be able to match it to the edges of any squares created in the future. I've got a great terrain generated for this area, now I want to create a DEM for the area just to the west. I should be able to tell the software that and have it work.
5) I really don't care too much about rendering. There are plenty of tools for that. I just want to create realistic DEMs.
Rant over,
-Rob
That list looks suspiciously like one I wrote about 10 years ago when I set out to do some programming.
Any results? Were you able to achieve any of these goals?
This guy has done something just like that - if I am reading your wish correctly...
http://www.howardzzh.com/research/terrain/
He has done it as a plugin for something or other I cant remember... you will have to read through it. (EDIT - ah yes , world machine).
Last edited by Redrobes; 02-11-2010 at 08:43 PM.
Which terrain generators have you tried?
I've tried World Machine, L3DT, Terragen, Wilbur, and a bunch of others that I can't remember the name of right now.Originally Posted by Fluesopp
Yes, I've seen that. It definitely looks promising, but without finer control of where features are placed, and especially without being able to match the edges of already-defined tiles, it's not enough for me.Originally Posted by Redrobes
Which is why I said "wishlist", because I know what I'm looking for doesn't exist.
-Rob
Honestly, I think Joe has the beginnings of my wishlist in Fractal Terrains & Wilbur.
A nice set of fractal rules to semi randomly build a world. I think you need an experimentation zone where the whole thing is rendered in time short enough for the impatient. I enjoy looking through the random generations to find the world that appeals.
Now the part that hasn't been done. I would like to take any slice of that world and do all of your wishlist to it and still be able to link it back to the overview. As I add detail I want the program to modify that detail to make it appropriate for the zoomed out perspective. I think that ViewingDale is incredible for this potential but I don't want to have to make each zoom level work automatically as far as natural elements are concerned.
Fundamentally I'd like to see a world creation framework that would allow people to realize tiny sections of the globe and have the computer approximate the sections so that they fit together and preserve the sections so they could be revisited. Sort of like the DEM project for Middle Earth, I'd like to see people's inspirations guided into a much bigger thing. Eventually I'd like the model to get complicated enough to generate temperature, water and seasonal changes.
I'd like a real geologist to make a world like an author writes a book. Then I want to read the world. If you must, think of it like a cross between Second Life and Survivor.
Sigurd
I'd get an uber machine with any sort of stats running any sort of operating system if I could keep a world on it like an ant farm. Always tweaking, always growing in detail.
Last edited by Sigurd; 02-13-2010 at 12:18 AM.
Dollhouse Syndrome = The temptation to turn a map into a picture, obscuring the goal of the image with the appeal of cute, or simply available, parts. Maps have clarity through simplification.
--- Sigurd
The analysis I did way back when suggested that the best way to implement this sort of thing is with a wavelet-based representation. You keep the world data at differing resolutions. The final area is the sum of all the larger areas. It's the basic scale-and-add scenario used by most of the standard fractal terrain generators except with user editing at each of the levels. It's not a convenient representation for certain activities but it's perfect for many others such as painting tiny details on a worldwide canvas. Essentially you keep the first few levels at full resolution and then store the higher levels with a sparse representation to avoid keeping data you're not currently using. Tiles are always seamless because painting automatically flows other to next block as needed.
Statistically generating terrain is a royal pain. The critical elements of terrain are tectonic uplift processes being opposed by erosion processes (volcanic processes are also important in certain contexts) to produce ridges and valleys. How they appear depends very much on scale. It's far too easy, for example, to perform an erosion process that produces plausible results on a very fine scale at a scale appropriate for single mountains. If your algorithm works for a 1 meter sample size, applying it to a 1 km sample size will give interesting but implausible results. I also haven't been able to reconcile a nice wavelet representation with any reasonable erosion algorithm.
Exemplar-based techniques can give good results (RedRobes pointed out Howard Zhou's work and there are similar ones out there mostly using Poisson blending and graph cuts to get good seam hiding), but they will always synthesize results from bits and pieces of the original exemplar. It gets the "style", but it's very easy to get the wrong scale things (basically it's a monochrome texture synthesis algorithm with constraints based on ridges/valleys). I've been toying with the idea of trying to something similar but incorporating some of the atlas-based features of Lefebvre and Hoppe to get something a little better possible detail levels, based purely on the conjecture that correctly matching gross features will drag along fairly plausible smaller ones.
My original idea for simpler synthesis was to provide a library of real-world exemplars and allow the user to place them as appropriate. For example, placing a spine and coverage wings while specifying "Appalachian" would synthesize patches of the appalachian mountains along the provided spine. My failure in the original code was poor blending exacerbated by low-quality source data. Chunks would appear at inappropriate locations and I didn't have a technique that would eliminate them. In the many years since then many better blending techniques such as Poisson blending have become well known and the concept may well work better. If I ever get a couple of free weeks I might try to resurrect some of the old ideas / code.
The tesselation tool in Wilbur was the first step toward implementing a synthesis engine. My goal had been to use the basic tool as a shel for directing further synthesis, but laziness and lack of time keep getting in the way.
Blending tiles is a non-trivial problem for more than a few tiles because you need to have a high-level direction. For example, if you've done all manner of un things on a tile and there is a large river leading off the edge of the tile then the next tile in that direction needs to understand that there's a river coming in and how to deal with and route that river.
In the wavelet representation (and the typical synthesis fractal generators out there), there is high-level information that provides the base level that finer detail builds upon. If you have geological features such as rivers, there are contraints that must be met. For example, river always must flow downhill. You need to place that context information at high level and then ensure that each added level of detail meets the constraints. A simple algorithm such as fBm adds positive and negative noise at all scales, giving little basins and humps everywhere. Constraining for rivers requires at least gradient control.
I think I've wandered a bit far afield in that brain dump.
If it is allowed a link in your sig to world machine would be nice waldronate.
Lord Ghee
I'm the Wilbur guy. Sure, I could advertise for the World Machine folks, but it wouldn't be directly helpful to me. I keep meaning to do the sig thing, but it seems like an awful lot of work.