Not the best news this month.


An update from Jake

We’re starting this one out with an update from Jakemichie, one of our two main shader developers, and the dev responsible for most of the work on recent Continuum 2.1, Legacy and RT updates. Jake has some important updates to share this month, both for our shaders, and some personal stuff that may be impacting our update cadence for a bit. We’ll let him take it from here:

Unfortunately, this month’s update has some good news and some bad news from me, though I’ll lead with the good news.

With RT Build 21 (and our smaller Build 22 update) being released and our development environment still making it difficult to update Focal Engine, most of my time this month has been spent on rewriting a feature that we’ve been meaning to overhaul for a while now: volumetric clouds. While our current clouds look pretty decent, there was definitely room for improvement, especially when it comes to shaping the clouds and marching through the cloud volume. We’ve been wanting to have multiple cloud layers/types for a while now, but the main obstacle has always been performance. Rendering volumetric clouds requires you to march a ray through the cloud volume to determine where clouds are and how they’re lit, and that process quickly becomes expensive as you increase the height of clouds and have multiple layers of clouds interacting with each other.

To work around the scaling cost of marching through the cloud volume, we had an idea for a fairly novel ray marching technique that would let us efficiently skip empty space without needing an acceleration structure, though we weren’t sure how feasible it would be so we put volumetric clouds on the backburner to focus on things that we knew needed more attention. That was until I stumbled upon a set of presentations from Guerrilla Games (the developers of Horizon Zero Dawn and Forbidden West), which not only detailed an alternative way to shape the clouds that was faster and produced better looking clouds, but also detailed an optimisation for the ray marcher that piggybacks off of the new shaping technique to almost entirely skip empty space. It’s not as effective as our idea, but it certainly does the job and I think we could make it work with our idea, so we may still try out our idea in the future.

To summarise the presentations, rather than layering several octaves of 3D value noise (which produces wispy shapes) like we do with our current clouds, they propose precomputing a 3D noise composite that includes an inverted Worley noise (which produces billowing shapes) and a compound noise that they call Perlin-Worley (which produces an in-between of billowing and wispy shapes). Precomputing a 3D noise composite is quite common (especially for inverted Worley noise), but what’s more uncommon is the way that they combine and erode the noises based on a 2D weather map, which encodes properties like density and height. This lets them represent the three most common types of low altitude clouds (stratus, stratocumulus and cumulus), and with some tweaking even cumulonimbus clouds, with a single 3D noise composite and cloud shaping function, all using a system that can be driven by a simple weather map.

Basically all of this is ideal for us. We want faster clouds, we want better looking clouds, we want multiple types of clouds, and a weather map could be useful for us (especially in the future). Basically the only thing that is missing from this is multiple layers of clouds (each vertical column can only have 1 cloud in it, but that cloud can be anywhere within that column), but that’s fine for now. So, as you can probably tell, the cloud rewrite is based on these presentations. Pretty much the only thing that’s tangibly changed is the weather map, as Guerrilla’s weather map is FAR too small (they use a 16km x 16km weather map, whereas in my testing we need a 128km x 128km weather map at least to be able to render clouds out to the horizon) and is artist-driven. We use a cascading weather map which covers a 1024km x 1024km area in the base cascade (don’t forget that the player can exit the atmosphere in our shaders), and we will be procedurally generating it using a massively simplified weather model.

While it’s at least complete enough to show a few screenshots (available in the gallery below), it’s still not finished. I haven’t finished the weather model (getting stuck in different places, so currently it’s just simulating fair weather clouds), the shaping function still needs a good once-over, I need to render them at a lower resolution and upscale them, I need to add planar cirrus clouds back in, I need to properly composite them over the image, and they currently require some changes to Focal (a bug fix and a new feature). Once they’re closer to being finished, I’ll probably show some more screenshots.

So, that was the good news, now for the bad news. Unfortunately, due to a very recent and very sudden loss (separate to the personal matters alluded to in last month’s update), I may have to take a bit of a step back away from shader development to help my family out. I don’t know when, and I don’t know how much of a step back I’ll have to take, but I may have to.

I’ll keep everybody posted if I do end up needing to.

Jake didn’t have to share this info on his personal life, but he felt that you (our community), should at least have some idea why things might be slowing down for a bit, if it comes to that. Thanks for your understanding.

Some screenshots of the new Clouds in their current state:

Support Continuum development with a Continuum Early Access Package

DotModded and Focal Engine

On the Focal side of things, well…we don’t have great news here either. Unfortunately, dotModded has also been swamped with personal troubles as well. We’re still not exactly sure what has been causing his seizures (which have continued), and he was once again admitted to the hospital this past month. They didn’t keep him for a super long time, but this has still made progress difficult, as has our ever growing hatred for Gradle and the issues with the using the current dev environment for work on Focal Alpha.

We’re still pushing forward as best we can to get Focal 1.21 out, so work on Focal standalone, and all the exciting possibilities that will bring with it, can begin in earnest. Hopefully life stops throwing up roadblocks for a bit and we can make some more sizeable progress here.


Continuum RT

On a more positive note (yay), and as some of you may have noticed, we pushed out another RT update this past month, and earlier than usual at that!

Our dedicated supporters / testers noticed a regression in RT Build 21 that we missed that was causing some not so fun underground light leaking, and we went ahead and packaged a fix for that in with a few fixes we had been working on for the next update and sent them out to all RT subscribers as quickly as we could, to ensure as many people who subscribed for Build 21 would get Build 22 in the same subscription period.

Not a huge update by any means, but it shores up the new RT rewrite nicely. Detailed changelog below:

Continuum RT Build 22 Changelog: 

  • Removed all types of carpet from Voxelization list, so they should no longer have odd flickering shadows on/ or around them.,
  • Fixed underground light leakage issues with ‘Alternate Blocks’ setting was enabled in video settings (this setting is on by default, and Stratum makes use of it as well).

Some assorted screenshots using this new RT update we’ve taken over the last month:


Continuum Legacy

No updates for Legacy this month, though the work being done on the Clouds that Jake detailed up above will eventually make it into Legacy in some form. Should be exciting to adapt it to Legacy’s unique visual style, and we hope the Legacy fans out there are as excited for that as we are!


Stratum

No update direct from Mythical this month, but you’ll be hearing from him in the next blog, after Stratum Build 54 officially releases at the end of September.

We’ve been teasing Build 54’s additions this past month, and so far that includes new Crimson / Warped plank textures, some adjustments to other Crimson / Warped textures to better match vanilla color / styling, a bespoke item frame texture, some proper Stained Glass textures, new Item UI textures for various blocks and various other smaller adjustments / fixes…with more to come before this updates eventual release!

Here’s some screenshots of some of the above (many captured with Continuum RT’s new Build 22 update), and a few shots of textures that didn’t get a proper showcase from Build 53, like the Diamond item:


That’s all we have for this month. Hopefully things calm down a bit moving forward. Thank you for your understanding and continued support!