Adding Lakes with Create Water

In the continuing adventures of translating my hand drawn map into a real terrain, I’ve been having problems getting both realistic rivers as well as lakes in World Machine. Currently, the only way I seem to be able to get lakes is with a Create Water node with no Flow Restructure node present, but that method makes too many lakes (as well as lakes that are too large). Once the Flow Restructure Node is present, every lake seems to turn into rivers and river valleys, albeit really pleasing rivers and river valleys.

I’m trying to create glacial melt lakes (Like the Great Lakes surrounding my home state of Michigan), and with the surrounding terrain, they should exist at higher than sea level, so simply plopping a distorted crater into the landscape is out. I’ve not yet messed with the Drainage Input or Synthesis Guide ports on the Flow Restructure node. Does my answer lie there, or am I on the wrong path completely? Other than that, I’m tapped for ideas, since you don’t seem to be able to connect water to combiners (I thought I could combine a Create Water node without Flow Restructure and a Create Water node with Flow Restructure using a Shape Generator to mask out the lake area).

Updating with further discoveries: A distorted crater placed into the landscape seems to work somewhat if it’s combined with a Flow Restructured terrain. The gradient areas, however, get those pockmarked lakes that erosion absolutely hates (the ones that give you these weird lake-topped spires in the terrain) that you get without a Flow Restructure node. Setting the lake-crater-thing to the drainage input or synthesis guide inputs did not seem to have any noticeable effect. Placing a new Flow Restructure node after the results of combining the crater with the previous Flow Restructure node and putting the Create Water node after that makes a river that drops like a waterfall to the bottom of the crater, and then seems to create a canyon that extends to the extent boundaries from there, which admittedly, is a really interesting way to make canyon terrains that I want to explore in the future (in my never ending quest for the perfect canyon scene), but is not immediately applicable.

As a complete aside, if one were to create a bowl shaped lake at the peak of a mountain, would you be able to use that as the sole location for precipitation and effectively make lava flows coming from a caldera? Possibly using the tributary and lake masks as masks for a combiner to add terrain where the rivers are located, rather than having them cut paths, simulating buildup of volcanic rock over time? Just a thought I had while playing around.

Welp, as it turns out, I’m a bona fide idiot. A grade-A dumb dumb. For some reason, I’d gotten it into my head that the Flow Restructure node was one of those nodes that had no internal options to change. I’ve gotten the results I was looking for by dropping the lake mask (radial grad distorted, inverted, then combined using “min”) into the terrain, using the distorted radial grad (pre-inversion) as a drainage mask, then messing around with the settings inside the Flow Restructure node until I got results that I liked. I apologize for noising up this section of the forums. Hopefully my moment of idiocy helps someone out down the line (or hopefully that lava flow idea pans out).

So, seemingly random update on something I thought I’d solved. I found and am currently testing an interesting alternative to what I’d described above, as well as the “official” solution for adding lakes back in according to the node reference available online.

Instead of messing around with cutting basins back into the terrain once the flow restructure effectively gets rid of them (at least, as far as the Create Water node is concerned), I’ve been playing around with using the layout generator originally used to create the basins, and applying it to a Composite Type node set to “Pack to Composite Type” and using the water core type. Once I have the water looking the way I want it to, the plan is to plug that data into the “Existing Water” port on the Create Water node. Hopefully, this forces the Create Water node to recognize lakes in their original position, without having to cut them back in after the Flow Restructure. Having the Composite Type node set to “Unpack from Composite Type” looks like it can also be super useful in combining water masks to route into the Existing Water port (for example, having lakes, rivers, and water from the Coastal Erosion node all plugged into the Existing Water simultaneously, something I’d struggled with before).

I will update with results.

Immediate test results show that simply having the lake shapes sent to the Drainage Input port of the Flow Restructure node gives much nicer, more consistent results. However, the Composite Type node still seems to be useful for combining existing water maps prior to routing to the Create Water node or the Drainage Input of the Flow Restructure node.

Of course, I could still be going about this completely wrong, but it is interesting playing around with some of these nodes.

Yes, you can definitely use the Composite device to create your own water surface!

If you create a constant height for the water elevation, and get the depth value by subtracting the terrain from that. WM will interpret any area with depth > 0 as water. Because of this, if you mask or multiply your depth values with a layout or something similar, you can restrict the water surface to exist only within a certain area, ie a lake.

You’ll also need to provide a 2D Vectorfield for flow directions; you can again use a composite node for that purpose. Give it two constant heights set to 0.5 for stationary water.

There is additional lakes-related functionality planned to help with manually and automatically creating lakes, but it didn’t make the cut for the alpine lakes release (ironically enough).