Nibre / MotherVR

This Mod brings current generation VR support to the game Alien: Isolation
https://twitter.com/nibre_
936 stars 56 forks source link

[0.8.0] Need support for non-parallel projections (Pimax VR) #137

Open blord86 opened 5 years ago

blord86 commented 5 years ago

I just got a Pimax 5K Plus headset and MotherVR only works if I enable support for parallel projections on PiTool. This compatibility mode has roughly a 35% performance hit and MotherVR feels really choppy, so if you can support HMDs with canted display panels it would allow us to disable parallel projections and gain a huge performance boost for free.

With parallel projection mode disabled, MotherVR shows left and right eye images very far apart from each other and it's not possible for our eyes to converge. Here's a detailed explanation of the parallel projections thing, taken from Reddit:

It's when the two rendered viewplanes, for the left and the right eye, are placed in-line with one another, so that they both face straight forwards. This is fine, when the field of view for each eye is about the same to the left as it is to the right and the FOV is rather small, but when you add 25-35 degrees on one side, your game camera frustum gets rather lopsided, with the amount of pixels you end up rendering per degree of the added peripheral vision going up by the tangent of the view angle, as the triangle from the camera, to the viewplane directly ahead, to the viewplane out to the side, gets ever more obtuse, and the far side longer (EDIT: non-linearly).

...so as long as we are still using a single flat viewplane per eye, you'll want to make the cameras a bit wall-eyed, so to speak, in order to get back toward the camera looking perpendicularly at the centre of the viewplane, in order to minimise this avalanche of rendering more stuff than you can make use of, in the place where it is least needed. The viewplanes can be set up so that they align with the canted screens of devices like the new Pimaxes, or StarVR, or XTal.

Unreal Engine supports it since version 4.18 and Unity has been supporting it for longer. Here you can see the explanation from the Pimax team about the performance improvements. SteamVR supports it and games like Skyrim run absolutely fantastic in this mode, even with the huge FOV that Pimax has. Oculus themselves also added support for this mode since SDK 1.17, to ensure games will work fine in future HMDs with bigger FOV and possibly canted displays.

gorzasty commented 5 years ago

This would be great!

ntsarb commented 5 years ago

The Valve Index VR also uses canted optics.