Improving Graphics Rendering

Hey @WildCat-Actual.

Thanks for taking the time to analyse and share these details.

I agree with many of the points you’ve raised here. And you’ll be pleased to hear that we a few things in the pipeline that will hopefully improve things significantly.

(Roughly speaking) there is a stack of technology that delivers the final visual look in Boundless:

  1. Base Palette - Boundless contains a single master palette of 255 colours. This palette was procedurally generated to cover the colour space taking into account the eventual lighting and HDR that would be executed later in the rendering pipeline. The names of these colours were also generated so that there was a consistent relationship between colours and avoid any legal issues with naming standards. We use a single standard base palette so that we could add a tinting system to the game after release.

  2. Block Palettes - Each material type takes the base palette and uniquely customises it to create a palette of colour triples: highlight, mid tone and lowlight. These colours define the base colour of a block and the highlight and lowlight colours create variation in albedo. This results in a baked-in ambient occlusion with controllable colours rather then simply brighter and darker. The material block palettes are generated in the world builder and the current recipes are here.

  3. World Palettes - When a world is generated the configuration can manually select the colours per material, creature, plant, etc, or procedurally generate the colours. We created a set of recipes for selecting the colours per world. The recipes we currently use are available here. These colours then flow through the crafting system and almost everything is tinted by one of the colours gather from the world.

We can now generate a world and the procedurally selected block colours are burnt into the world. We could technically iterate any of the these steps but not without an adventurous live universe migration. The engine is fully data driven so in the future modders would be able to fully reboot the full colour technology we have here.

Everything so far is just to select the colours of the materials and it says nothing about in game rendering, which comes now:

  1. Material Rendering - The material rendering includes: colour maps, gradient maps, specular maps, normal maps, emissive maps, and tint maps. On top of this we’ll also rendering blends between voxel materials and decals for embedded resources.

COMING CHANGE - The material rendering is currently being changed to not destroy and blowout the colour on highly specular surfaces and generally improve the behaviour of ambient lighting and realism (in terms of energy conservation of lighting model). This will be a pretty big visual change and will make sure that blocks retain their base colour much better effectively so that things look ‘‘smoother’’ rather than like they’ve been covered in shiny white wax. This has been quite a bit of work and has required us to modify all the specular maps in the game. But it’ll definitely be worth it.

COMING CHANGE - We’re also updating the material rendering to have much better control over the metallic rendering by adding a metal map. This’ll mean that metallic surfaces should look more metallic in the same way that the pure metal voxel already do. This is a subtle effect generally, only changing how the coloration of the material by the lights works so that metals are more likely to retain their true colour, for example gold will never looks bright purple.

  1. Voxel Lighting - On top of the material rendering we apply all the voxel light sources. This itself is done in a few ways. There is faux ambient occlusion burnt into the voxel vertex lighting and then any block that act as light sources can also apply lighting to the voxel landscape. All the voxel lighting is also bundled up into a sparse array of spherical harmonic lighting that is applied to dynamic objects in addition to a fixed number of dynamic lights.

POSSIBLE - Whilst preparing for launch we did rebalance the held dynamic light sources and placed static light sources to try and be much closer. The idea was that placing a help torch into the world should try to maintain the lighting within the environment. This will have changed how the voxel light sources applied light to the worlds. Some of the images flagged as looking different where mainly a result of this change. We could consider reviewing this - but - any changes could have a fairly big effect on players builds. Basically environments will get darker as we soften the fall off.

  1. Day / Night Lighting - On top the voxel lighting we apply a range of ambient and directional lighting to simulate a day / night cycle.

COMING CHANGE - The day / night cycles need quite a bit of work. At the moment the simulated atmosphere colour (say red on a Burn world) can destroy the block lighting colours too much. We want to find a balance where the day / night cycle communicates what world you’re on but without destroying too many other colours.

COMING CHANGE - We also need to fix the ugly bright side light that we have during the night. We do need some lighting during the night or the game becomes impossible to play. But clearly this side light (then looks like it’s lighting the world from below - as you’ve pointed out) is very ugly and needs to be fixed.

  1. Weather and Fog - On top of the day / night cycle we apply weather a weather simulation that can darken areas based on the cloud cover. The distance based fog which softens the landscape as distance increases is an important part of presenting the landscape.

COMING CHANGE - As part of the day / night cycle changes we are also rebalancing the way distance fog is applied. Too many weather systems disable it and the fog’s absence then destroys the visual depth of the environment.

  1. HDR + Tone Mapping - Lighting is done in HDR with an invertible filmic tone-mapper approximation and histogram based dynamic adjustment of exposure. Some of the big changes before release were around HDR and a correct sRGB workflow; we previously (mistakingly) did lighting in sRGB space which caused screwed up lighting and a range of issues with HDR which were all fixed. So we think the HDR is good.

  2. Full screen effects - With regards to lighting, there are the god-rays/lens flare and bloom only really to discuss. The god-rays and lens flare have a large impact on the visual appearance of the sun/moon and sky, and as users have consistently complained about, the flare is currently far too bright - these are driven by the day/night cycle and would be fixed together with those.

COMING CHANGE - we also want to balance the full screen effects a little. As you point out the bloom is too low. The hardest part is balancing the full screen effects over the wider variety of environments that can be discovered and created in the universe. We’ll also tweak the lens flare.


In response to the areas you’ve highlighted:

Of the “colourful” and “warm” images shared they are likely using different block colours [[but also the day/night cycle did used to be much more ‘‘orange’’ and warm compared to the white lighting now]]. But the latest Boundless universe contains many more colours so will ultimately offer a much wider variety of compositions when used creatively. I think the biggest thing that will help is to soften the voxel lighting falloff which is currently steep to try and match the held lights (which were balanced for gameplay).

Of the “coherent colour palette” the pre-release worlds were coloured by hand. But this simply isn’t a scalable system so we needed to switch to the generated approach. Improving the procedural colour selection for world generation will help, and the introduction of Exoworlds will give is more shots at iterating this. Additionally the image also has a gentle fog that helps balance the fore and background, this will be improved in the updated day night cycle.

As above the Bloom needs a balance, but as Luca commented we don’t think this is specifically an LDR / HDR issue.

Fully agreed. As above we’re reworking the day/night cycles to remove this terrible side light.

I will need to look at the water rendering. It’s not something I’ve looked at recently.


-tl;dr-

  • Lighting - agreed.
  • Bloom - agreed.
  • Night lighting - agreed.
  • Water reflections - I’ll need to review this.
21 Likes