Wednesday, January 11, 2017

Ideas for Distributing and Generating Terrain Features

In a post a few weeks back, I mentioned a potential strategy for procedurally generating global terrain.  Yesterday, I mentioned a few software packages that can be used for generating maps and terrain, but that aren't comprehensive.  That was an outgrowth of a discussion over at the Mad Genius Club blog, where I had a few more thoughts in the comments section.

After that discussion, I had a few thoughts on aspects of terrain generation that aren't covered by the software packages mentioned, nor are they handled by the approach I mentioned for global terrain. There are landscape features that just seem to be missing from current approaches, with respect to automatic placement and/or generating the actual terrain (i.e. creating mesh or altering the elevation grid) for the feature.  I have a few ideas on both placement and generation, which I've summarized below.  The ideas below aren't comprehensive - they cover neither every terrain feature nor every idea I have on the subject - but they're kind of a starting point.

Polar Terrain

At least on Earth, the polar regions are strongly shaped by glacial ice and its erosive effects, as well as wave action along the coasts.  In coastal regions, fjords and inlets abound.  The coastline is very jagged.  There are many small islands. Lakes abound, both in coastal regions and inland.  The lakes may or may not be connected to river networks.  I observe that not all portions of coastline in the polar regions are rugged.

This could be implemented using the fractal subtraction from the base land form.  A scale factor could be applied to the fractal value, to determine how much subtraction occurs.  At latitudes close to the equator, the factor should be zero.  At some latitude, it should start at zero and increase towards the poles.  My general observation is that this latitude is somewhere in the 41-46 degree range.  This is just an idea, and I've not yet attempted an implementation as of yet.

Coral Reefs

Where water is warm enough, coral can grow.  As volcanic islands subside, if the rate of coral growth equals or exceeds the rate of subsidence, the result may be a coral atoll.  This would be a ring-like island that may or may not completely enclose a lagoon.

A potential implementation might start with a polygon defining the outline of the island.  If working with a map defined by polygonal cells, this could simply be the cell itself.  A polygon would have to be generated if a raster elevation map was the basis.  In either case, once the base polygon is obtained, a subdivision process could subdivide the edges, perhaps perturbing them a little.  Then sequences of edges could be stochastically selected to serve as the centerline of an island.  In this matter, a series of islands would envelop a central lagoon, with inlets.  This should only be applied in an appropriate latitude band.  Alien worlds may or may not have a coral island equivalent.

Barrier Islands

Barrier islands are common feature along coastlines.  There are at least three common theories on their formation, none of which are sufficient to cover the origin of all the barrier islands.  For example, two different portions of the Frisian Islands have two different proposed origins.

Perhaps a low-frequency fractal could determine where such islands are placed.  I observed that they're generally fairly straight or smoothly curved.  Sections of coastline whose value from the fractal data fell within a threshold value would be the basis for a polyline.  This polyline would be simplified, then displaced toward the water, where it would serve as the centerline for an island, similar to the coral reef approach above.

Sand Dunes

Sand dunes exist in a multitude of environments.  They appear along sea coasts and lake shores, in deserts, and in the mountains.  There are several known approaches for generating sand dunes, so placement is more the issue here.

This isn't geologically accurate, but a "sand zone" can be defined in a latitude range centered on the equator.  Within that range, sand may be available.  A low-frequency fractal function can be used for points within that range.  Along the sea coasts and lake shore, if the fractal value is within the "dune range" then sand dunes will form.  A size scaling factor could also be based upon the value within the "dune range."  Inland, only in arid regions should dunes be generated, but not everywhere in a the arid region should typically have sand dunes.  Again, the "dune range" concept can be used, but the range might be different.  Its certainly not a full solution.  For example, there's a reason that the Great Sand Dunes are immediately west of the Sangre de Cristo change.

No comments:

Post a Comment