fholger / vrperfkit

VR Performance Toolkit
Other
1.32k stars 53 forks source link

foveated rendering order logic? #66

Open Houndmux opened 2 years ago

Houndmux commented 2 years ago

I can switch FR on in Elite Dangerous. I see some low res areas in the image and frame rate improves. The low res areas are constant on both eyes, but not identical on left and right eye, so I assume this has something to do with the rendering order. I don't exactly understand the logic of the overrideSingleEyeOrder parameter. I could try to "brute force" every possible [L,R,S] permutation, but that would be a lot of possibilities, so any info on how to do a systematic approach would help.

fholger commented 2 years ago

Depends. What exactly is the issue you experience? The patterns must be different for each eye to create proper stereo overlap, so it is not clear from your description what is wrong with the picture.

The most obvious patterns to start experimenting with are reversed order (RR...LL...) or interleaved (RLRL...). If those don't work, I'm afraid it will just come down to trial and error.

Houndmux commented 2 years ago

I don't understand what these patterns refer to. Like what's the differnece between RL, RLRL, RLRLRL and so on? What happens is that instead of more or less circular areas of successively lower resolutions towards the edges, seemingly random shaped patches of low resolution appear at seemingly randon locations all over the screen. Sometimes they disappear after a few seconds, sometimes they disappear when I move my head and then may reappear in different shape at a different location. This may be also be distance dependent, as sometimes when I approach an object which is (partly) rendered at low resolution although it is near the center of the screen, it gets rendered at higher resolution as I get closer. Or vice versa. I can't say what exactly happens there.

Houndmux commented 2 years ago

Here's a video of the foveated rendering in ED using overrideSingleEyeOrder LRLRLR: https://www.youtube.com/watch?v=OShjJhrOevU As you can see the peripheral area is rendered at lower resolution as it should and the center is higher res. However as I start pitching up, you can all of a sudden see a patch of terrain texture in the center rendered at low res. Do you think this can be fixed with the overrideSingleEyeOrder parameter? And if so, can you suggest a list of values to successively test the L,R,S permutations? I still don't understand how this parameter is interpreted, i.e. what's the difference for example between LR, LRLR and LRLRLR. Wouldn't the algorithm repeat the pattern such that these three values produce the same result?