MozillaReality / webvr-spec

*** MOVED TO https://github.com/w3c/webvr ***
https://w3c.github.io/webvr/
Other
158 stars 19 forks source link

Standing Space without Room Scale #25

Closed toji closed 8 years ago

toji commented 8 years ago

There's a rumor that the Oculus 1.0 SDK will include the ability to get coordinates relative to the floor. That's great news if true, but I don't think it will include chaperone-style room bounds. Even if not true this sort of capability is something we should plan for.

It's not clear how this sort of capability should map to our StageParameters. I suppose the easy way out is to simply set sizeX and sizeZ to 0, but there's also a difference in how it would interact with resetPose(). With a Vive the transform will always update the pose to be oriented to the room, but with a Rift resetPose() will still re-orient you.

I'd appreciate any thoughts on the matter!

kearwood commented 8 years ago

Using 0 for sizeX and sizeZ seems reasonable.

If content really means to re-orient and reset position when they call resetPose(), it could immediately after the call read the new pose and treat that as the new neutral orientation.

Perhaps this difference in behavior could be indicated in VRDisplayCapabilities?

The core issue with room scale experiences resetting the user's orientation in resetPose() is due to the sizeX and sizeY representing a axis-aligned bounding box that can not effectively be rotated without changing its size. An alternative would be to represent the stage bounds as a list of coordinates defining an arbitrary (possibly rotated) polygon; however, this seems like it would add too much complexity.

toji commented 8 years ago

The more I've thought about it the more I agree that sizeX and sizeZ being zero is workable. Seems like a pretty unambiguous indication of the capabilities. I don't think we need to go so far as to start communicating a bounding poly for the room, agree that it's unnecessary complexity.

I wonder if the difference in re-orienting behavior will be natural for users anyway? Sitting space behavior is the same universally, but with room scale you expect the room to always stay "axis aligned". If you're just standing, though, then it makes sense that you can pivot in place and reset "forward." So I guess the real question is, as you pointed out, does this need a Capability flag?

cvan commented 8 years ago

Moved to w3c/webvr#33