We're finally here...

Well, it’s finally time…this has been 7 months in the making, and I am sure many of you have been curious what we have been doing all this time. Surely a new build of RT shouldn’t take 7 months to develop? What could we possibly be doing?


What we’ve actually  been doing

As some of you have guessed, no, we have not been working on just Build 13…in fact most of the last 7 months wasn’t spent working on RT specifically at all. You see, after Build 12 released, we realized that continuing to develop Continuum RT within the limitations of Optifine wasn’t going to work. RT is already difficult enough to work with without running into, and attempting to work around constant limitations. Eventually this cycle was going to result in a shader that didn’t match our vision for Continuum RT, or the premature end of it’s development.

We want to be clear here, none of this is meant to disparage Optifine or Sp614x himself. Optifine has enabled us and the shader community as a whole to do some truly incredible things, but it is becoming an increasingly limiting factor for our shader development, and it was time for us to move on. So it is with great pleasure that we announce: Focal Engine!

What is Focal Engine?

Focal Engine aims to be a drop in replacement renderer for Minecraft that enables a much expanded feature set for shader developers while keeping mod support for both forge and fabric mods on 1.14.4+. It will be written in C++ and Vulkan, which will enable RT Hardware Acceleration on RTX GPU’s and potentially DLSS! It is currently written in Java and OpenGL 4.6, but in the near future we will be starting the transition to C++ and Vulkan. We haven’t quite started to make the switch to Vulkan yet, as developing in OpenGL 4.6 allows us to work on getting the core game in a good state for multithreaded rendering while retaining playability as well as the same mod compatibility as we had previously, while also enabling new features as time goes on.

It also enables in-game downloads, installation and updates for our full lineup of Continuum Shaders, and our Stratum Resourcepack. This should further improve the average users experience with our products, much like our site overhaul and new account system did last year! It’s primarily meant for RT users for now, but anyone with a free Continuum account can download and use Focal Engine to download/update our free products in-game if they desire. 

Last but most certainly not least, we are looking into overhauling Minecrafts texture system to better handle high resolution resourcepacks, like Stratum!

We are developing Focal Engine in an iterative manner to bring the mod to you as quickly as possible, with new features coming online as we go along. Current versions still rely on Optifine, as it has an established UI and we wanted to retain compatibility with current shaderpacks. We’re also still limited to Minecraft 1.14.4 for Fabric and Forge. We will likely develop with a focus on Fabric going forward, but Forge compatibility is still available for now. In the coming weeks we plan to release builds for newer Minecraft versions as well.

What this means for Continuum RT, and Build 13

Continuum RT is a monster of a shader, but sadly it’s clearly not fully gameplay ready. With our decision to stick to true full path tracing, not using screen space ray tracing or shadow mapping techniques to fill gaps like other shaders, this previously left us at a disadvantage. We will leave a feature out of the shader entirely if it’s not ready to be implemented properly, this allows us to bring the highest quality shaders we can provide. With the Focal Engine we’re able to bring a level of playability to full path tracing that’s simply not possible in Optifine. We’re working towards a seamless gameplay experience while still being true to our goal and staying fully path traced.

A lot goes into making real time path tracing look good in dynamic environments, a good showcase for some of the worst lighting conditions for rendering can be found on water. A constantly moving, reflective, and refractive volume. As you can see below we have fully path traced water in a dynamic environment running in real-time!

To make this scene possible we had to utilize a lot of techniques that vastly improve quality across the entire shader. Below are some of the features that have been implemented, as well as some plans for the future.

To start, A-SVGF – Getting compute shaders and modern memory management allows us to finally properly implement A-SVGF, allowing for dynamic lighting to be responsive to rapidly changing lighting environments as shown in the video below.

Beyond SVGF – there is some great work being done in this paper, we have taken the idea of using methods for video compression to accurately reproject lighting, including reflections and refractions. Giving highly stable reflections even on animated surfaces like water.

Histogram Based auto exposure – oh boy are we happy about this one. RT being a PBR shader, it takes a lot of work to make scenes look cinema quality. The same work your camera does for post processing and exposure has to be done in rendering as well. Having proper management of memory on the gpu allows us to have far more control of the exposure point of an image.

Quality improvements and optimisations – having proper debugging tools such as Nsight and RenderDoc, we are able to fully profile the performance of our shader, finding and eliminating bottlenecks. We have improved the quality of everything dramatically in this update, and a lot of work had to be done to get everything to fit within the same performance budget. Between denoising, parallax, water, frame stability, color accuracy, and so many other things. We hope you enjoy playing with this update as much as we have creating it.

What's next?

As mentioned above, we plan to move from OpenGL to Vulkan soon, and with it implement RT Hardware Acceleration support for RTX and most likely RDNA2 GPU’s (we will still support software RT on previous generation cards, such as the 10 series). This is the highest priority item going forward. It will give us the ability to send more rays, with all scene geometry, including entities and animated objects. 

Visibility buffers. We aren’t a fan of 1080p rendering, 1440p and 4K is where it’s at. To put it simply Minecraft isn’t built for high resolutions. Visibility buffers allow us to accelerate rendering at higher resolutions dramatically.

Firefly reduction. We have been developing a novel method for controlling fireflies, allowing us to completely remove flickering blotches, unpredictable noise, and reduce ghosting even more than the high quality reprojection that is already in place. This leaves the game in a state where moving between environments and being in complete darkness looks clean and stable.

Volumetric Rendering – in RT we have lost some features vs our other shaders, such as volumetrics, which we deeply miss. Our volumetric lighting has been a staple since the beginning, and we plan to do this justice in future versions of RT.

ReSTIR – we’re skipping mis, bi-dir, and caching. We’re going straight for the latest and greatest. This improves sample rates by many orders of magnitude, as shown in the image from Nvidia below.

Samples generated in equal time with (left) previous state-of-the-art technique and (right) the new ReSTIR algorithm (click to enlarge)

Image by Nvidia.

Distributing noise in screen space as an extension to ReSTIR, we see a way to distribute the likelihood of variance in screen space, allowing denoising to be much cleaner at smaller radii, improving performance dramatically.

DLSS – DLSS is an interesting feature, that we would love to implement when the time comes, but we will need approval from Nvidia to gain access to the SDK and later, to remove the watermark. We will continue to investigate this feature, but are optimistic about getting it implemented and approved once we move to Vulkan. 

Integration of our other products – the decision to build Focal Engine might have came mostly out of the frustration of working on RT within the confines of Optifine, but it is not the only product of ours that can benefit from Focal. Continuum 2.1 Alpha will be moving to Focal in the coming months, which will open up a LOT of possibilities. From higher quality water normals, to more buffers to implement features like specular denoising & LabPBR Emissive (long time coming on that one), to proper filtering for our Volumetric Clouds…2.1 will benefit greatly from Focal Engine. As we alluded to above, Stratum will also benefit from Focal. In the short term it will just be easier to download and install via the in-game UI, as with the rest of our products when using Focal, but long term, a rewrite of Minecraft’s texture system could change the way Resourcepacks for Minecraft, not just Stratum, are made, and used!

Requirements for Focal Engine

We will be updating our System Requirements page and FAQ shortly after this Blog goes live with much of this info, but since we can’t do that before without spoiling anything, we are going to put some of it here for quick access.

The preferred version of Focal Engine, for Fabric, will require the following:

  1. Minecraft 1.14.4
  2. A Continuum Graphics account
  3. Fabric Loader. Current recommended version: 0.10.8 for MC 1.14.4. Link
  4. OptiFabric. Current recommended version: 0.7.1 for MC 1.14.4. Link
  5. Optifine. Current recommended version: F5 for MC 1.14.4. Link
  6. Latest Focal Engine for Fabric from your Account > Downloads page

The Forge version of Focal Engine will require users to install the following:

  1. Minecraft 1.14.4
  2. A Continuum Graphics account
  3. Forge. Current recommended version: 28.2.0 for MC 1.14.4. Link
  4. Mixin Bootstrap. Current recommended version: 1.0.5 (works for 1.14.4). Link
  5. Optifine. Current recommended version: F5 for MC 1.14.4. Link
  6. Latest Focal Engine for Forge from your Account > Downloads page

PSA: Focal is currently tested with the default bundled Java included with default MC installs, other versions may work, but we cannot guarantee them at this time.

Installation

Focal Engine for Fabric

  1. Install Minecraft 1.14.4 and download all the mods mentioned above
  2. Run the game at least once
  3. Close the game and install Fabric Loader, selecting the recommended version mentioned above
  4. Open the Minecraft launcher, and head to the installations tab
  5. Select your Minecraft 1.14.4 installation and click on the ‘version’ box
  6. Select the ‘release fabric-loader’ version you installed earlier and click save.
  7. Run the game at least once to generate the Fabric Mods folder
  8. Head back into the launcher’s installations tab and click the folder icon on your MC 1.14.4 install
  9. This should open the root of your game installation, from there, open the mods folder
  10. drag and drop Optifine, OptiFabric and Focal Engine into the mods folder
  11. Launch the game!

Focal Engine for Forge

  1. Install Minecraft 1.14.4 and download all the mods mentioned above
  2. Run the game at least once
  3. Close the game and install Forge, selecting the recommended version mentioned above
  4. Open the Minecraft launcher, and head to the installations tab
  5. Select your Minecraft 1.14.4 installation and click on the ‘version’ box
  6. Select the ‘release 1.14.4-forge’ version you installed earlier and click save.
  7. Run the game at least once to generate the Forge Mods folder
  8. Head back into the launcher’s installations tab and click the folder icon on your MC 1.14.4 install
  9. This should open the root of your game installation, from there, open the mods folder
  10. drag and drop the recommended versions of Optifine, Mixin Bootstrap and Focal Engine into the mods folder
  11. Launch the game!

Using Focal Engine

Once you have your preferred version installed, launch the game and head to options > shaders > and click the ‘Continuum Account’ button in the top right. Then input your continuum.graphics account login credentials, and press the login button, as shown below (click to enlarge):

Once you’re logged in, you’ll see a list of all our currently available product. From here you’ll be able to select from available versions, and download them, all from within the game, including Continuum RT Build 13!

Build 13 specifically will only be available for download from inside of Focal Engine for the foreseeable future as well. Also, legacy Optifine shaders, including older versions of our own shaders, will fall back to the Optifine pipeline when using Focal, and should work as they normally would!

A bright future

We are so, so very excited for what the future of Focal Engine will bring, and we hope you are too! It’s been a long, quiet road getting here (though hopefully you can understand why), but things should be getting a lot more interesting going forward. Keeping quiet about this for 7 months has been very difficult for the team as a whole, so we are quite excited to share updates about development going forward.

Before we go, we would like to thank everyone that supported us and this project, both in general and in the last 7 months. We appreciate it and could not do what we do without your support. Thank you.

We hope you all enjoy the initial release of Focal Engine and Continuum RT Build 13, and Happy Holidays!