Forum Discussion
voidroom
4 years agoProtege
reset view/origin for roomscale relocates whole play area for current session
When I reset view/origin for roomscale for Oculus (PC), it seems that the whole play area is relocated, ie. instead of being wherever I was relative to my boundary, OpenXR gives pose just like I would be in the centre of the play area. And there is no way to learn where play area should be.
As my game relies heavily on actual location within the boundary, resetting view/origin breaks a lot. One could argue that the player should not reset view. Or that's it not consistent with other APIs.
If I do the same thing with Oculus SDK or VRAPI, I get still results against the play area. Well, that's not entirely true, as the origin might be offset, ie. not at 0,0,0 but there's enough information to know where I am relative to the actual boundary. With OpenXR, there's no play area anchoring and resetting moves us around.
I use resetting view for the menu to show stuff in front of the player, works especially well on Quest where resetting happens without any popups.
Some details: I have two reference spaces, one is XR_REFERENCE_SPACE_TYPE_VIEW to be view/head. The other is XR_REFERENCE_SPACE_TYPE_STAGE for roomscale.
Is that the intended behaviour? I suspect it might be a bug?
What I'd expect, one of two:
1. When reset happens, comes XrEventDataReferenceSpaceChangePending event, it should only indicate that something like that happened but the pose should be still relative to original play area and it's up to the programmer to handle resetting inside the game.
2. Or xrGetReferenceSpaceBoundsRect should return not only the size of the play area but also location and orientation of its centre.
9 Replies
- voidroomProtege
There is an information relative pose of the new centre, so it is possible to map it to the actual play area. It's a part of XrEventDataReferenceSpaceChangePending struct.
But this event may get called in two situations:
1. when the boundary gets updated
2. when the view is reset
I need to check how exactly this works (ie. if poseValid is set to true or false for both cases).
Maybe the "reset view" should have a different event? Or there should be a way to not relocate reference space?- voidroomProtege
Well, I finally checked it and it is not possible to map new centre to the actual play area as poseValid is set to false.
- yvettemukiExplorer
Hi. I currently also encounter this problem. My application needs to place the virtual object in the same position as the physical one. But when the user is still in the application, but take off the headset for a while and then put it on again. The origin will automatically reset so the calibration mess up. I am also finding the solution to solve it. I think we can have a discussion.
- voidroomProtege
Sadly, no information. Now I see that also my other tickets have been closed without providing any info or solution.
The way I handle this particular problem is still the same: I recreate the whole thing. This ends with some lagged frames but at least it works.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 5 years agoAnonymous