Skip to content
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

OpenXR doesn't support acceleration and angularAcceleration #504

Open
rmaroy opened this issue Sep 23, 2024 · 5 comments
Open

OpenXR doesn't support acceleration and angularAcceleration #504

rmaroy opened this issue Sep 23, 2024 · 5 comments
Labels
synced to gitlab Synchronized to OpenXR internal GitLab

Comments

@rmaroy
Copy link

rmaroy commented Sep 23, 2024

Hi,

Hardware providers rely more and more on OpenXR. However, OpenXR does not support acceleration and angularAcceleration input (not velocity derived), which are, as position and orientation, key inputs of XR devices and tha are available for many headset products on the market. Accelerations and AngularAccelerations are the only vectors which are available when the handler are not visible by the headset. As such, they allow for the estimation of the movement when the disappearance of the handlers are momentary.

Would it be possible to add a feature to get the instant acceleration and angular acceleration from the devices ? This lack is a major issue since, at the present time, there is no other way to get this informations.

Best Regards

**
UnrealEngine 5 4 4 Right Hand linear and angularAcceleration are (0, 0, 0)
UnityVersion 2021 3 0f1 with Right Controler linear and angular accelerations return always (0, 0, 0)**

@rpavlik
Copy link
Contributor

rpavlik commented Sep 23, 2024

The runtime is expected to use acceleration data itself to perform the tracking for the app. We do not want to delegate dead-reckoning tracking to the application because there are far too many ways to get it subtly wrong, among other reasons. So it is a conscious decision to not expose it to the application. It is definitely assumed to be used by the runtime, however. (In such a situation you'd probalby expect POSITION_VALID (but not TRACKED), and ORIENTATION_TRACKED as well as ORIENTATION_VALID)

Do you have any other use cases besides handling degraded tracking quality?

@rpavlik-bot
Copy link
Collaborator

An issue (number 2373) has been filed to correspond to this issue in the internal Khronos GitLab (Khronos members only: KHR:openxr/openxr#2373 ), to facilitate working group processes.

This GitHub issue will continue to be the main site of discussion.

@rmaroy
Copy link
Author

rmaroy commented Sep 27, 2024 via email

@rmaroy
Copy link
Author

rmaroy commented Sep 27, 2024

"We do not want to delegate dead-reckoning tracking to the application because there are far too many ways to get it subtly wrong, among other reasons. So it is a conscious decision to not expose it to the application"

I understand your concern and your decision. Could it be possible not to expose accelerations as default, but to allow acceleration to be retrieved if specially needed, what is my case. I would be instantly unblocked.

@rmaroy
Copy link
Author

rmaroy commented Sep 27, 2024

My other use cases are:

  1. I can't throw a ball in my sport game if the ball is detected by the camera during all the gesture (and it rarely is), so the game I develop is considerably degraded. It works admirably with the acceleration, with a gesture as natural as in real life. Without acceleration more than once on two throws, the ball either fall at my feet or is thrown in a random direction.
  2. Same problem with grenade throw in a FPS game
  3. I can not identify correctly a "cut" combat gesture in my sword combat game (I am an expert in modern era fencing) for the opponent to react efficiently (with a minimum of anticipation)
  4. I can not detect efficiently if the user is experiencing motion sickness when he turns the head while moving in the virtual environment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
synced to gitlab Synchronized to OpenXR internal GitLab
Projects
None yet
Development

No branches or pull requests

3 participants