Summer is almost upon us…
Updates from the Focal / Shader Front
While dotModded continues to deal with the implications of his diagnosis, new medications, a recent move, and his ever present business administration duties, Jake has been hard at work on further shader updates in preparation for the move to Vulkan. I’ll let him take it from here:
Over the past month I’ve started working on preparing our mainline Continuum shader for Vulkan and, as I briefly mentioned in last month’s progress update, have paused all work on Continuum’s new volumetric clouds to focus on this transition. I don’t have any major news to share on this yet, as it’s still too early, but rest assured that once we have something ready to share, we will. I do want to touch on our longer term plans for the mainline shader pack during and after the initial move, though.
In the short term, we will be moving the latest version of Continuum 2.1 over to Vulkan and releasing it as Continuum 2.2 (to be available first in Alpha for Continuum Early Access users). While the shader pack will remain mostly the same visually, there will be a few notable changes and improvements, such as our new volumetric clouds, a revised PBR implementation and a couple improvements to our SSR. Aside from those, most of the work for this port is going in backend changes and improvements, with the goal of making the shader pack more maintainable going forward.
In the longer term, our goal is to eventually overhaul several key areas of the shader pack and release a major update; Continuum 3.0. As we’ve detailed previously, the main areas that we’re looking at overhauling are artificial / block lighting, sky lighting and indirect lighting / global illumination, but other areas of the shader pack may still be overhauled. For reference, we currently rely on Minecraft’s own light map for artificial / block lighting, as well as sky lighting, and Reflective Shadow Maps (RSM) for indirect lighting / global illumination. While we haven’t nailed down an exact set of new techniques that we want to use, I’m currently looking at replacing all three types of lighting with Light Propagation Volumes (LPV). In the future we may replace LPV with a more advanced technique, but for now LPV seems like a good solution.
As for Continuum RT, we will likely wait until HWRT (hardware raytracing) is available and matured more before we start work on moving that over to Vulkan. Moving Continuum RT over to hardware raytracing will require a complete rewrite of the path tracer, so we want to wait a bit, so as to avoid wasting time on moving everything over only to have to rewrite it anyway. If hardware raytracing takes too long or is too much of a performance hog, we may move the current shader pack over and look at replacing voxels with some other type of surface representation, but we will cross that bridge when we come to it.
Unfortunately, I was not able to pry any pretty pictures from Jake this month, but hopefully soon™
Stratum
May saw us tackle a few more items, as well as some more complex blocks again, most notably the Shulker and Shulker Box, the former of which is Stratum’s fist mob texture! We also started work on bringing the End Crystal to Stratum, so your Ender Dragon fights should be that much more immersive!
For more details about the creation of these complex new blocks though, here’s Mythical:
I don’t have anything new to tease currently, but I will take some time to talk about some of the stuff I did to make the shulker and end crystal.
To start, I was stubborn and didn’t want to use the sensible option to work in (Substance Painter) and instead opted for sticking with Designer, which had some hurdles I had to get past since that is not made to be used for working with multi-part texture UV layouts or models. I’m not fully insane though, as it turns out Painter doesn’t actually allow working in a 8192×8192 texture size anyway so that was off the table for the End Crystal (even 8k isn’t enough for it to get proper pixel density, but I had to settle for it regardless because screw dealing with a 16384×8192 texture). Shulker / Shulker Box wasn’t as demanding at “just” 8192×8192 required for proper pixel density, but with how much box color variations there are I wasn’t keen on instantly vaporizing the texture atlas and your disk space at the same time, so 4k had to do. That cursed folder is already over 700mb alone as is.
Setting up the texture UV layouts was a bit tricky and required some initial manual placements of UV positions using transform nodes to later use with Designer’s “UV Mapper” nodes. Examples shown below of one of the main ways of using them:
The UV Mapper nodes are underrated, though understandably don’t commonly have much uses in Designer so I’m just glad they exist at all. What they do is map an input based on the given UV coordinates; where black is top left, red is top right, green is bottom left, and yellow is bottom right from the examples above. There’s likely many ways of making a simple UV gradient, the above hacky floodfill method was just a quick and dirty one that’s good enough (I’d recommend looking for less costly ways). Not everything utilized the UV mapping however, the Shulker’s head needed some larger-scale details to span across multiple UV islands since I didn’t want to repeat the same shapes across each face. The way I started the Shulker’s head was a bit funny, I just mirrored some clouds noise and randomized the seed until it resembled a face in the way I wanted, then built on that by softening and inflating the shapes. The initial node setup is pictured below:
The transform node after the mirror is just to reposition it since the head is at the bottom left of the texture and I wanted to make sure the mirroring started at the middle of the front face. After a bunch more things added to it (like the eyes and mouth), the final head heightmap looks like this:
To briefly get back to the End Crystal, someone asked about how the shapes were setup so here’s the initial nodes and the layering effect being later applied to it:
The tile sampler is scattering differently scaled / rotated paraboloid shapes to get a less uniform cells look (in combination with a basic cells noise being overlayed onto it for extra detail). The subtle layering / bands effect is just a directional noise being warped by the main heightmap using a non-uniform directional warp node, a soft-light blend mode is used for blending this into the main height. It’s not a very complex setup and can be done better (I didn’t originally intend for it to look like obsidian), but it gets the job done for now. Also, here was another version of the crystal that I was previously experimenting with:
This other crystal material may still eventually see the light of day as I like the vibes of it, but it’s on the backburner for now. The metal cages may also get some improvements overtime, I’m currently using LabPBR’s iron hardcoded metal value so the metal parts can be a bit dark in-game. For the bottom base, was initially going to just use our Bedrock texture but the quality of it was way more questionable than I remembered (especially at the texture size needed for this) so I went a different route instead modifying a cratered asteroid material for it that I think fits quite well. I’ll have to add our Bedrock to the list of things to replace or make improvements to, especially after looking at what the source graph being used was doing. I can’t unsee some of the issues and quirks now.
To top this off, some floating thoughts right now are about looking into the Dragon Egg since I’ve been doing a lot of end stuff lately, and possibly see about a couple more potentially simple mobs like Slime and Magma Cube. Doing the Magma Cube may have me end up rethinking our newer Magma though, not helped by me already having some second thoughts on the ways I did that…
I think my wall of text has gotten big enough at this point though, so this is where I jump off now. See you guys next month!
Last but not least, some shots of the textures completed this month, and coming to Stratum at the end of June:
Upcoming Site Updates
As many of you have hopefully noticed, we’ve been making a host of enhancements / updates around the site this year, and that will continue. We’ve got a few more little ones going live over the next month. I won’t spoil them, but keep an eye out!
That’s all for now. As always, thank you all for your continued support. We couldn’t do it without you.

























