Hey everyone, just wanted to share this as it's improved my experience with Vr in Odyssey.... slightly.... but it's a worthwhile change.
For reference, my system is a 5800x and RTX 3080 with Rift S. I can play horizons with pretty much maxed settings at 1.5 HMD super sample and it's enjoyable and performs well. Odyssey really chugs and the AMD FSR option helps a little, though ED's famously rough implementation of AA options is shown off particularly in VR where image upscaling doesn't hold up as well as on flat screen.
This guy fholger on github has been working on these injectors for VR and has been able to add FSR or games that don't natively support it and I've found that it improves my experience in Odyssey quite a bit in the latest version.
github.com
It's just two files. Extract and then place copies of them in the same folder as the game exe that you want to inject. The EliteDangerous64.exe inside the odyssey folder, in this case. Then you just modify the settings file to adjust what you want it to do. There are hotkeys to make adjustments while you're in-game which you use to fine tune your settings. Review the log file it makes and then add the settings you land on to the settings file so they will persist the next time you launch.
For me, I had set Odyssey to use FSR 1.0 Ultra quality and set AA to FXAA.
Not everybody agrees with me, but I prefer smoothness over sharpness if it's shimmery with movement, which ED is (a lot!). The recommend SMAA for highest quality, but this always looks shimmery in VR. AA just looks different in VR.
For that reason I always set ED to FXAA. Not only is it the lowest performance overhead but serves to best blur the aliasing in the scene, which I prefer in VR. The only time I don't prefer FXAA for VR games is when it can be temporal AA, which ED doesn't do so it shimmers. Yuck.
With this injector I turn off the in-game FSR and let fholger's implementation do that work. Whatever it does differently it looks much smoother to me. Maybe it's happening at a different point in the draw call? I don't know, but it's much better looking to me even at the same apparent level of subsample and upscale.
My settings: Firstly, the VRSS doesn't work in Elite. It does for other games but not elite. He's said that's because some games he hasn't figured out how to tell which eye the game engine is drawing for at any moment. I don't know, but that means we're only paying attention to the first part which is the sub-sample and then AI upscale to make up for it.
The advantage here is that this injector seems to look smoother when doing it, you can set it more granularly, and it does the upscaling foveated -which means it only happens in a circle at the center of your view, while the edges of the view get a "dumb" and much less costly bilinear upscale. But this matter very little since those areas of the scene are typically more blurry inside the headset anyway and they aren't what you're focussing on.
You can adjust the level of subsample, style of upscale, the level of sharpening, and the size of the circle in which the upscale is applied.
You can turn on a debug mode which shows the circle in red so you can more easily set it's size and see what it's doing.
After much messing around I settled on FSR looking best with a sub sample of 0.8 and sharpening somewhere in the middle. The circle I think I'm using 4. But this will all vary by which headset you have, your computer, and your face and eyes.
With this setup I find that it pretty much matches the performance (maybe slightly ahead?) I got with in-game FSR ultra quality, but this looks more detailed as I think I'm actually doing less sub sampling, plus the smoothing looks much better to me and the shimmering is pretty much gone.
And since this is only happening in the center of the scene, I'm not making my GPU upscale in areas where I won't see the difference. so, boost.
One other benefit is that since FSR is not being applied in-game --only to the VR engine-- it doesn't happen if I launch the game flat. In game settings are "mode normal, SS 1.0, FXAA" which is what I want it to do on flat screen mode so no need to swap anything around.
This could be used to sub sample and scale in a game that doesn't allow it yet, like horizons. As an improvement to my taste in image quality at close to the same performance, by not working on the edges. Or could be used to improve quality if you were already happy with performance by first increasing your HMD super sample setting, and then telling this injector to sub sample by that same factor (meaning your GPU would draw the scene at your previously set res, and then upscale to higher than what you had before, but only in the center)
Some day the ultimate improvement would be if variable rate foveated rendering would work in this game... This would mean (and you can see explained in the injector settings) that the game is rendered at native res in the center circle, and then you have 3 descending rings of lower sampling around the area where you can't tell the difference. This would be better than sub sample / up scaling since that starts with sub sample and thus doesn't allow max detail in the center.
This would also prevent the issues with bloom/ambient occlusion/volumetrics filtering starting from a very low res when sub sampling techniques are used. Everything gets better when you start from the right place. but this helps a little.
Hope you enjoy!
For reference, my system is a 5800x and RTX 3080 with Rift S. I can play horizons with pretty much maxed settings at 1.5 HMD super sample and it's enjoyable and performs well. Odyssey really chugs and the AMD FSR option helps a little, though ED's famously rough implementation of AA options is shown off particularly in VR where image upscaling doesn't hold up as well as on flat screen.
This guy fholger on github has been working on these injectors for VR and has been able to add FSR or games that don't natively support it and I've found that it improves my experience in Odyssey quite a bit in the latest version.
GitHub - fholger/vrperfkit: VR Performance Toolkit
VR Performance Toolkit. Contribute to fholger/vrperfkit development by creating an account on GitHub.
It's just two files. Extract and then place copies of them in the same folder as the game exe that you want to inject. The EliteDangerous64.exe inside the odyssey folder, in this case. Then you just modify the settings file to adjust what you want it to do. There are hotkeys to make adjustments while you're in-game which you use to fine tune your settings. Review the log file it makes and then add the settings you land on to the settings file so they will persist the next time you launch.
For me, I had set Odyssey to use FSR 1.0 Ultra quality and set AA to FXAA.
Not everybody agrees with me, but I prefer smoothness over sharpness if it's shimmery with movement, which ED is (a lot!). The recommend SMAA for highest quality, but this always looks shimmery in VR. AA just looks different in VR.
For that reason I always set ED to FXAA. Not only is it the lowest performance overhead but serves to best blur the aliasing in the scene, which I prefer in VR. The only time I don't prefer FXAA for VR games is when it can be temporal AA, which ED doesn't do so it shimmers. Yuck.
With this injector I turn off the in-game FSR and let fholger's implementation do that work. Whatever it does differently it looks much smoother to me. Maybe it's happening at a different point in the draw call? I don't know, but it's much better looking to me even at the same apparent level of subsample and upscale.
My settings: Firstly, the VRSS doesn't work in Elite. It does for other games but not elite. He's said that's because some games he hasn't figured out how to tell which eye the game engine is drawing for at any moment. I don't know, but that means we're only paying attention to the first part which is the sub-sample and then AI upscale to make up for it.
The advantage here is that this injector seems to look smoother when doing it, you can set it more granularly, and it does the upscaling foveated -which means it only happens in a circle at the center of your view, while the edges of the view get a "dumb" and much less costly bilinear upscale. But this matter very little since those areas of the scene are typically more blurry inside the headset anyway and they aren't what you're focussing on.
You can adjust the level of subsample, style of upscale, the level of sharpening, and the size of the circle in which the upscale is applied.
You can turn on a debug mode which shows the circle in red so you can more easily set it's size and see what it's doing.
After much messing around I settled on FSR looking best with a sub sample of 0.8 and sharpening somewhere in the middle. The circle I think I'm using 4. But this will all vary by which headset you have, your computer, and your face and eyes.
With this setup I find that it pretty much matches the performance (maybe slightly ahead?) I got with in-game FSR ultra quality, but this looks more detailed as I think I'm actually doing less sub sampling, plus the smoothing looks much better to me and the shimmering is pretty much gone.
And since this is only happening in the center of the scene, I'm not making my GPU upscale in areas where I won't see the difference. so, boost.
One other benefit is that since FSR is not being applied in-game --only to the VR engine-- it doesn't happen if I launch the game flat. In game settings are "mode normal, SS 1.0, FXAA" which is what I want it to do on flat screen mode so no need to swap anything around.
This could be used to sub sample and scale in a game that doesn't allow it yet, like horizons. As an improvement to my taste in image quality at close to the same performance, by not working on the edges. Or could be used to improve quality if you were already happy with performance by first increasing your HMD super sample setting, and then telling this injector to sub sample by that same factor (meaning your GPU would draw the scene at your previously set res, and then upscale to higher than what you had before, but only in the center)
Some day the ultimate improvement would be if variable rate foveated rendering would work in this game... This would mean (and you can see explained in the injector settings) that the game is rendered at native res in the center circle, and then you have 3 descending rings of lower sampling around the area where you can't tell the difference. This would be better than sub sample / up scaling since that starts with sub sample and thus doesn't allow max detail in the center.
This would also prevent the issues with bloom/ambient occlusion/volumetrics filtering starting from a very low res when sub sampling techniques are used. Everything gets better when you start from the right place. but this helps a little.
Hope you enjoy!