Living in the Pacific Northwest of the US is one of the biggest reasons World Machine exists. From deserts to high alpine to rain forests, we have it all – and hiking and traveling those areas provides a lot of inspiration for new devices and functionality within World Machine.
A few weeks ago I took a quick weekend backpack to Colchuck Lake, a beautiful alpine lake nestled in the central cascades. At around 6000ft of elevation, Colchuck gets buried each year under many dozens of feet of snow, and then slowly melts out well into summer.
Spending time camping on the snowy shore and soaking in the stunning surroundings gave me a lot of interesting ideas, but most importantly made me determined to improve the Snow device in WM.
The snow device has always been tricky to use right. Not only are the exposed parameters fiddly, but the results were often inconsistent between low and high res builds, necessitating even more tweaking and frustration. Most damning, the solution method scaled poorly, making the snow device impossibly slow in high res builds. All of these factors conspired to make it less useful than I had always hoped.
Meet the New Snow Device
The trip to Colchuck was the inspiration needed to overhaul the Snow Device.
Let’s start from the top. It’s simpler to use:
But can simulate snow accumulation pretty stunningly:
Unlike the old snow device, it’s also very consistent across resolution of build:
Finally, and very importantly, it uses a more efficient solution to the PDEs governing the snow behavior to get some massive performance improvements:
The new Snow device is faster on small worlds and massively (hundreds-to-thousands) faster for very large worlds, where the old Snow device would simply blow up in terms of processing time required.
Melt your Heart Out
One of the major bits of inspiration I drew from the Colchuck trip was realizing that the melt-out process produces a fundamentally different looking landscape than the same amount of snow freshly fallen. Let’s look at that photo again:
During the accumulation process, snow accumulates and softens the terrain, creating a relatively uniform and even snow surface.
During snow melt, the snow surface melts out quasi-evenly (given factors of sun exposure, temperature, etc). But since snow has accumulated to different depths on the terrain, the result is the photo above: The deep gullies and accumulation zones retain snow, while the steep, exposed, or highest areas of the terrain clear of snow early.
How WM does it
You can still specify masks governing accumulation and melt areas during the accumulation simulation – these allow you to have things like snowy peaks with temperate lowlands.
But to account for this “Winter” vs “Melt-Out” dichotomy, the melt process has been split out of the snow device itself. This is also handy because it allows you to tweak the melt levels without having to re-run the accumulation simulation.
Here’s a handy animated GIF of the melt out process, simply moving the “Melt” slider to the right:
You can see how, much like the photo from Colchuck above, during meltout snow is retained in the gullies and deep snowfields while melting away from the ridges and exposed surfaces. This fast and convenient method of melting the snow lets you dial in exactly the kind of snowpack you want for your scene.
I’m pretty excited by the new Snow device, and the possibilities it opens up. It is not available yet on the Dev Channel, but it will certainly be in the next Dev release. That should happen in June.
Until then, enjoy this sneak peek at a revamped part of WM!
3 replies on “The New Snow Device”
Fabulous work.
Looks great! Is there any way to painlessly make it animatable? I mean rendering in 3rd party software the complete summer-winter cycle.
Really promising update, can’t wait to try it!
Here some thoughts about the snow device.
– Dominant wind direction affect way the snow accumulate
– Different scale of ripples over the surface of the snow based on wind direction simulation (terrain occlusion & turbulence)
– Snow depth map (for external use)
–