I have a custom HMD device that I can use with Unity 5.5 - Unity 2017.0.1 to create an XR application and everything looks/works correctly. Starting with Unity 2017.0.2, it does not …
The project setup is XR support with device set to Mock HMD. I can connect my homespun HMD to deliver all the necessary data to the application, including the hardware’s correct head pose estimation, view and projection matrices for the head and each eye. Starting with Unity 2017.0.2, when I call the camera’s SetStereoProjectionMatrices, the output imagery is distorted - it gets worse when you rotate away from looking straight down the Z Axis (e.g. cubes skew into diamonds). If I do not touch the projection matrices (or call ResetStereoProjectionMatrices), it looks almost right.
As best I can tell, setting the head pose to the the camera position and rotation (directly or as a Child of another GameObject) and calling camera.SetStereoViewMatrix on the left and right eyes all still work as expected - from my testing, it is setting the projection that is the only broken step.
Is there a demonstration/tutorial/example of the right way to manually drive a Mock HMD configured Camera for XR, in newer Unity builds? If not, any clues as to what’s different about how the Camera is working underneath in 2017.0.2 and newer that might cause the projection to go wrong?