Concepts of Sedimentology

This page attempts to explain and describe the concepts used in this plugin. It is by no means complete or exact. The plugin code itself may change as parameters and factors are tweaked and playing with the knobs may be fun for people.

Displacement vs. Degradation

The two major changes that blocks can undergo in this plugin are displacement and degradation. This isn't identical to what sedimentology teaches us where generally we have 3 parts involved: degradation, transport and deposition. If we wanted to truly implement transportation in minecraft, we would have to have transport rivers contain sediment so it could actually be transported somewhere far, as happens in real life with rivers. However, in MInecraft, rivers are not made with flowing water. And even if we'd figure out that a river ends up in an ocean, we may just have to walk hundreds of chunks in order to determine where the suspended materials should be deposited.

Thus, implementing transportation of sediments in a realistic way will be too expensive and complex. It may be interesting as a research project, but I'm writing this plugin in order to get Minecraft worlds look a bit more realistic, not be realistic. Blocks are still going to be cubes, you know.

So, I chose to implement displacement and degradation. Blocks will not get carried away over large distances, instead, we're looking at moving blocks very small distances only.

Block-neutral

The plugin is entirely block neutral: The total amount of blocks stays the same. This is important since we do not want to end up with an empty world over time, but we also do not want to create new blocks out of thin air.

Angle of repose

This geology term describes the angle of the terrain in which material will no longer easily move. The angle of repose for sand is low, for dirt may be higher, and hard rock can stack vertical for a long time. Underwater, the angle of repose changes and becomes even smaller, our earth's seafloor bottoms are so incredibly flat you'd have a hard time making out that you are on a continental slope.

The plugin uses this AoR to determine if blocks can be moved downward, and will make some blocks move further than others. This wil result in the long run that sandy slopes are going to be very gently, but dirt slopes remain steep, and makes for a nice natural landscape. It also causes rocky outcroppings to become the determining factor as to how mountains shape, and you'll end up seeing that the shape of the stone blocks under the dirt cover is dominant in forming the final shapes of hills and mountains, until they themselves degrade and start to move downhill.

Degradation

Rock degrades into smaller rocks, then into gravel, then into sand, silt, clay. Each step is easier, as the surface area of the material is larger and the effects of weathering will break down particles in to smaller particles faster and faster, until the size is so small that there isn't much to break down anyway and the material is mostly at rest anyway. In this plugin, we assign a hardness factor to the materials which determines the rate at which they decay into a material of smaller grain size. For stone, it's obviously a very low rate. But for gravel however, it's fairly easy to degrade into dirt. The rates chosen in this plugin somewhat are tuned to keep the minecraft landscape the same - you won't see the hills get covered in sand or clay, but anywhere underwater you will find sand deposits created, and clay will eventually become the dominant ocean floor cover material.

Water and Vegetation

The presence of water accelerates all aspects of Sedimentology. Rain increases both degradation and displacement, flowing water increases it further and stationary water also increases it, but not as much. These factors can make a big difference, and correspond to why in some areas the landscape is perfectly safe in dry periods, but a rain cloud can create massive landslides.

Vegetation has the opposite effect on Sedimentology: it slows down displacement, because plant and tree roots hold on to the material and create a mat of organic material that stop the soil from leaching out. Tree cover also provides a direct shield from the effects of rain water. This effect can be used beneficially to guard your landscape against erosion, up to a certain point. If your slopes are not too steep, planting grass or flowers on slopes will most likely halt or lower the chance of blocks falling down. But if your slopes are too steep, eventually material will still move down and crush vegetation on the way down the hill.

A waterfall is one of the more destructive things in nature. It will carve out deep holes in bedrock easily, and if left unattended, can destroy mountain slopes. At the bottom, massive deposition areas will form that flow blocks downhill as long as it can. While in nature these streams meander around, in minecraft this results in massive fan-like waterfalls that grow and grow wider. It is somewhat less aesthetic, but the effects on the landscape are actually quite similar to what happens in real life, except it all happens under a massive layer of water.

At great waterdepths, erosion still happens and the angle of repose is still low, but there are not as many forces working on sediments as out in the open, so the plugin implements an exponential declining chance in deep ocean waters. This has the effect that a sediment buffer zone is created around coastlines which somewhat delays erosion, otherwise your coastlines would degrate away really fast. In real life, sea water doesn't only take away sand, it also creates beaches and dunes at the same time, so this chance factor somewhat makes coastlines look a bit more realistic.

Under the hood

Erosion works exactly the same no matter where you are, and this plugin attempts to do exactly the same. Since we can't inspect every block in the world, we need to program a selection mechanism that is ultimately fair and does not disproportionally degrade some blocks more than others.

Ultimately, erosion really only does something in locations near the surface. For this plugin, we've simplified this to make the selection mechanism only consider the topmost block in each (x, z) location. This means that a river running in a tunnel doesn't do any erosion, but it eventually will erode the whole tunnel away if it is above sealevel.

The selection mechanism considers blocks only in chunks that are loaded, and randomly finds a block in one of the loaded chunks. That means that areas that are not visited often will not be eroding, and heavily visited areas will see high levels of erosion.

Displacement is done by finding a suitable dropping point. The plugin implements a grid walking algorithm that attempts to find the closest spot to drop blocks down to, and will favor shorter horizontal drop distances over further ones, but will still go for the lowest drop position. This has the effect that on steep slopes, blocks will likely drop 2 or more blocks and not 1 at a time, so effectively erosion does more work there.


Comments

  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes