Commit Graph

41 Commits

Author SHA1 Message Date
Chad Taylor
6f30dcc29a #ue4 Motion controller late update fixes:
-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]
2015-08-28 13:22:38 -04:00
Chad Taylor
ea3abc3d12 Back out changelist 2666148 since it is causing some cross thread instability
[CL 2667967 by Chad Taylor in Main branch]
2015-08-25 13:56:20 -04:00
Chad Taylor
c667d6115b Removing MotionControllerDevices array from GEngine
[CL 2666148 by Chad Taylor in Main branch]
2015-08-24 11:59:08 -04:00
Chad Taylor
32a4d99e6d Added RebaseObjectOrientationAndPosition to IHeadMountedDisplay. This allows for an external object to be remapped to the HMD's current base.
[CL 2664902 by Chad Taylor in Main branch]
2015-08-21 16:26:19 -04:00
Chad Taylor
2777267a88 #ue4 Motion controller late update.
-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]
2015-08-21 11:31:47 -04:00
Mike Fricker
4a0e55609d [INTEGRATE] Compile times: Fixed HeadMountedDisplay module not using shared PCHs
[CL 2649308 by Mike Fricker in Main branch]
2015-08-10 08:37:09 -04:00
Ryan Vance
3fe66f523e Added hidden and visible area meshes for the DK2 and Crescent Bay HMDs
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]
2015-08-07 13:50:07 -04:00
Ryan Vance
fec728074d Custom HMD post process mesh implementation.
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]
2015-08-04 19:33:26 -04:00
Geremy Mustard
86c2a17e6e #ue4 #hmd - Added PositionScale3D to scale the amount an HMD offsets the virtual camera position
#codereview nick.whiting

[CL 2634179 by Geremy Mustard in Main branch]
2015-07-27 13:58:48 -04:00
Ryan Vance
a643125f08 HMD hidden area mesh implementation.
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]
2015-07-24 15:06:10 -04:00
Nick Whiting
b5cecfc4f6 #motioncontroller Preventing non-authoritative motion controller components from moving remote clients
[CL 2629713 by Nick Whiting in Main branch]
2015-07-22 17:58:08 -04:00
Mike Fricker
d993df34c9 INTEGRATE: Fixed stereo not working in VR PIE when Blueprint editor was open (UE-16835)
- 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]
2015-07-14 11:51:52 -04:00
Nick Whiting
73a0eb9ad0 #motioncontroller Adding generic MotionController system, along with a MotionControllerComponent, which allows you to specify a player index and a hand to track, and it will automatically update the component with the appropriate offset
[CL 2614690 by Nick Whiting in Main branch]
2015-07-09 01:23:33 -04:00
Max Preussner
6da1ab87d8 Fixed copy/paste comment.
[CL 2597173 by Max Preussner in Main branch]
2015-06-23 11:24:35 -04:00
Nick Whiting
9188e708fc #oculus Updating to 0.5.0 runtimes, support for Canvas in 3D, common code added for GearVR / desktop (UE-14204)
[CL 2537769 by Nick Whiting in Main branch]
2015-05-05 13:46:42 -04:00
JJ Hoesing
f2dae667f8 Updated SteamVR aupport a bit
- controller module moved under VR plugin
- less steamy

[CL 2531609 by JJ Hoesing in Main branch]
2015-04-30 05:27:22 -04:00
Marcus Wassmer
0ba5c5f2e1 Merge Morpheus 120hz and reprojection support.
Also fixes for NGS2A3D

[CL 2521711 by Marcus Wassmer in Main branch]
2015-04-22 16:41:54 -04:00
Marcus Wassmer
a0682fd4e2 Support for new Morpheus HMD Server. Morpheus PC preview now works. TargetSettings must set Demo mode to 'Demo'.
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]
2015-04-08 17:24:01 -04:00
JJ Hoesing
3208488e62 - Updated GearVR for Note 4 and general cleanup.
[CL 2397426 by JJ Hoesing in Main branch]
2015-01-05 08:54:31 -05:00
Martin Mittring
0e5f7167c1 Fixed bad usabge of cvars in Stereo rendering code, other cvars->Set() should go as well - if possible.
#code_review:Nick.Whiting

[CL 2391115 by Martin Mittring in Main branch]
2014-12-17 10:05:24 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Nick Whiting
c426818943 #vr Integrating latest from Oculus branch, updating to 0.4.3 runtimes
[CL 2344973 by Nick Whiting in Main branch]
2014-10-30 12:26:08 -04:00
Nick Whiting
c02685ab7f #ue4 Adding HMD module priority order, which you can specify in your Engine.ini if you need to force a priority on which HMD to use when multiple are present
[CL 2330547 by Nick Whiting in Main branch]
2014-10-15 15:13:19 -04:00
JJ Hoesing
c906ce6f11 - Oculus 0.4.1 support
- 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]
2014-08-14 21:29:44 -04:00
JJ Hoesing
3c71c436f7 Added basic support for mesh based ES2 stereo HMD distortion passes.
Currently uses the Oculus HMD mesh distortion shader and vert format.

[CL 2250244 by JJ Hoesing in Main branch]
2014-08-10 03:43:19 -04:00