Flow Reconstructure will raise the center of the terrain?


As shown in the image, in a large-scale scene, the terrain processed by Flow Reconstructure has a significantly higher elevation in the center than around the edges (this case was achieved by simply changing the startup area to 81.92 km).

This makes me curious about the principles behind Flow Reconstructure. Perhaps someone can explain the algorithm reason?

1 Like

At a quick glance, my suspicion would be that, since the Flow Recon device by default is attempting to drain all water to either existing water or the map borders, if you didn’t plug in any water, the only option is has is to drain to the map borders. On such a large map, with many elevation changes, raising the center to be a higher elevation than the edges would be the only way to drain water to the edges without causing unrealistic scenarios (like water running uphill).

That being said, I have not tested out the newest version of WM yet, so I don’t know if the behavior has changed.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Flow restructure makes sure that each cell naturally drains into another cell until it is off-map. That means that rivers will automatically take natural paths, and devices that accumulate flow volume will calculate correctly.

There are two reasons why the center gets raised:

  • In the most recent flow restructure version, there is no support for ridge-cutting, only filling of valleys. Depending on the map, that could mean that the overall height needs to be significantly raised to get a good drainage. Parallel ridge cutting was algorithmically significantly more complicated than filling; I had to hold out the parallel version of ridge cutting from Hurricane Ridge for time reasons. It should hopefully appear in Dragontail during the next releases!
  • Complicating the issue above, is that there is a minimum-legible elevation step from one cell to the next. This is less of an issue with pure 32bit float outputs, but a significant amount of exports are done with 16 bit heightfield formats. That gives you only 65535 different elevation values (scaled between 0 and your max elevation) across the entire terrain. If you have an 8k world, and a max vertical height of, say, 3km, that means that each cell will differ by a minimum of 0.04m, and so there must be an elevation difference of at least 187m between the edge and center of the map (where it has the furthest to drain). Small, but noticible.
2 Likes