Color Space, Lighting and HDR Rendering

Sneak Peek

Greetings everybody! 👋

With today’s blog-post we want to give you an insight about our render engine, in particular about color spaces, how much they affect the look of a game and our recent work on it that will be release in future updates.

We could say that always had a clean and spartan look. This is in part an artistic choice to favor visual clarity, but also a necessity due the engine’s old-school techniques.

Let’s start talking about color spaces.

Our eyes don’t react to light in a linear way, and with the necessity to compress video signals, we use a color space that provides greater accuracy to ranges which our eyes are more sensible to. This color space is called gamma color space, and that’s what our game uses.

Because light behaves in a linear way, we cannot use gamma space to achieve physically correct results. For that reason we need to work in the so-called linear space, where the contribution of different light sources returns their correct intensity, opposed to gamma space where this is not true.

In the below scheme you can appreciate the differences between gamma and linear space, as the problems in doing math in the first:

One of the main challenges of moving to the more physically correct linear color space is retaining the look of the existing assets, as well as mods. In this period we have tested various solutions in order to achieve that, with very promising results.

After these improvements, the next natural step is to enable proper HDR rendering: whereas in LDR (Low Dynamic Range) the engine works with values in a range of 0-1, in HDR (High Dynamic Range) the internal range is much higher, allowing for much more realistic lighting. Very bright things can actually be bright, and very dark things dark.

**Please note that the following images contain work-in-progress content**

In the former two comparisons, you can see Hirochi Raceway and West Coast USA. We managed to keep most of their original look while also allowing the lighting fixes to reveal more details in asset textures:

And here’s old Utah and its upcoming refresh, which is taking advantage of ad-hoc settings for this change:

Last but not least, a direct comparison of the vehicles, which now have a more vibrant look:

Some bonus ‘in-motion’ clips! 😁

Bloom Post-processing can now properly work on bright pixels

Lights projecting on parallel surfaces also behave better now

In conclusion, despite working within certain self-imposed restrictions we are still able to push the envelope of what our rendering engine is capable of doing. We are very happy with the quality improvements this work has resulted in and we hope you are too. Look forward to seeing it in action on your PC with a future update of!

Sneak Peek

BeamNG Major Updates

The 2021 Spring Release – v0.22 v0.22 release notes

The 2020 Winter Release – BeamNG v0.21 v0.21 release notes

The 2020 Summer Release – BeamNG v0.20 v0.20 release notes

“La Vie à Toute Vitesse” – v0.19 v0.19 release notes

The 2019 Winter Release – v0.18 v0.18 release notes

Buckle up, heavy traffic ahead: Update 0.17 released v0.17 release notes

Electrifying 0.16 v0.16 release notes

A Small Car on a Big Map – Version 0.15 released v0.15 release notes

Light Runner – Version 0.14 Released v0.14 release notes

The Automation Collaboration – Version 0.13 Released v0.13 release notes

Get Busy – version 0.12 released v0.12 release notes

Alpha version 0.11 – The Coast is Clear v0.11 release notes

Sounds like version 0.10 is out! v0.10 release notes

Hopping into 0.9 v0.9 release notes

Version 0.8 rolling in … v0.8 release notes

Alpha version 0.7 released :) v0.7 release notes

Version 0.6 released v0.6 release notes

Version 0.5 released v0.5 release notes

Version – changelog v0.4 release notes