Jump to content

LBE map alignment is incorrect when starting Unity application using VBS without user present


Recommended Posts

We have a Unity VR OpenXR application running on a PC, which we stream over WiFi using VBS to a Vive Focus 3 (5.0.999.918). 
The headset is set up in LBE mode, with a recorded shared map, and the headset has been set up to run VBS in Kiosk mode. 

When the application starts for the first time, and no user is wearing the headset at the time (i.e. there is no user present), once the user puts on the headset the user's headset location in the VR environment is offset from its actual position within the physically mapped space. The offset is not consistent and appears to be random. 
There is no offset that appears anywhere in the hierarchy above the camera, so it really seems that the positions as they come via the TrackedPoseDriver are incorrect. 

If we tell the user to keep the headset on and we close the Unity application, the SteamVR environment which shows up (concentric circles on the floor) does show up in the correct place. Its center is at the origin of the space, and its orientation corresponds perfectly to what has been set up during LBE map recording.
If at this point we restart our Unity application, all is well and the virtual space aligns correctly with the physical one. 

Given that we're creating an unattended VR application, we need the process to work flawlessly, but we're somewhat at a loss as to where to look or what might explain this behaviour. Any insight would be welcome. 

Link to comment
Share on other sites

To confirm, you are not using LBEHybrid mode, correct? In that mode, you first start in VO mode and it does not use the shared map.

I did notice that when working in the default Vive Focus 3 environment outside PCVR, the headset likes to offset its origin to where you are currently standing when you turn on the headset or wake it from sleep. This is to facilitate menu access.

While the offset seems to be inconsistent, does the user start in the same virtual location everytime?

Link to comment
Share on other sites

18 hours ago, CREWvzw said:

To confirm, you are not using LBEHybrid mode, correct? In that mode, you first start in VO mode and it does not use the shared map.

I did notice that when working in the default Vive Focus 3 environment outside PCVR, the headset likes to offset its origin to where you are currently standing when you turn on the headset or wake it from sleep. This is to facilitate menu access.

While the offset seems to be inconsistent, does the user start in the same virtual location everytime?

Indeed, we are in LBE mode, not LBEHybrid. 
The users do start in more or less the same physical spot. However, their virtual location in the space that should be aligned with our physical environment is off. 
From what I can tell the offset we had was not of the kind where you'd say "ah, the origin is where the user mounted the headset for the first time". 

As said, keeping the headset on and restarting the Unity app resolves the issue. But that's not really a workable solution. 
 

Link to comment
Share on other sites

  • 3 weeks later...
On 1/18/2024 at 10:33 AM, Bart Kevelham said:

As said, keeping the headset on and restarting the Unity app resolves the issue. But that's not really a workable solution. 

Unfortunately, that is what we have had to resort to. After a first start-up, we have on-site staff mount the headset. When we detect it's the first time the headset has been mounted, we quit the app and relaunch. 
This is less than ideal, but reliable. 

Link to comment
Share on other sites

  • 1 month later...

Unity's PCVR OpenXR implementation defaults to Floor rather than Stage mode now, I've already moaned at them for the sudden change as everyone expects PCVR to be in Stage mode like how SteamVR does it so this change is a massive whiplash.

I think it's this you need?

OpenXRSettings.SetAllowRecentering(false);

 

Edited by Ben Woodford
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...