This PR is a major overhaul to camera rigs for the leap motion camera rigs. Some of the new features include:
Support for camera rigs with only a single center camera
Because of the above, users can now use temporal warping on a camera rig provided by the newest oculus plugin
Overriding of IPD and Forward offset through the use of a new component, LeapCameraDisplacement, which uses camera view matrices to reduce latency.
All components such as LeapImageRetriever automatically detect what kind of camera they are on (Left, Right, or Center) and can respond properly.
LeapCameraAlignment has been renamed to LeapTemporalWarping, and is responsible solely for warping effects.
LeapTemporalWarping uses the VR.InputTracking class instead of sampling the transform for reduced latency.
RewindAdjust has been renamed to warpingAdjustment and is measured in miliseconds instead of frames.
HMR Manager has been updated to support camera rigs with either two or one cameras, as well as all the new properties.
On the shader level, image warping is much cheaper, being only an additional matrix multiplication in the vertex shader instead of multiple in the fragment shader.
HandController override device type is only shown when in advanced mode
HandController.Main is no longer enforced to be a single instance, due to major annoyances working under those conditions (HandControllers keep stealing the main status from each other)
Included two versions of the VR camera rig, one with a single center camera and one with two cameras. The single center camera is the version that is used throughout the project.
HandController and LeapImageRetriever are both more memory efficient when dealing frame / image objects to reduce memory overhead.
Camera rig sets the default status of the cameras to have no depth textures, so that users don't have their scene rendered twice without knowing it.
HMR Config Editor automatically updates dropdown to match the number and content of the saved configurations, removing the need for an enum.
LeapImageRetriever uploads texture during Update instead of OnPreRender to prevent stalling the GPU pipeline and causing frame-skip. The option to grab images in OnPreRender has been removed as a consequence (since we have timewarp it isn't that big of a deal anymore)
@RandomOutput
To Test:
[ ] Make sure all scenes still function and don't throw errors.
[ ] Make sure LMHeadMountedRig functions as expected in all 3 HMR modes.
[ ] Make sure LMHeadMountedRigSeperate functions the same as LMHeadMountedRig
[ ] Make sure the flow of SpaceTimeAlignment.unity still makes sense.
This PR is a major overhaul to camera rigs for the leap motion camera rigs. Some of the new features include:
To Test: