Hey everyone! I’m Geenz, and I’ll be discussing the rendering features of Exodus, and the future of Exodus’ rendering features.
Today we’ll be discussing two topics: HDR and FXAA.
First off, HDR.
HDR stands for “High Dynamic Range”. HDR doesn’t necessarily increase rendering quality on its own (afterall, HDR is only adds a higher dynamic color range for us to do nifty things with later on), but it does allow us to add different effects into the render pipeline like, color correction, gamma correction, and scene brightness that’s completely independent from the rest of the environment.
Our HDR implementation allows for you, the user, to customize the overall “look and feel” of the environment, in a similar way to what you’d expect from AAA video games that use engines like the Unreal Engine.
For each color channel of the scene (red, green, and blue), you can adjust the gamma, exposure, and brightness offset of the scene. Higher gamma settings, means higher contrast in the scene, where lower values results in less contrast, more washed out colors. Exposure adjusts the overall exposure of the scene, while Offset allows us to offset the overall brightness (it’s quite similar to Photoshop for those of you familiar with such functionality).
The fact that we can adjust all of these settings per channel, allows people to do advanced color correction for each channel, allowing for a wide array of effects. You can make a scene seem warmer, colder, brighter, darker, and even make things look as if you were seeing the world through night vision goggles. It’s really quite a nice feature for machinimists and photographers who want advanced control over the “look and feel” of the scene, without having to manually adjust things in an external application later on.
The next subject is FXAA.
Now, FXAA is an interesting technique, that really comes in handy when you have the “Deferred Renderer” (previously known as “Lighting and Shadows”) enabled in the graphics preferences of the viewer. FXAA stands for Fast approXimate Anti-Aliasing.
This technique allows us to approximate anti-aliasing as a post-processing effect for the likes of Deferred Rendering, where normal anti-aliasing simply doesn’t work how you’d expect (and can get quite costly, even on capable hardware in the context of deferred rendering).
FXAA runs much, much faster than normal anti-aliasing, however it does have its limitations in terms of overall quality.
While MSAA looks “more accurate” than FXAA, FXAA runs much, much faster, and anti-aliases much more in the scene. For example: sharp jagged edges produced by distant textures get smoothed out a bit better, and alpha masked objects also get antialiased (something MSAA can’t do!)
FXAA is an upcoming feature in an upcoming official Second Life Viewer release, however our system is our own, and will run on any hardware that supports deferred rendering.
There are no special settings for FXAA you have to enable. Due to the performance impact of FXAA (which is barely noticable on the vast majority of hardware), FXAA is enabled by default in the deferred renderer. Therefore, “it just works”.
These are just a couple of small things that we’ve added to the viewer to increase visual quality, and there’s much, much more on the way! You’ll be seeing some new things that we hope will both increase performance (testers reported faster performance with deferred rendering enabled and shadows disabled than with the classic renderer!), and dramatically increase visual quality, while all the same not breaking existing content.