My 2 cents:
I like the idea shown here in the video, but the problem remains:
-
the gauge render code updates at a lower fps than the game render code and therefore any code based solution meant to offsetting the drawing will always lag.
-
this technique doesn’t work in VR at all and is actually worse than a fixed drawing on the glass window.
The only solution for a true collimated HUD is simple:
- draw at a longer distance so that it is collimated when in VR
- don’t render the drawing when viewed outside a clipping plane (4 of them in a pyramidal fashion).
- make the surface onto you’re drawing the HUD a special gbuffer render surface so that it doesn’t show objects passing between the surface and the viewpoint (in other words, draw far away but with write the depth buffer with the near clipping plane value for example so that nothing gets drawn over)
With the current SDK you can do the former already: just add a floating window far away like in the MilViz Corsair and draw onto it. The illusion is perfect and works in VR.
As for the latter, there is no “render clipping planes” support that I know of in the SDK, but you can still clip the drawing when viewed outside a clipping plane.