Search Unity

Resolved XR (UnityEngine.XR) vs SteamVR (Valve.VR)

Discussion in 'AR/VR (XR) Discussion' started by FlightOfOne, Oct 11, 2018.

?

What are you using to Develop your VR Project

  1. SteamVR plugin (Valve.VR/SteamBehaviour) ONLY

    48.7%
  2. UnityEngine.XR ONLY

    28.9%
  3. Both SteamVR and UnityEngineXR as needed

    22.4%
  1. FlightOfOne

    FlightOfOne

    Joined:
    Aug 1, 2014
    Posts:
    668
    Hi All,

    I am currently using HTC Vive, but will be developing/publishing to Oculus rift also(just haven't gotten around to it). From everything I have read I should be OK using the SteamVR for both Oculus and HTC.

    So far I have been using SteamVR plugin (SteamBehaviour). I understand that SteamVR is simply extending openVR, but I am wondering what are the advantages/disadvantages of only using XR that is shipped with unity? In another way to put it, are there any advantages/disadvantages to NOT using SteamVR plugin and everything that ships with it?

    I am talking about the whole life of the project, not just getting something working in the editor. I mean from starting to finally publishing on Steam and/or Oculus store.


    I would really appreciate any input on this, hopefully from someone who has done using both UnityEngine.XR and Valve.VR.

    Thanks!
     
    Last edited: Oct 13, 2018
    qwert024 likes this.
  2. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,804
    While SteamVR supports both the Vive and the Rift, do note that if you use the SteamVR API the game will naturally be locked to that platform and you will not be able to release in any other game store without a rework. In short you wont be able to sell at Oculus Store, or do a release for PSVR or Oculus Quests as few examples.

    Unity XR is still pretty limited in some parts so you cant rely on it either.
     
    FlightOfOne likes this.
  3. linojon

    linojon

    Joined:
    Aug 25, 2014
    Posts:
    118
    To that end, please take a look at our BridgeXR product on the asset store, it's an in-editor SDK manager that lets you create apps that can target alternative toolkits. Facilitates using the native components (SteamVR, OVR or other) and switch between them. http://www.parkerhill.com/bridgexr/

    Cheers, Jon
     
  4. FlightOfOne

    FlightOfOne

    Joined:
    Aug 1, 2014
    Posts:
    668

    Thanks for the reply. So, do you recommend, is there even an ideal solution this?
     
  5. FlightOfOne

    FlightOfOne

    Joined:
    Aug 1, 2014
    Posts:
    668
    Thanks, it looks interesting. I will take a look. With this, will I be able to publish to, for example, Oculus and Steam without having to redo VR related systems of the game to fit each store needs? Also, does BridgeXR, use open vr?
     
  6. Corysia

    Corysia

    Joined:
    Mar 14, 2018
    Posts:
    108
    I'm looking to develop for both VR and non-VR. I'm looking to be cross-platform, specifically Win/Mac/Linux. I develop both on Win and on Mac. I don't expect VR to work on a Mac, but I expect a non-VR experience to. On Windows, I expect the ability to be in either VR or non-VR.

    I am prevented from using SteamVR as it can't even be in the project when compiling for the Mac, even if the asset has only been imported. I've the same difficulty with the Oculus Integration package.

    However, with Unity's XR, I'm able to actually build a project and run it on the Mac in non-VR mode. I'm only just starting down this path, and I expect there are a ton of traps and pitfalls. But it's encouraging.
     
  7. Zenity

    Zenity

    Joined:
    Dec 19, 2013
    Posts:
    12
    Also what about VRTK and MRTK (which aims to support other headsets in its Next version?)

    Could somebody provide a high level overview of all these SDKs with some information on what platforms you can release on if you use them, and which are alternatives or extensions of others?

    Right now it sounds like there is no perfect abstraction layer so the best thing to do may be custom versions or at least a lot of platform specific conditionals. But it's difficult to plan ahead for this without having a better overview of all the options.
     
  8. fariazz

    fariazz

    Joined:
    Nov 21, 2016
    Posts:
    55
    VRTK 3.x, downloaded directly from Github (not from the Asset Store) is 100% usable today. We are using it in new VR projects and works well on the HTC Vive, Oculus Rift (both with SteamVR and the Oculus Store), Windows MR and Oculus Go / GearVR.

    Next year we'll hopefully have VRTK 4.x and MRTK, two projects I'm very excited about. If you need something today I'd recommend VRTK to easily setup different platforms and switch them on / off on one spot.

    Have a look as well as Unity native support for hand-tracked controllers with the "new" TrackedPoseDriver component.
     
  9. FlightOfOne

    FlightOfOne

    Joined:
    Aug 1, 2014
    Posts:
    668
    Well, I started using Steam. I like how steam takes care of all the grunt work, especially detecting and keeping track of devices, but at the same time I am forced to work in confines of whatever SteamVR throws at me, e.g. future updates that may or may not support current implementations.

    It seems like there is no once size fit all solution here. I will be doing my self to keep all that has to do with VR separate from the rest of the project. By keeping VR and related systems as a separate package, when the time comes, all I have to do is just deal with the VR stuff.

    I told myself "I will cross that bridge(publishing to Oculus store) when I get there", but I know will run into problems and regret this.I will keep you posted! :D
     
    Last edited: Mar 22, 2021
  10. FlightOfOne

    FlightOfOne

    Joined:
    Aug 1, 2014
    Posts:
    668
    I have been working with this for a while now. I have gone back and forth between SteamVR and native XR (I spent a lot of time trying to get this to work the way I wanted). Headset is not really the problem, but the inputs from controllers. I have concluded that as of this day SteamVR plugin is far superior anything else I have tried. It just works (not to mention constant updating by Steam).

    I created an interface/intermediary between my game and steam VR. I guess I can call it an InputManager, which also handles keyboard commands etc.. This greatly made things easier to manage.
     
  11. AnthonyJackson81

    AnthonyJackson81

    Joined:
    May 30, 2019
    Posts:
    32
    So.... hi.

    I came across this post as I'm stuck too.

    Last year I started using steamVR. It was easy, quick, and did everything I wanted. Hand poses were great and easy to setup....BUT I had no idea where which platform I expected people to use it on.

    Granted, it's a pretty simple game ..... which would work well on a quest or probably even a phone as it's pretty low poly and has 1 material for the whole game..... but what about all the other platforms.

    I started with Oculus Integration and it was also great, just deep and big.

    I'm back at Unity XR now, but after today I can see it's still a tad trickier to get some good custimzation compared to Steam.

    Does anyone have any advice about how to make the decisions? Is there one?

    Its.clear Unity XR is not the one size fits all I thought it was.
     
  12. FlightOfOne

    FlightOfOne

    Joined:
    Aug 1, 2014
    Posts:
    668
    Hi, as of today (I am speaking for myself of course, and others may have different requirements and opinions) its a very easy decision for me, I'd use XR Plugin Management +OpenXR plugin (and it just came out of preview!) +new input system. I will not be using anything but those regardless of what I do.

    After being frustrated by this for the last few years these together work like how they supposed to, like a well oiled machine with all parts in-sync with each other. They just work, no if or buts, at least in my experience, it has been nothing but a pleasant experience.

    Actually it is! But the beauty of this is its not bloated like other systems. You can activate only the features you need.

    One thing I should warn you though is I am not sure about Oculus quest (I only work with PC VR). You might want to check and see if it is fully compatible, although I think it is. Also, you will have to use Unity 2020 (which I think is going on LTS very soon so that is also a good thing), so if you use 3rd party assets make sure they support 2020 and the latest URP/HDRP packages.

    Also, if you are new to to this stuff, there will be a slight learning curve but it is well worth the investment. I recommend spending few days getting to know each of those systems (New Input, OpenXR plugin, and XR Management). Good news is, since they have been around for a little while now, there are plenty of tutorials on those now. Check out Andy VR (I think), he's got some very good, easy to follow videos on these subjects.

    Good luck!
     
    Last edited: Mar 22, 2021
    linojon likes this.
  13. Schmim

    Schmim

    Joined:
    Mar 12, 2021
    Posts:
    3
    first you say openXR(the new XR api that only does very basic stuff) plugin....

    then you say openVR (the steamVR thingy right?)

    These two alway get confused, which one did you mean?
     
  14. FlightOfOne

    FlightOfOne

    Joined:
    Aug 1, 2014
    Posts:
    668
    You are right, I meant to say OpenXR Plugin. I edited the original.

    OpenXR is actually the standard (everyone is agreeing upon, https://www.khronos.org/openxr/) and the OpenXR plugin (uses the OpenXR standard) is what you would use (and I was referring to).
    https://docs.unity3d.com/Packages/com.unity.xr.openxr@0.1/manual/index.html

    I am not sure what you mean by "only does very basic stuff". It handles all the low level VR related stuff. Essentially everything you need is there. Far from basic. If you mean other things like interactions, locomotion stuff, then you might want to take a look at the XR tool kit.

    P.s. Personally, I created my own systems for these stuff because it's simpler and I don't want the bloat. However, if you are new to this stuff, you may want to start out with the tool kit.
    https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@0.9/manual/index.html
     
    Last edited: Mar 22, 2021
    Martin_H likes this.
  15. GoesTo11

    GoesTo11

    Joined:
    Jul 22, 2014
    Posts:
    604
    Does the UnityXR/OpenXR combo currently work with the Vive Trackers?
     
  16. Schmim

    Schmim

    Joined:
    Mar 12, 2021
    Posts:
    3
    With basic I meant low-level, i am not english native so forgive me pls.

    I am new to VR dev and I started with Open XR plugin and XR Interaction Toolkit, but all of a sudden my controllers wouldnt move anymore. I really tryied to fix it for a long time, but gave up wrote this post:

    https://answers.unity.com/questions/1824140/xr-interaction-toolkit-controllers-not-getting-tra.html

    Since then i use the steamVR plugin.
     
  17. FlightOfOne

    FlightOfOne

    Joined:
    Aug 1, 2014
    Posts:
    668
    I started out with SteamVR too. Be careful though, as the might depreciate it. Take a look at this guy's tutorials. I think there are a few on XR tool kit. https://www.youtube.com/c/VRwithAndrew/videos

    I would try on a new test project first, just the toolkit and vr stuff. It will be easier to troubleshoot.

    No worries, your English is just fine :)
     
  18. AnthonyJackson81

    AnthonyJackson81

    Joined:
    May 30, 2019
    Posts:
    32
    Yep. I startd on SteamVR too, but now Unity's XR Integration kit is maturing, I am gravitating towards that. There is only one real great bones on Steam VR and that seems to be the HandPose kit, its brilliantly done.
     
    FlightOfOne likes this.
  19. magg

    magg

    Joined:
    Sep 29, 2013
    Posts:
    74
    Hi guys,
    so do you HAVE to use the SteamVR plugin if you want to publish on their platform?
    Also does the SteamVR kit for unity already come basic stuff like walking/teleporting, interacting with stuff etc.?