Solaris is a physically based (yes, everyone says that these days but it’s true, trust me bro™) exposure and bloom solution. Together with ReGrade, they replicate the journey of light into the camera, onto the sensor and through the editing software.
Solaris uses various tricks to generate a physically plausible glow effect around bright light sources with very little performance overhead. It also supports masking objects by depth for better scene integration and make it look natural. For best practices, only use Solaris to adjust the scene brightness so ReGrade receives a well-balanced image to work with.
Log Exposure Bias
To simulate light glow accurately, Solaris must restore the original light intensity from the source image. It does so by undoing the tonemapping of the game and converting the colors back into HDR. In this color space, the color brightness can be adjusted in the same way as in a camera. The exposure bias works in powers of two, meaning -1 equals half brightness, -2 equals quarter brightness, +1 means twice the brightness.
Log HDR Whitepoint
The process of converting physical HDR light ranges to SDR ranges that can be displays on a screen (yes, this applies to HDR displays as well) is called tonemapping. It is a nonlinear process that compresses bright colors more than dark colors, and mimics the behavior of the human visual system. Most games compute light in physical units and tonemap right at the end.
As mentioned before, Solaris reverses this process in order to work on the original HDR colors. Since Solaris cannot know which tonemapper the game used, it has to infer one. Luckily, for HDR exposure manipulations it is sufficient to just use a relatively simple tonemapper as they are all similar, since they are modeled after the human eye after all.
A key part of a tonemapper is the white point, the light intensity that maps to FFFFFF white on a monitor. The higher the white point, the more the colors can be compressed. When reversing this process, FFFFFF white gets mapped to the white point.
This value is again in log scale, meaning that a value of 10 equals a brightness of 2^10 = 1000. Full white in the image thus gets mapped to a color a thousand times as bright. As tonemapping mostly compresses the upper color ranges, a higher Log Whitepoint causes bloom/glow to grow stronger on bright areas instead of the whole image, as colors around white are hugely brighter than the rest of the image.
If you want bloom only around the brightest objects, set this value high. If you want a more balanced glow, use lower ranges.
Self explanatory, higher values cause a stronger glow around bright objects.
Higher values cause a more widespread glow around bright objects.
Bloom can be caused by multiple things, like fogging on the lens, spill-over on the sensor/film, diffraction on the aperture and others. Depending on what is causing the bloom, it can have different qualities. Bloom Hazyness controls the balance between a crisp, burn bloom and a foggy, hazy bloom.
High Resolution Input
Solaris downscales the source image prior to blurring it for the bloom glow. To prevent fireflies (very bright, singular pixels) from causing flickering – as they may be present in one frame but not the next – it starts with an already downscaled image and only converts colors into HDR range after downscaling.
With this option enabled, Solaris samples each fullscreen pixel individually and converts it to HDR before downscaling, which ensures no small details are lost at the cost of more flickering in motion and stronger glow in general. Enable this if you see bloom missing on tiny details like distant street lights.
Mask by Depth
Since bloom can make close objects hard to see and a purely 2D effect is unable to reproduce the complex behavior of bloom in real camera lenses, it is common for distant objects to not be able to spill much of their light over objects much closer to the camera. By enabling this option, you can reduce the bloom intensity from background objects onto foreground objects.