Implement a metering system better suited for VR

TL;DR:
The full screen average brightness system used in 2D doesn’t work in VR. The latter requires a spot meter or a center weighted average system instead.

I’d like FS2020 implementing a different metering system for the EyeAdaptation algorithm.

As of now it is overexposing any view from the cockpit where there is some of cockpit in the frame (typically sitting in the A320 Captain seat and looking through the right windows in a sunny day). It looks to me the metering is implemented as an average of the frame luminosity, which is fine in 2D.

However in VR, it requires a spot-metering or a weighted average because more often than not the VR technology is making most users looking at the center and moving the head, instead of moving the eyes.

There is also another topic which is related to this subject but for other parts of the rendering and display problems: [BUG/FEATURE] Provide Color Space, Tone Mapping, CAS Shader Strength and post-processing effects controls in VR


[08JUL21] additional info

Since SteamVR has been offering the FOV setting, you can see what would give a pseudo weighted average metering system and how much better it would be for FS2020 in my opinion.

You can try using FOV of 50% and compare with FOV 100% when looking out the window, to the dashboard or to areas where you have strong highlights and shadows. The reason is that when at 50% FOV, the game metering system is averaging only 1/4th of the total pixels you get otherwise at 100% FOV, and these are the center ones, and it shows, at least to me, it is much better.

I also believe it wouldn’t take much code changes to support this feature either: instead of sampling the entire render view, just sample the 1/4th center pixels (a 1/4th rectangle centered in the view). From a Shader/C++ code perspective it is not much a change honestly, it is much simpler than a true weighted average, and this approximates the spot metering enough for giving good results. In practice, a UI setting to enable “center metering” for those who wants it, is just what is needed to get started with while preserving the current metering system for those who’d prefer over exposed views in their headsets.


[26AUG21] additional info

If you were shooting highly contrasted cockpit scenes IRL with a camera, you’ll end up having to choose what you’re exposing the overall picture with. It is no different, except with a typical Reflex camera you can choose spot metering (center only), weighted average (a convolution over a pre-determined set of points), and even more sophisticated algorithms can now sample hundreds of points and use IA to decide.

Here is an example of different metering modes in a modern camera:

image

With FS2020, like with any other game, the metering is most likely averaging out the entire render frame in order to set the “gray” point. In such very difficult scenes where there are strong contrasted zones, the algorithm has to draw a line (so to speak) and in this case, the average is not always the best for a cockpit. It is a simple way to do this (averaging the entire frame) and it is working good usually when you’re in an open space shooter for example (entering/leaving buildings etc…), but it is not suited for cockpit views in my opinion, like it is demonstrated in this topic and many others.

A nice page with photo examples to see it all:
Which is best? Spot, Center Weight, or Matrix metering? :: Digital Photo Secrets