Various changes around null and emulated poses#1058
Various changes around null and emulated poses#1058Manishearth merged 6 commits intoimmersive-web:masterfrom
Conversation
This was removed in immersive-web#1030 because the original language was not rigorous enough. Reintroducing the check using better language.
|
/agenda to discuss the changes being made here |
|
In the call today there seemed to be general consensus around allowing It was pointed out that for handheld input controllers we may wish to encourage them to never return The point about |
|
I thought in a previous call the resolution for #674 that was discussed was to not enforce any particular behavior and to leave that to be a UA choice? (Relevant Minutes: https://www.w3.org/2020/05/12-immersive-web-minutes.html) |
|
Hmm, you're right. However, I think neither I nor @toji had a strong opinion on that, and my opinion has shifted towards Alex's original one of " cc @thetuvix If you or others feel strongly I can revert that bit. |
|
Sorry it's taken me a while to comment on this. Wanted to hear the call discussion and then come back. I'm OK with everything here with the exception of blocking My biggest concern is that a very common pattern in many apps is to wait for a reference space before spinning up the rAF loop, but in many cases the device will have already switched over to presenting the session's content as soon as the session is created. If there's a need for some action on the user's part to help establish tracking (as is commonly the case for mobile AR, where you want to wiggle your phone around) then having that rAF loop available as a point to ping the tracking state is useful, as well as offering a logical place to draw any helper dialogs with a more reliable (viewer?) space. |
|
Oh, that's a fair point. I'll remove those changes and fix up the rest of the PR. You should leave a comment to that effect on the other issue, and perhaps we should reagenda it. |
|
@toji oh, I also added a note about hand controllers losing tracking, as discussed in the call. want to quickly check that as well? |
|
Controller comment LGTM too! |
|
Going to merge, the only part of this PR that was not discussed fully in the call was the one I removed. |
This contains changes to:
Force emulation in(Should requestReferenceSpace() wait until getViewerPose() won't be null? #674)getViewerPose(), making it not possible to return null poses, and delayrequestReferenceSpace()until tracking has been established.For users, the main change here is that
requestReferenceSpace()might have some delay involved in resolving the promise, but on the plus sidegetViewerPose()will never be null.Preview | Diff