Erosion and flow map differences

I recently received a great question via email regarding erosion mask outputs. It asks, approximately:

Why do the flowmaps in my terrain preview not match between my preview and my final build?

I will copy’paste my answer here along with an example:

The specific problem you’re having can be mostly corrected: Add an “Equalizer” device to the flow map output of the erosion device. From there, you can use a bias/gain to adjust what level of flow makes it through. Your preview and full resolution builds should now have MUCH more in common with each other.

In depth explanation:

The reason why you need to do this is that the erosion mask output intensity scales (nonlinearly) with increasing resolution -- so areas that receive "a little" flow at low resolution may receive "moderate" flow at a higher resolution. The Equalizer device remaps the flowmap so that the percentages at each flow intensity will always be about the same.

Finally, there are two things to be aware of:

  1. There will still be some path changes due to randomness in the erosion algorithm. However, the dramatic intensity differences should be gone.

  2. Devices like the Equalizer sometimes present difficulties with tiled terrains. (Devices that can be odd are marked with a (!) in the device workview). This is because the Equalizer is only considering the current tile instead of all tiles when it calculates the equalization factors. This is not usually a problem as you can increase tile blending size, etc to counter, but it is something to be aware of.

Ultimately of course, it would be nice to have the flowmaps be stabilized across resolution, but this is actually surprisingly hard to do in a way that is immune to context issues similar to the equalizer approach.