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

Investigate Steam support under Unity XR plug-in framework #130

Closed
billyquith opened this issue May 23, 2021 · 7 comments
Closed

Investigate Steam support under Unity XR plug-in framework #130

billyquith opened this issue May 23, 2021 · 7 comments
Assignees
Labels
maintenance Upgrades etc.

Comments

@billyquith
Copy link

billyquith commented May 23, 2021

  • This article summarises the Valve OpenXR / Unity XR issue.

  • Valve's statement.

  • Unity-xr-plugin which does not support the Unity XR Input system.

  • Complication for issue Update OpenBrush to use Unity XR plugin system #129.

  • OpenBrush 0.3 on SteamVR Unity Plugin 2.3.2.

  • Version 2.7.3 is available and includes "support for Unity XR API" (added in 2.6.x).

  • OpenVR Unity XR Plugin also available!

    • The purpose of this package is to provide OpenVR rendering to Unity XR. This package provides the necessary sdk libraries for users to build Applications that work with the OpenVR runtime. The OpenVR XR Plugin gives you access to rendering on all major VR devices through one interface. Explicit support for: HTC Vive, HTC Vive Cosmos, Oculus Rift, Oculus Rift S, Oculus Quest (Link), Windows Mixed Reality, and Valve Index. Other SteamVR compatible devices are supported though may have inaccurate or incomplete features.
    • Valve have abandoned this plugin.

It appears that Valve's direction here is: we'll support OpenXR and everyone else should follow this.

Unity have the new Unity XR plugin system so some vendors have plugins for this, and others will be supported through the new Unity OpenXR XR plugin (requires Unity 2020.3).

@billyquith billyquith self-assigned this May 23, 2021
@mikeskydev
Copy link
Member

The SteamVR runtime apparently now supports the OpenXR spec. This might mean we can use the generic OpenXR plugin with no issues, but still needs investigating.

@billyquith
Copy link
Author

billyquith commented May 23, 2021

Unity are supplying a Unity XR OpenXR plug-in, which may solve these issues. Announcement.

This requires Unity 2020.x.

@billyquith
Copy link
Author

There are public solutions.

Maybe this API will solve your issue? https://github.com/VRStudios/Unity3D-XRInput

  • I added a Universal bindings actions json file to XRInput (works with Index, HTC, WMR, WMR_G2 & Oculus).
  • Uses OpenVR's Input API directly instead of going through the plugin (which isn't needed). So if you're only using the legacy SteamVR SDK for input, you could remove it and use XRInput instead if it solves your problem.
  • Supports OpenXR.
  • Supports Unity's agnostic input layer (good for OVR etc).

There are some oddities in in each input API which I've dealt with in the XRInput abstraction to a large degree.

@billyquith
Copy link
Author

billyquith commented May 23, 2021

@mikeskydev The SteamVR runtime apparently now supports the OpenXR spec. This might mean we can use the generic OpenXR plugin with no issues, but still needs investigating.

EDIT - The latest SteamVR plugin, which is how we use this SDK only supports SDK 1,14,15 (according to the 2.7.3 readme).

The idea was to collapse down to one SDK, i.e. the new plug-in system. We could simplify a lot of code this way. This might be a little idealistic, but the above solutions could make this happen. The Unity XR OpenXR plug-in would be layering the new Unity API on top of OpenXR, and the second solution is a wrapping abstraction for the current problem.

Hopefully we're just in a transition period and things will settle down in the next few months and we can use the Unity OpenXR solution. This would also mean we could use vendors direct Unity XR plugins as well (which may be more reliable whilst OpenXR is in flux). We'd only need this for Steam. All the other vendors have plug-ins.

@billyquith
Copy link
Author

Another public solution from beep2bleep.

@billyquith
Copy link
Author

The Vive Wave XR Plugin supports new Unity XR plugin framework.

@billyquith
Copy link
Author

Related to #222

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

No branches or pull requests

3 participants