Context
FS2020 is embedding a number of post-processing effects which are all set in the UserCfg.opt file.
However, some of these effects are either too strong or too weak depending on personal tastes, and some prefer disabling a few to save visual quality or compensate for the effects implementation.
Furthermore, FS2020 Update 7 is now using the famous CAS Shader by Timothy Lottes. It is a very capable shader doing “Contrast Adaptive Sharpening” (hence the name) and image stretch all in one, and it is the shader processing the pixels to transform the smaller FS2020 Render Resolution image into the Headset/Monitor Display Resolution. This shader is designed to accept a “strength” value from 0 to 1 in order to adjust the sharpening effect (see references below) but there is no use-adjustable simulator setting for it.
Suggestions
I’d suggest FS2020 to offering and using the following post-processing and user settings options. Most are missing and mandatory for achieving a better experience with the game.
Tone Mapping Gama slider
Allowing adjusting the game dynamic range because no all headsets have any brightness adjustment nor are restituting the full sRGB spectrum.
Tone Mapping Brightness slider
Allowing adjusting the game white clipping because some headsets panels are not fully sRGB (the Index is clipping whites a little bit more than the Reverb G2 for example) and this shows badly when in VR.
CAS Sharpen Strength slider
Allowing anyone adjusting the strength based not only on personal taste but also based on the render-to-display size ratios. In effect, it may require more or less strength to make this effect not overdone when using certain different size ratios. NB: UserCfg.opt might only supports 0 or 1 but could be supporting 0.5 for example. See References below for more details and source code.
Color Space and Display Devices
Whether it is a monitor, an Oculus headset or any other display device, and whether the extension is present or not, end users would be able to overriding the default in a unified way.
Oculus headsets
Use the dedicated OXR extension which gives applications the capability to retrieve the specific chromacity primaries for the headset: XR_FB_color_space
This is using a pre-determined enum, with a limited set of pre-defined values. Oculus Headsets users might greatly benefit from it if FS2020 would be using it, but in general everyone would benefit from the equivalent function natively supported in the game (see below).
Other headsets and any display devices
Provide the end users with the means to setup the color space with the same input values as the XR_FB_color_space extension
(Chromacity Primaries in CIE 1931 xy).
This could be directly set in the UserCfg.opt json file or in a companion file.
Other UserCfg.opt Settings
I’d also suggest FS2020 provides the following optional settings:
Allowing anyone to enable/disable the following:
EyeAdaptation, ColorGrading, Dirt, FilmGrain, Vignette
Please also make sure voting for these:
Implement a metering system better suited for VR
Render the Sun with a fading disk when bloom is disabled
Bake Ambient Occlusion in the cockpit when Ambient Occlusion is disabled
Can you please add a “Sun Glasses” mode ? (not a joke)
Notes:
What is the CAS Shader (info and demo app)
02FEB2021:
Added Using XR_FB_color_space extension.
01APR2021
About “Other headsets and any display devices”
My idea is providing the end-user a configuration option (in UserOpt.cfg file for example) in order to override the values (in case of an Oculus headset), or to specify the values (in case of any other headset of in the absence of the extension).
For example, the OXR doc is saying:
XR_COLOR_SPACE_QUEST_FB. Unique color space.
Similar to Rift CV1 using D75 white point
Color Space Details with Chromacity Primaries in CIE 1931 xy:
Red: (0.661, 0.338)
Green: (0.228, 0.718)
Blue: (0.142, 0.042)
White: (0.298, 0.318)
The idea therefore is to support the following in the UserCfg.opt file (for example):
{ColorSpace
Red [0.661, 0.338],
Green [0.228, 0.718],
Blue [0.142, 0.042],
White [0.298, 0.318]
}
In addition, for those using different headsets, it would best having multiple {GraphicsVR
sections which would be identifying for which headset they are used for.
For example the first section is like this:
{Video
Adapter "NVIDIA GeForce RTX 2070 SUPER"
The following could be added in the GraphicsVR section:
{GraphicsVR
Headset "Valve Index"
...
}
{GraphicsVR
Headset "Reverb G2"
...
}