Last week I added a bloom filter and started fixing things, while DaniJ was finishing up with the revised savegame code.
One more bigger thing for 1.14: I decided to add bloom as a new frame post-processing operation. This was a natural next step after having used background blurring with the Tutorial
: bloom is essentially a selective blur that is drawn back on top of the frame using additive blending.
Here is an example of bloom with some very exaggerated settings:
The defaults are far more conservative, aiming to add a subtle glow to bright areas of the frame:
There are pros and cons to applying bloom without having reliable information about the true brightness of pixels in the frame. It can be applied without any further preprocessing while giving a nice bit of extra softness to the view, however some parts (like the player's fist in Doom) are so light that they invariably cause a bloom to occur, making them look a bit luminous. Still, overall the effect is nice enough to warrant having it on as default: bright skies in particular look very good against dark walls and rooftops. Naturally, it can be disabled with a cvar ("rend-bloom") or via the Renderer Appearance sidebar.
As candidate phase draws near, I've started fixing various annoyances and bugs. Last week we made the following noteworthy improvements:
- There were a couple of invalid cvars / cvar value ranges in the game plugins. This was causing warnings at startup.
- Bug #1712 (enabling/disabling vsync on Windows) was resolved.
- UI improvement: popups don't open before their content is ready, which means there is no more ugly layout changes occurring on the fly when a dialog or something else pops up.
- Widgets can now share common UI images in a more elegant way, resulting in better performance when opening certain dialogs and folded areas.
- Profiling revealed a bunch of small inefficiencies related to the UI framework; these were addressed.