05-28-2024 09:03 AM
I have a passthrough project which has its own main camera etc. and doesn't use OVRCameraRig.
The Depth API is giving offset results, the "holes" are cut out too far to the right, usually.
Poking around with the values consumed by EnvironmentDepthTextureProvider (OVRPlugin.GetNodeFrustum2, NativeMethods.GetEnvironmentDepthFrameDesc) to generate the reprojection matrices, it looks like the near Z and far Z are not what our main camera is using - I guess there's a chance the FoV values are different too, but these are L/R/T/D tangents so not immediately comparable.
If I use OVRCameraRig the calibration is correct - but this breaks the controller tracking and will need quite a lot of work to unpick.
Inside EnvironmentDepthTextureProvider there are some references to OVRCameraRig. Does that mean it is required?
05-30-2024 08:10 AM
To answer my own question:
Yes, but you may need to ignore the createPoseLocation and createPoseRotation from EnvironmentDepthFrameDesc and fill them with the eye camera pose at the point at which the depth was sampled.
Alas, that means you need the createTime to be filled in properly, but in the version of the SDK I am using, it is 0, as is the predictedDisplayTime.