-MotionControllerComponent now caches "bHasAuthority" state from the game thread for reference on the render thread
-SteamVRHMD code now allows position/orientation sampling on the render thread
[CL 2672559 by Chad Taylor in Main branch]
-Applies a more up-to-date controller transform to dependent visible objects immediately before rendering occurs
-Can be disabled on a per motion controller component basis through a blueprint option "Disable Low Latency Update"
-Can be toggled holistically by a console command "vr.EnableMotionControllerLateUpdate"
#codereview nick.whiting
[CL 2664499 by Chad Taylor in Main branch]
Consolidated the visible and hidden area meshes into a single class that can be used by all HMD clients
Some house cleaning
[CL 2648164 by Ryan Vance in Main branch]
Instead of rendering a full screen quad for post process passes, render a mesh which represents only the screen area visible in the HMD after distortion.
This cuts the cost of post processing ~10-15% with no visible difference.
Initial implementation for the Vive.
[CL 2644327 by Ryan Vance in Main branch]
Adds an interface for rendering an HMD's hidden area mesh as a depth prepass.
Either runs in the standard depth prepass if it's being used, or runs as its own prepass.
Runs only if running in stereo, the device has a hidden area mesh defined and vr.HiddenAreaMask is set to 1.
[CL 2632589 by Ryan Vance in Main branch]
- Engine called OnStartGameFrame() with GWorld set to PIE world, even for non-PIE worlds
- Fixed by eliminating use of GWorld in HMD code
[Integrated from CL 2620236. Reviewed by NickW]
[CL 2620268 by Mike Fricker in Main branch]
Modifies postprocessing pipeline so that distortion is done on buffers scaled by ScreenPercentage. Scaling up ScreenPercentage will now have a bigger effect on aliasing in the HMD.
Modifies headtracking to be driven by VBLank events rather than the render thread. Reduces tracking loss.
#codereview Nick.Whiting,JJ.Hoesing
[CL 2505935 by Marcus Wassmer in Main branch]
- Initial Mac direct rendering support
- Added WindowedMirror mode for pseudo-fullscreen support on devices like HMDs
- PlayerController key input currently routes through the Oculus plug-in in order to bypass the health & safety warning. Will likely move this up to GameViewport.cpp instead.
- Note: with the Oculus plug-in enabled, normal fullscreen will not work if the direct mode driver is enabled!
- Currently PreInit() will be called on all enabled HMDs. This may or may not be an issue. Currently it's not.
[CL 2257312 by JJ Hoesing in Main branch]