Skip to main content
Participant
June 30, 2015

What does "Virtual Reality Supported" actually do?

What exactly does the check box under Project Settings->Player->Virtual Reality Supported exactly do? Outside of a skybox I couldn't get working, my simple project would work fine with that box unchecked. However, when I check it the head tracking goes completely wonky. The transforms are all off, with head rotations causes odd translations and rotations on other axis. What is Unity providing by checking that box?
    This topic has been closed for replies.

    7 replies

    Inspiring
    June 30, 2015
    It makes virtual reality supported without any additional files or packages.

    You CAN NOT and SHOULD NOT use both "VR supported" and the Oculus integration files together.

    What you should do is just create a new project (or delete all remnants of Oculus from your game) and then use a normal 2D camera with "VR supported" and it should work automatically.

    However, keep in mind that with this new feature you do lose some fine-grained control over the camera and rendering aspects which may or may not be an issue for your particular application.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    dustumsAuthor
    Participant
    July 1, 2015
    Ah, that makes sense. Thank you. How though would I test in script if the HMD is present? I use a different movement scheme for VR versus non-VR, and was using the call OVRManager.display.isPresent. But without an OVRManager, what can I check?
    dustumsAuthor
    Participant
    July 1, 2015
    Ah, never mind my last question. I found the needed documentation:

    http://docs.unity3d.com/ScriptReference ... evice.html

    Time for some refactoring. Thanks!
    dustumsAuthor
    Participant
    July 1, 2015
    With built in VR support in Unity, I'm not seeing a way to set things from the player profile like IPD. Is this what you meant by losing fine grained control of the cameras? IPD can't be set but is instead a default value for everyone?
    Inspiring
    July 1, 2015
    Yes, everything is basically handled inside the engine. Meaning you can't really see those details anymore, aside from the basic stuff that is in the Unity API (position, orientation, etc.). Also, special effects (like image effects that depend on view position, parallax mapping, etc.) may not look as good since only the 2D camera position is used. This also makes creating a stereo image/video player difficult to impossible as well as unique rendering (like using multiple layers for performance improvement). However, there is a benefit as now Unity can handle optimizations for VR within the engine and I believe this will help in most normal cases. Not to mention that VR is usable in the editor which greatly speeds testing and development.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Participant
    July 1, 2015
    I posted a question recently on the Unity forums (as well as here) asking whether it was currently possible to do various operations such as checking if a device is present, and enabling a device during runtime.

    Apparently as of now, isPresent in the VRDevice class returns the value of "Virtual Reality Supported". Not whether a device is present or not. The value makes sense seeing as currently, you need to have a device present from the very start for your project to support VR, but the documentation for the property seems to contradict that.
    Outside that, changing properties in the VRSettings class doesn't have the effect you'd expect.

    Changing VRSettings.enable to false for example doesn't disable VR. It disables the Oculus tracker. But the image is still rendered to the device.

    So as far as I can tell, as of now, the exposed API really isn't all that useful. The initial benefits lie mostly in the optimization within the engine.
    Which is a shame seeing as the project I'm working one relies on some of the functionality in the old Oculus Package. but relies on the high framerates made possible by the optimization in the native support.
    Inspiring
    July 1, 2015
    So we are working on a utilities package, that will work in combination with the first-party support. I don't know off the top of my head which features this will include, but it may make working with Unity VR support a little easier.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV