Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
dioselin's avatar
dioselin
Explorer
10 years ago

Disabling "Reset on load" still resets?

Hello, related questions have been asked but I didn't find posts with the same issue I get.

I am using 0.8 partner runtime, 1 tracker. Disabling "Reset on Load" is still resetting the headset position somehow.

This is what I did to measure the difference in headset positions: Run the OVRTouchDemo scene with the hmd on the desk, so the position is always the same when restarting the app. The first run has "Reset on Load" enabled, the second run has it disabled. I expect the reported hmd transform to be the same in both cases (within a certain small range, of course), correct?

However I consistently find that the position is off several tens of cm, and the Y rotation differs in about 18 degrees, which is quite significant.

Has anyone encountered this? I know many devs position the world depending on the reported transform of the center eye, or use other tricks to undo the head's pose, but I want to understand why this happens.

Here is the data from one of my runs:


| x pos | y pos | z pos | x rot | y rot | z rot
reset on load |-0.0014 | -0.0014 | 0.0017 | 1.2788 | 359.9193 | 1.0793
not reset on load| 0.1035 | -0.3400 | 0.4813 | 1.4509 | 341.8242 | 1.1985
delta | 0.1049 | -0.3386 | 0.4796 | 0.1721 | -18.0951 | 0.1192


As I mentioned, all results are very similar.

Thank you

3 Replies

Replies have been turned off for this discussion
  • Unfortunately, Unity currently recenters on scene load regardless of whether you enable "Reset Tracker on Load" in OVRManager. Enabling it currently just causes OVRManager to perform a second recenter after start-up and then fire the RecenteredPose event. There is not currently a way to undo the recenter operation, either. For a future release, we're planning to change this. Right now, the only static reference point you have relative in the user's "meat space" is the tracker's pose (OVRCameraRig.trackerAnchor). If you know where you want the head pose relative to that, you can move OVRCameraRig.trackingSpace to change the reference frame so it lines up.
  • Ttakala's avatar
    Ttakala
    Honored Guest
    vrdaveb:
    Any update on this? This is very unwanted behavior for what I'm doing.

    Should I contact Oculus folks or Unity regarding feature suggestions for UnityEngine.VR?
    I'd like Unity's API to have methods like HMDSupportsPositionalTracking() and PositionalTrackerSeesHMD() (not ideal naming convention, I just want to convey the functionality).

    You guys at least read these forums. I have no idea how to reach those Unity folks who develop the VR part.
  • kersk's avatar
    kersk
    Meta Employee
    Hi Ttakala,

    We haven't been able to dig into this one due to focusing our efforts on the Rift launch. However, we have filed a task internally to track this and we will investigate post-launch.