-
-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Camera Y position incorrect in some cases while in VR #2448
Comments
using http://chenz.org/vr-camera-height.html to avoid any potential issues with codepen, |
With Rift, if you place a breakpoint at src/components/look-controls.js line 214 Nightly, which does NOT work properly, does NOT return stageParameters: this.dolly.position Chromium, which works properly, does provide stageParameters: this.dolly.position |
With Vive, if you place a breakpoint at src/components/look-controls.js line 214 Nightly works properly, and stageParameters are returned: this.dolly.position Chromium, which also works properly, does provide stageParameters: this.dolly.position |
Thanks for spotting the missing stageParameters for Oculus. Oculus wasn't capable of roomscale when we first implemented support. Since then, we have updated to the newer Oculus SDK with support for the Oculus Guardian system and will be adding stageParameters for Oculus: https://bugzilla.mozilla.org/show_bug.cgi?id=1344393 You can expect this to be implemented early next week. |
Great, thanks @kearwood! While modernizing, it would be great to expose capacitive events for Oculus Touch, but that is probably a little more work. |
sorry I haven't had time yet - anyone had a chance to test latest Nightly with Rift for stageParameters? |
latest Nightly exhibits same behavior @kearwood |
Running latest Nightly, I now see that Rift HMD height is correct, but the Touch controllers are still in the floor the way the HMD used to be :-/ @kearwood thoughts? |
Codepen for the Y height issue which appears to now impact Touch controller, not HMD... |
@caseyyee ping here for your experiences |
(@fernandojsg do you see this with your recent A-Blast Touch changes?) |
I would think it's something like the room transform not being applied to the controller pose? ie: https://github.com/mrdoob/three.js/blob/dev/examples/js/controls/VRControls.js#L127 |
(not sure why that should differ across browsers though?) |
looks like tracked-controls should be doing this already? (before my time though) |
patch for applying user height when null stageParameters in #2446 but should probably test with daydream controller to make sute it doesn't break 3DoF |
@machenmusik can we break that commit into a separate PR? I think the emulation pieces need to be discussed in more detail before we can commit to those changes. I will give it a spin on daydream and report Hugely appreciate the patches! |
i think that commit may be separable, but you can try it on daydream now using chenzlabs master via rawgit (which I think I have codepen for...) |
Horray! I just cherry picked the commit 53d72ca and it seems to resolve the issue with the rift and also works with daydream as well. |
ok great! i am tied up for some time, if you want to do a PR with just that cherry pick feel free - but I do think we should commit the rest of the changes needed to fully leverage recent Nightly support for Oculus Touch ASAP, or else the controllers still won't be entirely usable |
@machenmusik gotcha. Will take a look at the rest of the PR. |
I got a few minutes to submit #2510 |
* also apply userHeight to controller when no stage parameters (fixes aframevr#2448) (aframevr#2510) * to fix Nightly issue with null stageParameters, add camera userHeight if null stageParameters; to keep tests working, only getVRDisplays when VR entered. (NOTE: tried to move getVRDisplays from system into component where dolly is, but got weird effect where right hand was applying offset but right hand wasn't, so there may still be some strange race condition somewhere) * minor edits per discussion on PR * Bump aframe-master dist/ builds. (aframevr/aframe@cd12166...3178d75) * Update master CDN URL. (https://rawgit.com/aframevr/aframe/74884e4/dist/aframe-master.min.js) * add axes mapping, axismove handler and emulated property, as well as tests * add emulated property to docs * accommodate temporary Nightly issue where Touch is supported but has lowercased handedness in id string * Pass along changed event with button state, using the buttom mapping for convenience. * pass along axis changed flags from tracked-controls, and check them in oculus-touch-controls and vive-controls to avoid spurious axis moved events * add update comment per discussion on PR * fix typo * for compatibility, if no changed array for axismove event, treat as changed * map to forEach, per discussion on PR * remove emulated property per discussion
mchen [12:59 PM]
interesting default camera Y height behavior with current master...
http://codepen.io/machenmusik/pen/JWXGap
With Rift and latest Chromium, when using the auto-enter/exit VR, user height is correct both outside VR (default user height 1.6) and in VR (true HMD height), first time and every time. That consistency is provided by #2428.
With Rift and latest Chromium, when manually clicking the enter VR button but not wearing the HMD, user height is correct outside VR (default user height 1.6) but wrong inside VR (e,g, camera placed higher than true HMD height once you put it on).
With Rift and latest Nightly, it appears that vrdisplayactivate is not working and therefore neither is auto-enter VR (i.e. you put on the Rift, see nothing, and still have to click the button).
With Rift and latest Nightly, when manually clicking the enter VR button but not wearing the HMD, user height is always 1.6 since it just goes fullscreen and doesn't try to enter VR at all. In fact, it won't try to enter VR at all unless you reload the page.
With Rift and latest Nightly, when manually clicking the enter VR button while wearing the HMD, user height is correct outside VR (default user height 1.6) but wrong inside VR (e,g, camera placed lower than true HMD height once you put it on, apparently by 1.6 the default user height), first time and every time. That consistency is provided by #2428.
So two apparent bugs:
(1) Nightly vrdisplayactivate is not working.
(2) Manually entering VR via UI button seems to have some issue with getting initial HMD position/height, and since applied as deltas by
look-controls
, that stays wrong while in VR.The text was updated successfully, but these errors were encountered: