scp-fs2open / fs2open.github.com

Origin Repository for SCP FreeSpace 2 Open
https://www.hard-light.net/
Other
407 stars 163 forks source link

VR HUD target direction indicator mismatch #5991

Open electronstudio opened 9 months ago

electronstudio commented 9 months ago

Version: 24_0_0_RC2 Hardware: Quest Pro, Nvidia 4070 Ti

The target direction indicator in the left eye points in a different direction than the one in the right eye.

BMagnu commented 9 months ago

This is due to the fact, that, as of now, the entirety of the screen is re-rendered for each eye. This includes the HUD, and as such, stuff like target indicators. As a consequence, the indicators in each eye will point to the ship in question individually, and thus not exactly fit on top of one another. For most ships, the distance to the eyes is large enough for this distance to be negligible though. Unfortunately, rendering the HUD for some sort of "midpoint" is not trivial, and would need a significant change in how we do things. While I'd love for this to be fixed in the long run, I don't see it happening soon.

electronstudio commented 9 months ago

Could the indicator be disabled for one eye? (Or failing that, for both eyes?)

ferralverrall commented 9 months ago

This is due to the fact, that, as of now, the entirety of the screen is re-rendered for each eye. This includes the HUD, and as such, stuff like target indicators. As a consequence, the indicators in each eye will point to the ship in question individually, and thus not exactly fit on top of one another. For most ships, the distance to the eyes is large enough for this distance to be negligible though. Unfortunately, rendering the HUD for some sort of "midpoint" is not trivial, and would need a significant change in how we do things. While I'd love for this to be fixed in the long run, I don't see it happening soon.

It seems like it mostly needs to determine the direction/point for the target arrow to be based on the head/midpoint, but the rest of the rendering of the hud could remain the same, does that simplify the problem?