Closed rawnsley closed 7 years ago
What device are you using? The sensor quality varies dramatically across devices and there's only so much we can fix up in software.
@nathanmartz thanks for the super-speedy reply!
I'm using a pre-production Android-based all-in-one headset similar to these.
As far as I can tell the sensor quality is excellent, smooth and precise, and apps built against the Nibiru SDK (heavily based on the Cardboard SDK, but with a different native DLL) work fine.
Also the values reported by Input.gyro.attitude are good. In fact I wired them up directly in UpdateState to be sure, but that will only help me with my own Cardboard apps, not with those written by third-parties.
I'm sorry but we can't provide support for devices that are neither Daydream or Works with Google Cardboard certified.
If I run DemoScene, I have to turn around almost twice before I can see the cube again. I've traced the source of the problem to GvrDevice::UpdateState and the call into GetHeadPose in the Google VR DLL. Basically the orientation value that is returned changes too slowly as you rotate.
The raw values returned by Unity's Input.gyro.attitude look correct so I can only assume something is going wrong inside GetHeadPose.
I know this function performs various integration and drift correction operations, but are there any more details available? Specifically is it based on any device parameters that might have been set incorrectly? (this Android device has a sort of custom ROM).