Erosion Scale

Discovered World Machine a few days ago and liking it a lot. I’m having a problem with Erosion, though, can somebody shed some light into how to World Machine determines the dimensions (in world units) of an erosion feature. My erosions are always scaled with the terrain.

Let’s say I create a new terrain and set it to be 16x16km big (I set that size both in the Generator node and also in the World Commands->World Size menu). When I add channeled erosion to the terrain I get some good-looking erosion features. Looks about right, too, the erosion channels I get are about the right number for a 16x16km area and would be severeal meters wide in world space.

Now I set the size of the terrain to be something much smaller, say 1.5x1.5km). The terrain square becomes accordingly smaller in the viewport. When I apply erosion again, I get the same number of erosion channels as I got on the big terrain! Meaning that the erosion pattern shrinks to fit the size of the terrain, but in world units the channels are much smaller now. I would expect to get fewer channels that are as wide as the ones I get on the big terrain, otherwise the scale impression is off.

Any idea what I’m doing wrong here? Do I need to add some math nodes to get this to work or is there a setting like “Width of erosion channel in meters” that I’m missing?

I believe, the only way to solve your problem yet is to reduce the erosion parameters to decrease the effect of the erosion in general.

Maybe reducing channel depth might also help.

So there is no way to control the scale of the erosion? That would make things difficult. Is there maybe an operator that controls the scale of a device in relation to other layers? That way the erosion could be scaled 1x across a terrain that’s repeated 4 times, effectively scaling up the erosion.

The trouble with scaling the erosion correctly is related to how the eorsion works. The erosion looks at the “mesh” provided by the heightmap to determine where sediments will go. Basicaly the erosion just subtracts height from one place (one pixel), acording to terrain properties, carries it dowstream, and deposits it (on another pixel). The trouble for scaling appears related with the definition of “downstream”. Sediments are only carried in one direction, and there is no notion of a “width of a sediment” or the width of a “canal” to be eroded… So naturally there can be canals the size of one pixel, which is not a scalable unit.
To figth this, there is the “Erosion Filtering Type” parameter, that applies a smoothing effect after the erosion step, but that obviously doesn’t scale things.
I think one way to do a scalable erosion device could be to apply the erosion only to a re-sampled version of the original terrain, and then “interpolate” the eroded shape back onto the original terrain…
This would mean: to do the erosion at a resolution that looks good, and then resize it to fit the resolution of the terrain.
To do this manually, you can save a nice looking eroded terrain to a file (using File Output device), and then load it (File Input device) at the desired resolution, to fine-tune it afterwards…
This is what I usually do: Aply a rough gross erosion in 1024x1024 or 512x512, and then load it again on a 2kx2k settings… But it is reare for me to do things at heigher resolutions than 1024, for my needs (yet)…

Cheers,

It should be able to filter the erosion channels by substracting the terrain from its eroded version.
(If you add the result of this to the terrain you get the eroded one again.)
Soo… applying the expander on the erodion will give you the ability to influence the width of the channels.

As mentioned already, it’s rather difficult to make erosion scale independant. There is no “channel” size per se; the channels are a natural result of the flow of fluid over the terrain. Channeled Erosion mode does subtract the flow map from the terrain to enhance the channeling effect, and so in that case it may be possible to do as nikita suggests, but its a much different look from the more subtle erosion WM usually produces.

What’s more, because of the randomized nature of the erosion, there is no guarentee that the terrain features will be in the exact same place at all if you use a different size of the same terrain.

One partial solution is to enable “Geological Time Enhancement”, as the larger channels it creates will be resolution independant. You could then turn down the base duration a bit to mostly make the erosion consist of those larger erosion patterns.

I’ll try the suggestions from this thread, and I’ll post some results when they are available (it’s a commercial project, so it might take a while).

Remnant: Maybe I’m misunderstanding the internal workings of the build process, but isn’t it possible to first simulate the erosion on the terrain, save that in an internal (or maybe even user-accessible) erosion map, then do image processing on that erosion map (to accentuate various features like the channel size) and apply that to the terrain as the actual terrain?