Summer is finally here, and so is Continuum 2.1.1!


Continuum 2.1.1

As we mentioned last month, we were working towards a full, free public release of Continuum 2.1.1 ‘in the next month or so’…and as many of you may know, we did just that. 2.1.1 dropped at the end of June and is now available for anyone who wishes to give it a try. Just grab a copy of our Focal Engine for your preferred version of Minecraft from one of our download pages, follow our Focal Engine installation and usage tutorial, and download Continuum 2.1.1 from directly within the game!

This update is the culmination of the last ~6 months of polishing from our team, and testing by our Continuum Early Access supporters. Without them, this wouldn’t be possible, so again, thank you!

It brings a few new features, as well as various small bug fixes, typo corrections, description improvements, and other various tiny changes that even we’ve probably forgotten. Changelog below:

Continuum 2.1.1 Changelog: 

  • Added user customizable settings for stars; star size and star density. (Settings are available in Atmospheric Settings > Atmosphere Settings)
  • Added block light clipping to the campfire to improve visuals in challenging lighting conditions
  • Fixed unmapped blocks (such as glow lichen) being treated as lightning bolts and glowing far brighter than intended
  • Fixed various small bugs, and change some description text to better match Continuum Legacy’s latest versions

And a few screenshots of this release:

Support Continuum development with a Continuum Early Access Package

Focal Engine & Continuum RT

dotModded has been swamped with personal / health stuff as of late, so I chose not to bother him for a direct update this month, but we’ll still be hearing from Jake later on! Before that though, dotModded’s work on the 1.20.4 version of Focal finally reached our final testing stage, just not quite soon enough to make the cutoff for June’s updates. We’ve been testing and fixing small bugs with that internally for a bit now, and are fairly confident it will be ready to go for July’s update window (maybe a bit sooner  đź‘€).

Dot’s focus is now on finishing the 1.21 Focal update, with some remaining UI and mapping work left to do there. If life lets up a bit, we should be able to get that out the door soon as well 🤞. Once that’s done, we can shift almost all of our Focal Engine development focus back onto fully decoupling ourselves from Optifine, which should further help simplify and speed up our update process (among other benefits)…more info on that soon™.

But enough from me, here’s Jakemichie:

Alright so, if you read last month’s progress update, you’d know that I was chasing down an issue with how POM interacts with forward projection in the Continuum RT rewrite, causing temporal gradients to erroneously fire and reject lighting within POM as you move the camera. To keep it short: my idea didn’t work. I suspect this is due to subtle differences in how pixels are reprojected during the forward projection pass, but I don’t know for certain. Either way, rather than wasting even more time trying to come up with a new fix that we’re not even sure will work, we’ve decided to just accept this issue for this release. To reduce the impact of it, we have split off light interacting with POM into its own setting that is disabled it by default. We’ll likely come back to this issue later, which I’ll touch on a bit below when I discuss the possible short term future of Continuum RT, but for the time being you will have to deal with it, assuming you enable the POM Lighting setting and load a texture pack with heightmaps of course.

Unfortunately I burned through most of the month trying to fix this one issue, eventually throwing in the towel only a few days before we usually get builds ready for release. Near the end of the month we uncovered several issues of varying severities with the shader, including a pretty severe issue that will require a Focal Engine update for the 1.20.1 and upcoming 1.20.4 builds to fix. We seem to have fixed it internally and we’re working through the issues with the shader, but we may take some more time to polish it as best we can with the time that we have. Hopefully we can get an updated build out soon, but I guess we’ll see.

Once the rewrite is released, most of my time will likely go back to Focal Engine. We’ll still release smaller RT updates, but for the time being we can’t really make substantial updates to the shader without further Focal Engine updates. We do have a bit of a short term roadmap for Continuum RT, but most of it requires us to at least move away from Optifine’s settings.

As a bit of a teaser of what we have planned, we want to:

  • Overhaul the voxel data structure that we use. I’ve been looking at something along the lines of a 2- or 3-level brickmap/64-tree, which looks to strike a good balance between traversal speed, memory usage and editability. We’re still not 100% sure what our traditional shaders will look like further into the future, but it does look like we may adopt some form of voxel data structure in an eventual Continuum 2.2/3.0, so I’m also thinking forward a bit with the one that we will end up using in Continuum RT before we move to Vulkan and gain access to hardware RT.
  • Overhaul the path tracer. I’m still not sure which direction we should go here, but the current one is just utterly abhorrent when it comes to performance. I’ve tried to squeeze as much performance out of it as I can, but its very design just doesn’t scale well on GPUs. The two directions that I’m thinking of is to either move to a global ray buffer (which may have some L2 contention issues with atomic accesses), or ditch the recursive design and move back to a pure stochastic path tracer (which may increase noise). The latter also opens up in-place ray sorting, which could be a pretty decent performance win.
  • Replace A-SVGF with NVIDIA’s ReLAX denoiser. A-SVGF is a pretty elegant denoiser and works extremely well, when it works. Unfortunately there are situations where it doesn’t, as the forward projection is very temperamental and doesn’t efficiently scale with the number of independently reprojected signals (in the Continuum RT rewrite we currently have 3 signals, but forward projection only uses 1 as the basis for reprojection). Looking at the literature, it seems like A-SVGF is a bit of a dead end, so we’ll probably move off of it. ReLAX looks to be a solid alternative for us, as it’s based on SVGF (not A-SVGF) with a number of improvements, including one that’s sort of a sidegrade/minor downgrade to temporal gradients (temporal gradients respond to lighting condition changes within 1 frame, ReLAX responds within several frames).

That’s all for now though, see you all next month!

A few screenshots we’ve taken while testing RT Build 21 this past month, including our first reveal of Weather in Continuum RT, and a comparison of the default POM, as well as POM + the POM Lighting setting (and it’s issues), we mentioned above:


Continuum Legacy

We’ve been too swamped with Focal, RT and general life stuff this past month to prepare a Legacy update, but have no fear, we have some short term plans for Legacy’s next build, and much of the groundwork we’re currently laying and planning for Focal will help support our longer term plans for Legacy as well! More to come!


Stratum

With Stratum Build 53 behind us, we set to work on Build 54…and here’s where I would normally outline what new textures we completed in June, as well as where we plan to go next…but I finally decided to bother Stratum’s texture artist, and get some info direct from the source…so without further ado, I’ll let Mythical take it away!

Hello, this is your friendly neighborhood texture person, I usually go by either MagicalChicken or MythicalPigeon (changes depending on where I am) I have finally been pulled out of the basement to mash the keyboard a bit.

Last month started with me creating emerald and diamond items, with the diamond temporarily being put on the backburner after the beehive lead to a renewed focus on wood textures. Because of this, it felt like the right time to finally do something about all the old placeholder planks, of which I have many regrets of doubling down on and making other wood stuff around.

Once I get all the planks redone, I’m going to revisit other wood things to make use of and properly match the new planks. Signs being a major one, which will additionally need to have their texture sizes doubled to match other blocks better as they are more akin to a 1024x block in our 2048x master pack right now.

Doors might get adjusted as well, though nothing crazy yet beyond just the wood replacement. Fun fact about the doors differing to even the old planks in the wood details, I originally did that because my unorganized self couldn’t find where I had kept the substance material files of the old planks, and the fact that they were premade compiled substance archive (.sbsar) materials that I couldn’t control much on anyway (another good reason to replace them). However because of that, my current door material graphs were not made with easily slotting another wood material in mind (another regret) and instead all the nodes were “hardcoded” into each separate door material. It will take some tinkering inside my spaghetti door graphs when I do end up adjusting their wood. Eventually I’ll also make each door have a unique design, but that will come later down the road whenever I get some better ideas of how I want to do that.

The mentioned diamond item above will possibly get finished up for next update, though it will be considered a placeholder regardless as all stuff like that will be revisited when Continuum eventually gets proper gem handling.

But yea, that’s all for June. You guys will probably hear more from me going forward!

Before we wrap this up entirely, here’s a few screenshots of the textures we worked on in June, including some renders of our new Oak Planks, for you all to enjoy:


Summer is now upon us, and already proving to be quite warm for many of us here at Continuum Graphics. The work continues though, and as always, we appreciate everyone who supports us and enables us to do that work! Thank you!