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

jme3-vr to be deprecated #2174

Closed
richardTingle opened this issue Jan 1, 2024 · 3 comments
Closed

jme3-vr to be deprecated #2174

richardTingle opened this issue Jan 1, 2024 · 3 comments

Comments

@richardTingle
Copy link
Member

richardTingle commented Jan 1, 2024

As discussed in the thread for JME V3.7 jme3-vr is now outdated using OpenVR. OpenXR JMonkeyEngine is supported by user libraries (e.g. Tamarin) and even if a new OpenXR based virtual reality JME core module was to be created it would not be based on jme3-vr (which made compromises to work with the at-the-time many VR standards).

Deliverables:

  • Main jme3-vr classes to be marked as deprecated with instructions to use user libraries for OpenXR
  • Wiki to be updated noting the deprecation
  • Find tickets that are now redundant and propose they be closed

(This is just a header issue, I intend to put in the PR and Wiki changes)

richardTingle added a commit to richardTingle/jmonkeyengine that referenced this issue Jan 1, 2024
…ty is outdated (using OpenVR) and will be deleted in a future version.

User provided libraries supporting OpenXR should be used instead
@richardTingle
Copy link
Member Author

PR for deprecation of module: #2175
PR for update to Wiki: jMonkeyEngine/wiki#176

Other issues that this makes redundant:

#1941
#1164

scenemax3d pushed a commit that referenced this issue Jan 19, 2024
…d (using OpenVR) and will be deleted in a future version. (#2175)

User provided libraries supporting OpenXR should be used instead
@jseinturier
Copy link
Contributor

Hello,

I'm currently working on the update of jme3-vr to handle OpenXR while keeping existing high level VR interfaces and backwards compatibility with OpenVR implementation.

Even if it's planned to switch to OpenXR, many systems are using OpenVR and at this time, for me, it is quite interesting to keep this functionality.

I've made a tour on user implementations for VR using JMonkey and at this time, most of them do not work with many devices / systems.

I can propose to make the jme3-vr package to evolve has follows:

  • Removing old Native OpenVR / OSVR implementations from jme3-vr and keeping only LWJGL_OpenVR based implementation
  • Integrating LWJGL_OpenXR implementation (available from LWJGL 3.2)

As only the implementation will change, JMonkey VR classes will not be affected and so, old programs will continue to work.

Have a nice day.

@richardTingle
Copy link
Member Author

richardTingle commented Mar 27, 2024

@jseinturier Not sure if it changes things but just to let you know I created an OpenXR implementation for JMonkeyEngine called Tamarin

Integrating LWJGL_OpenXR implementation (available from LWJGL 3.2)

I did originally think about this but the APIs between [pre action based OpenVR] to [action based OpenVR and openXR] is really big, an API that abstracted those differences away seemed too painful, which is why I decided to create an entirely new API in Tamarin and propose that jme3-vr be deprecated.

Managing this as a user library is quite a lot easier, I have been able to have a fast release when issues are discovered rather than waiting for a (perhaps annual) JME release. You may want that even if your aim is to create a competitor to Tamarin.

Starcommander was also working on an jme3-xr at #2012

keeping existing high level VR interfaces and backwards compatibility with OpenVR implementation.

As only the implementation will change, JMonkey VR classes will not be affected and so, old programs will continue to work.

I'm not sure how that would be possible as OpenXR requires an action manifest to be programmatically submitted whereas OpenVR required an XML one and pre OpenVR didn't have an action manifest concept and had constants for particular controller buttons

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants