Unity Now Supports Vulkan On Oculus Quest & Go

The Unity game engine, which powers most of the apps on the Oculus standalone store, now supports the Vulkan graphics API with Oculus Quest and Oculus Go.

Vulkan is the successor to OpenGL, the industry standard graphics API that has been in widespread use for over 2 decades. OpenGL is similar to DirectX up to version 11, but controlled by an open industry consortium and is cross platform.

Vulkan

Like DX12 for Windows and Metal for Apple hardware, Vulkan is a “low level” graphics API (LLAPI). These APIs give developers more direct access to the hardware than previous graphics APIs, moving many tasks from the GPU driver to the game engine.

Vulkan is designed from the ground up to properly take advantage of multi-core CPUs, which were not a relevant factor when OpenGL was created. The Oculus Quest has four CPU cores available to games.

NOTE: While Unity 2019.3 supports Vulkan on Quest, the current Oculus Integration for Unity does not. This is, however, simply due to a check it performs to see if Vulkan is enabled, which can be bypassed by commenting it out.

The Benefits

Vulkan’s lower level access to the hardware means there is less driver overhead for draw calls (instructions from the CPU to the GPU of what objects to draw). This means that more draw calls can be used each frame – or the same number of draw calls per frame will use less CPU power & energy.

This means that Vulkan could enable Quest developers using Unity to ship more detailed scenes, use larger draw distances, use leftover CPU power for physics, or just increase battery life of existing fidelity content.

Vulkan should also allow for significantly faster initial loading times. Have you noticed that some Quest games took a very long time to load the first time you launched them? That’s because OpenGL shaders are compiled on first load, whereas with Vulkan shaders can easily be precompiled.

Facebook claims that Vulkan also allows for HDR rendering on mobile, which could be useful for future headsets.

Performance Numbers

There are no specific benchmarks for a production Oculus Quest Unity app of OpenGL vs Vulkan performance yet. When Unity first added Vulkan support for regular Android games, the company claimed “up to 35% improvement” in performance.

Unity’s competitor, Unreal Engine, already added support for Vulkan on Quest back in August. While there are no public benchmark stats for Unity’s Quest Vulkan support yet either, Facebook claimed that on Epic’s Sun Temple engine sample Vulkan reduces frame times from 16ms to 13ms, a roughly 20% improvement.

To be clear, Vulkan is not a silver bullet. Optimizing a VR game to run on a smartphone processor is incredibly difficult, and most of the work still falls to each developer. But Vulkan support in Unity promises to make the rules slightly less extreme, so we’ll be keeping a close watch on the Quest content ecosystem this year to see what it enables.

The post Unity Now Supports Vulkan On Oculus Quest & Go appeared first on UploadVR.

Unity Deprecates Built-In Support For Daydream, Gear VR, And Valve’s OpenVR

Unity 2019.3 introduces a new plugin system for XR headsets, and deprecates official support for Gear VR, Google VR, and Valve’s OpenVR (the API for SteamVR).

Valve is working on a plugin for the new system, according to Unity:

“Valve is using our XR SDK to develop their OpenVR Unity XR plugin for 2019.3 and beyond,” the blog post from Unity explains. “They will share more information on where to access it once it is available. Until that plugin is available, built-in support of OpenVR will continue to be functional and available in 2019.3, and we will support our users with any critical fixes.”

What This Doesn’t (Yet) Mean

This doesn’t yet mean that developers can no longer build Unity games for these platforms. For now, it simply means that bugs & issues introduced by the engine which affect the support for these platforms “may not be prioritized”. This also serves as a warning that they will be removed from the engine in the future.

That actual removal won’t happen until version 2020.1. Despite using years in version numbers, 2019.3 has yet to be officially released, so 2020.1 is likely months away.

Of course, developers can continue to use older versions of Unity to build their games  — although obviously that means they won’t have access to new & future engine-level features and optimizations.

The New Unity Plugin System

The new XR plugin system is intended to simplify the way VR and AR works across the various platforms in Unity in the long term, and allow for new XR features and software plugins to work across all VR & AR hardware.

Under the new system, Unity is “officially” working with 7 XR platforms: Apple’s ARKit, Google’s ARCore, Microsoft’s HoloLens & WMR, Magic Leap, Oculus, and PlayStation VR.

These platforms are “fully supported” by Unity, and the company is “directly” working with them on “deep platform integration, improvements to our engine, and optimizations to our XR tech stack for the platform”.

Valve?

Notably absent from the list of officially supported platform partners is Valve, the company behind the popular SteamVR platform.

However, the new plugin system does allow third parties to develop XR plugins for Unity separately from official support.

SteamVR

Valve’s application programming interface (API) for SteamVR is called OpenVR. According to Unity, Valve is “currently developing their OpenVR XR Plugin, and they will share more information on where to access it once it is available“.

There are two Unity designations Valve could be delivering this system through. One is as a ‘Verified Solutions Partner’ (VSP) and the other is as an ‘Innovator’. Being a VSP “offers various levels of support, including test verification and promotion of the plugin once released.” It has not yet been revealed whether or not Valve is a VSP.

Will This Really Matter?

There are no announced plans for an unofficial plugin for Daydream or Gear VR, however, there are plans for an open source plugin for Google Cardboard. This means developers will eventually have to resort to non-current versions of Unity to develop for Daydream or Gear VR.

For SteamVR, the change means that responsibility for support of Valve’s platform in Unity now rests solely on Valve. It also may make it more difficult for Valve to work around engine-level bugs or introduce new features that require engine support.

Unity’s own OpenVR Plugin is now deprecated, and will be removed in 2020.1.

At the end of the day, however, this probably won’t really mean much to the average SteamVR developer other than the fact that the party responsible for the core OpenVR support in the engine changed.

It could be argued that a lack of official support would be important to large publishers/developers choosing which platforms to develop for, but even this seems like a stretch for now.

We’ve reached out to Valve for clarity on the current state of its relationship with Unity, plans for future support, and any other statement on the topic. We’ll update this article if we receive a reply.

The post Unity Deprecates Built-In Support For Daydream, Gear VR, And Valve’s OpenVR appeared first on UploadVR.

Unity Adds Toolkit For Common VR/AR Interactions

The Unity game engine released a preview (beta) ‘XR Interaction Tookit’ which handles some core interactions for VR and AR.

Like most optional Unity features, the XR Interaction Tookit is downloaded and activated from the Package Manager.

Unlike with the VRTK toolkit, Unity is preferring laser pointer selection to direct manipulation. This works well with a wider variety of platforms, but can be less immersive for higher end systems.

Unity’s XR Interaction Tookit currently provides the following 4 features:

Object Selection & Manipulation (AR & VR)

This lets the user point a laser at objects, select them, and either directly or from a distance grab the object. With an object grabbed the user can rotate it or throw it. This behaviour is configurable.

UI Interaction (VR)

The same kind of laser pointer used for object selection can also be used for UI interactions. This means that the built in Unity UI system that developers are already used to can be used in VR.

Teleportation & Snap Turning (VR)

This allows developers to quickly add teleportation and snap turning to their apps. “Smooth” locomotion isn’t built in, but that’s much easier for a developer to add.

Object Placement (AR)

This feature, for Apple’s ARKit and Google’s ARCore, allows smartphone users to swipe to place virtual objects on real world planes.

No Need To Reinvent The Wheel

The goal of the XR Interaction Tookit seems to be to make it so that developers don’t need to “reinvent the wheel” for simple VR & AR interactions.

For new developers this means less time is required on the basics, and this time can then be used to craft the actual experience. Of course, developers on larger projects may use a more advanced framework such as VRTK– although VRTK has no UI features yet.

For end users, since Unity powers the majority of XR apps, this could result in more consistency and standardization for fundamental VR & AR interactions. If you know how to select, grab, and locomote in one VR app, that should transfer over to others — similar to how control schemes for console games eventually standardized over time.

The post Unity Adds Toolkit For Common VR/AR Interactions appeared first on UploadVR.

Oculus Unity Integration Update Promises Lower Touch Controller Latency

The latest update to the Oculus Unity Integration adds a feature which should reduce the latency between real world and in-VR controller position by around 10ms, according to Facebook.

Unity is the engine powering the majority of VR games. On the Quest store, all but a handful of titles use the engine.

The new feature, which is enabled by default, is called ‘Late Controller Update’. Before this feature, the Oculus system would provide Unity with the controller position at the start of the frame. This position value would be used for physics, gameplay/interaction code, and then rendering.

The problem with this approach was that the time taken to process the game code and physics code meant the controller position was no longer current. While TimeWarp lowers perceived latency for the head, it doesn’t do anything for the controllers.

new oculus touch controllers

Late Controller Update means that the Oculus system will provide new controller positions after the game and physics code have run. This means that Unity will render the most recent possible controller positions.

Facebook’s developer documentation suggests that the latency improvement from this feature is around 10 milliseconds.

Interestingly, it warns developers to be mindful that the rendered controller position will be more recent than the position in their game code. This means that while the controller’s visual position will have lower latency, interacting with virtual objects, pressing buttons, and haptic feedback will continue to have the same latency as before.

We tested toggling this feature on and off in a test scene in Unity, and confirmed it does have a subtle, but noticeable, impact on perceived controller tracking responsiveness. Hopefully many Quest and Rift Unity developers will add support for this feature in their apps soon.

The post Oculus Unity Integration Update Promises Lower Touch Controller Latency appeared first on UploadVR.

Unreal Engine Adds Oculus Quest Vulkan Support, Unity To Follow ‘Later This Year’

The latest version of the Oculus Unreal Engine Integration adds support for Vulkan on Oculus Quest and Oculus Go. Unity told us they will add the same “later this year”.

What Is Vulkan?

Vulkan is a low level graphics API developed as a successor to OpenGL, which was originally released in the early 90’s. Vulkan was developed by The Khronos Group, a non-profit industry consortium which includes major tech companies like NVIDIA, AMD, Microsoft, Facebook, Google, and Intel.

Vulkan on Android has the same advantages as DirectX 12 on Windows or Metal on Apple operating systems. It is the official LLAPI for the Android OS, used on Oculus Go and Oculus Quest.

Vulkan

By giving developers lower level access to the GPU, engines can achieve better performance because there is less CPU overhead for each draw call. Additionally, Vulkan allows engines to properly take advantage of modern multi-core CPUs, which were not a relevant factor when OpenGL was created.

On Oculus standalone headsets, this could allow developers to add more detailed scenes, use larger draw distances, or just increase battery life. It should also allow for significantly faster initial loading times thanks to precompiled shaders.

Vulkan On Oculus Standalones

During a talk at GDC 2018 in April, Oculus told the crowd that Oculus Go would get Vulkan support thanks to custom GPU drivers made in a partnership with ARM and Qualcomm.

In August 2018, the Oculus Mobile SDK added basic support for Vulkan. However, it did not yet support anti-aliasing or fixed foveated rendering.

These features were finally added late last month, paving the way for game engines to add support for Vulkan on Oculus standalone headsets. This may have been spurred by the recent release of the Oculus Quest, the first consumer standalone headset with room scale tracking and Touch controllers.

Almost all Oculus Quest and Go apps are made with Unity or Unreal Engine. The latest version of the Oculus Unreal Engine Integration for Unreal 4.22 adds support for Vulkan on both headsets.

Facebook claims that on Epic’s Sun Temple engine sample Vulkan reduces frame times from 16ms to 13ms, a roughly 20% improvement. The company also explained that Vulkan allows for HDR rendering.

We reached out to Unity to ask when they would follow suit, and they told us the feature will be released “later this year”.

The post Unreal Engine Adds Oculus Quest Vulkan Support, Unity To Follow ‘Later This Year’ appeared first on UploadVR.

Unity’s High Definition Render Pipeline Now Supports VR

Unity version 2019.2 releases today. Among the changes, the HDRP now supports virtual reality and a new option could make Oculus Quest apps perform better.

In 2018 Unity introduced Scriptable Render Pipelines, allowing developers to have greater control over the engine’s rendering. Two premade render pipelines are included with the engine, the High Definition Render Pipeline (HDRP) and Lightweight Render Pipeline (LWRP).

The HDRP is focused on high visual fidelity over performance, intended for gaming PCs and high-end consoles. This would make it unsuitable for platforms like the Oculus Quest and PlayStation VR, but useful for developers pushing the bounds on graphics on the PC. This could include custom enterprise applications intended for realism, such as architecture visualization.

The update also adds a new Low Overhead Mode to the Oculus Android integration. It is described as increasing performance by doing “less driver validation”. This could allow VR developers to squeeze out extra performance on Oculus Quest, Oculus Go, and the Samsung Gear VR.

Additionally, Unity’s AR Foundation now has support for face-tracking, 2D image-tracking, 3D object-tracking, and environment probe. It also adds support for the new features introduced with ARKit 3 including motion capture, people occlusion, multiple face tracking, and collaborative sessions.

The post Unity’s High Definition Render Pipeline Now Supports VR appeared first on UploadVR.

VRTK v4 Beta Makes The Best Unity VR Framework Even Better

vrtk logo

VRTK is a VR framework designed to allow developers to add interactivity to their apps & games without coding the physics of these interactions from scratch. This month the beta for version 4 released. Version 4 is a complete rewrite of the framework. It brings numerous improvements including making it more modular and more hardware agnostic.

VRTK’s Humble Origins

In April 2016, Harvey Ball got his HTC Vive. But when he wanted to develop for it, he noticed that there was no general framework for VR interactions. From his bedroom in the UK, he decided to make one- he called it SteamVR Unity Toolkit. It let developers easily add teleportation and object grabbing to their games.

The toolkit quickly became the most popular Unity VR framework with thousands of developers using it. It had become so popular that during the launch of the Oculus Touch controllers Facebook sent Harvey a Rift and Touch for free in order to add support. With the toolkit now being cross-platform, it was renamed to VRTK.

As an open source project, the community added many features, such as climbing, new grabbing mechanics, and archery physics.

Problems Emerge

VRTK was starting to show fundamental architectural problems. Harvey had originally built it on top of the SteamVR Plugin- the Oculus integration for example was just an abstraction layer. If the SteamVR Plugin had a major update (and it did eventually) VRTK would break, and supporting future hardware would require ever more complex abstraction layers. It became clear that VRTK needed to be rewritten from the ground up to be easier to use, more modular, and truly hardware agnostic.

Such an enormous task would require hiring developers- and that requires money. Harvey tried launching a Kickstarter campaign, but it failed to meet its goals. Some even accused him of trying to “cash in”. Next, he tried Patreon- but that too failed to generate the level of funding needed, Harvey claims. He also claims that Valve Corporation declined to support VRTK due to being considered a competitor.

Throughout 2017, Harvey had to pour his own money into keeping up development on VRTK. The overwhelming task of documentation, tutorials, and supporting developers slowed the development to a crawl. Worse, VRTK was being blamed for enabling the many “asset flip” titles flooding the Steam marketplace.

In December, Harvey decided that he had had enough, deciding to stop development of VRTK. The lack of funding and scale of negativity had reached its limit.

Oculus To The Rescue

In January 2018, Harvey received an email from Oculus VR, LLC. They had heard of the demise of VRTK and wanted to provide the funding necessary to continue development. Harvey was skeptical, thinking that Oculus would want to decimate the principles of VRTK or make it exclusive.

His skepticism turned out unfounded however. Oculus offered a 6-month full grant with no conditions attached. With this funding, Harvey was able to continue development of VRTK, and so v4 was born.

The funding was used to take on dedicated community member Christopher-Marcel Böddecker as a full time developer.

v4: A Rewrite

VRTK v4 is a completely hardware agnostic rewrite. In fact, it’s theoretically now engine agnostic, so it could even support Unreal Engine in the future. Instead of a single script as in v3, v4 now uses prefabs containing simple scripts. Whereas v3 would often require custom code to achieve seemingly simple tasks, v4’s modularity means tasks such as a pump action shotgun can be achieved with just configuring existing components.

This new modularity also means that v4 can support augmented reality devices in future.

The old video tutorials, which became outdated quickly, have now been replaced with VRTK Academy, a full documentation wiki maintained by both VRTK developers and the community.

While v4 is in beta, the VRTK team claims it isn’t buggy and recommends any developers use it rather than v3 for current & future projects. It can be downloaded as a zip file from GitHub.

With the Oculus grant being only 6-months, VRTK is still in need of funding. If you want to support their project, you can contribute to their Patreon.

Tagged with: , ,

The post VRTK v4 Beta Makes The Best Unity VR Framework Even Better appeared first on UploadVR.

Oculus Unity Plugin Adds Windows MR Support Via SteamVR

rift windows mr unity

Developers of Oculus Rift games made with the Oculus Unity plugin can now add Windows MR headset support with their existing code.

Facebook first added SteamVR support to the Oculus Unity Integration back in November. In December an update expanded that support, adding VR overlays.

Until now this cross-platform support has been limited to the HTC Vive. The latest update adds official support for Windows MR headsets too. The documentation includes details of how the Oculus Touch APIs relate to the Windows MR controllers.

What This Does And Doesn’t Mean

Like with the HTC Vive support this has no direct user facing consequences. Oculus Store games still can only have Oculus API support ticked in Unity. This change won’t make Windows MR work there. What this does do however is lower the technical barriers to building for Rift first and supporting Windows MR later, or wanting to release on both.

A developer of a game in Unity for the Oculus Rift can now add Windows MR support without having to integrate the separate SteamVR Plugin. Instead of having to manage the separate Oculus & SteamVR integrations they can stick with one. We should of course note the SteamVR Plugin can also be used to support both headsets, but this can’t be used for Oculus Store builds. Ultimately, this means developers building for SteamVR first and then planning to submit to the Oculus Store eventually would have to use the Oculus Integration anyway.

Windows MR is nearing 10% market share in the Steam Hardare survey. Hopefully the combination of that shift and this update prompts more developers to add support for Windows MR.

Tagged with: , , , ,

The post Oculus Unity Plugin Adds Windows MR Support Via SteamVR appeared first on UploadVR.

Oculus Made It Easier For Unity Devs To Port Rift Games To HTC Vive

Oculus Made It Easier For Unity Devs To Port Rift Games To HTC Vive

Facebook’s Oculus released a new update to its Unity integration package to make it easier for developers of Rift-only games to port to HTC Vive. The new “cross-platform development support” was added in version 1.31.0. The release notes state that this is an experimental feature, and that it “may change or be removed”.

The Situation Until Now

What makes modern game engines like Unity so useful for both developers and end users is that they support many platforms with the same project and code — eliminating development time to “port” a game from one platform to the other. The lofty goal of Unity is to let you focus on actually making your game and let the engine itself worry about platform differences.

However in reality, things aren’t quite so simple — especially in the VR space. Unity supports the Oculus API and SteamVR API with no effort from the developer required, but this support is fairly limited to essential features. So Oculus and Valve each provide Unity packages on top of these APIs — the Oculus Integration and SteamVR Plugin. These packages contain scripts, prefabs, resources, example scenes, and extra APIs to allow developers to have more than just the barebones VR support that Unity’s engine provides.

The problem is, the SteamVR Plugin does not directly support the Oculus API, and Oculus Store requires submissions to have direct Oculus API support to be approved. If a developer wanted to release on the Oculus Store for Rift and Steam for Rift and HTC Vive, they had to use both packages, or the generic Unity XR framework which is generally considered inferior to both. Using both packages takes extra development time and adds extra complexity to the project.

The New Update

The change in the new Oculus Integration release is that its core features now support the SteamVR API, instead of just the Rift’s Oculus API. From a development perspective nothing changes except that these prefabs and APIs will set and return values for a HTC Vive instead of just for a Rift.

The features supported so far are:

  • Camera: the OVRCameraRig prefab used to handle the virtual cameras for the user’s eyes and gameobjects for the user’s controllers fully supports the HTC Vive
  • Tracking: the API calls to get the velocity or angular velocity of the headset will work for HTC Vive
  • Input: the API calls to get the button states, thumbstick positions, and trigger depression of the Touch controllers – for HTC controllers the trackpad is treated like a thumbstick, and the app button (above the trackpad) is treated like the top Y/B buttons on Touch (controls mapped to the A or X button need to be changed)
  • Haptics: the same APIs for haptic feedback on Touch now works on HTC controllers
  • Guardian/Chaperone: the API to retrieve the user’s Guardian boundary and playspace will for HTC Vive users retrieve the Chaperone boundary and playspace
  • Avatars: Oculus Avatars will work on SteamVR, but non-Oculus users will have to select from a predefined list instead of creating their own (this was actually enabled a while ago separately, but ties in)

What This Means- And Doesn’t Mean

First off, none of this has any direct user-facing consequences, this is for developers. If a developer creates a game in Unity for the Oculus Rift, then decides to port to HTC Vive, they can in many cases now simply tick the OpenVR checkbox in the Unity platform settings. There is no longer a need to integrate SteamVR Plugin’s separate prefabs & APIs and manage two versions of everything at once. We should of course note the SteamVR Plugin can also be used to support both headsets, but this can’t be used for Oculus Store builds. Ultimately, this means developers building with SteamVR first and then planning to submit to the Oculus Store eventually would have to use the Oculus Integration anyway.

Oculus Store games still can only have Oculus API support ticked in Unity — this change won’t make the HTC Vive work there. What this does do is lower the technical barriers to Unity developers building for Rift first and then also releasing their apps on SteamVR, or wanting to release on both.

Right now the only alternative platform supported by the Oculus Integration is SteamVR, with the HTC Vive listed as the only supported hardware. This is also just for Unity, not Unreal Engine. Hopefully in the future this support will expand to other platforms, because anything that makes it easier for developers to put their applications on additional hardware or storefronts helps everyone.

Tagged with: , , , , , ,

The post Oculus Made It Easier For Unity Devs To Port Rift Games To HTC Vive appeared first on UploadVR.

Unity CEO On VR/AR: ‘In My Mind We Haven’t Seen A Consumer Launch Yet’

Unity CEO On VR/AR: ‘In My Mind We Haven’t Seen A Consumer Launch Yet’

Unity CEO John Riccitiello doesn’t think we’ve yet seen a true consumer launch of a VR or AR headset.

Speaking at this month’s TechCrunch Disrupt event in San Francisco, Riccitiello stated that around two-thirds of all VR and AR applications were built inside the Unity engine, though he reasoned that every device on the market today was really a ‘beta’ kit.

“They’re not cheap enough,” he explained, “they don’t work well enough, you don’t have enough good control systems, you can’t see your arms and your legs in most of them and use them in an interactive way, there’s not a lot of content.”

Despite the fact the likes of the Oculus Rift, HTC Vive and PlayStation VR (PSVR) headsets are readily available to consumers, then, Riccitiello thinks that they’re intended for a different audience. “AR and VR is mostly to this day been launched to developers,” he said. “I mean, name the content. It’s not there yet. I think it will be there yet.”

Riccitiello continued by explaining that he had been impressed by how fast enterprise had latched on to VR and AR tech. “It’s not a surprise that the commercial applications have preceded the consumer applications because, at least in my mind, we haven’t seen a consumer launch yet,” the CEO explained.

Back in 2016 Riccitiello famously predicted a ‘gap of disappointment‘ for the VR and AR industry, in which headset sales wouldn’t match up to the lofty expectations of analysts and the market. He did, however, later predict that in a few years’ time we would see the devices that really started to breathe life into the market. It’s interesting to hear that, a year and a half on from then, the Unity CEO still doesn’t think launches like Oculus Go or sales of three million units for PSVR equate to a true consumer market.

“AR and VR is not yet a consumer smash, although it’s rising and it will ultimately get there,” he said.

Tagged with: ,

The post Unity CEO On VR/AR: ‘In My Mind We Haven’t Seen A Consumer Launch Yet’ appeared first on UploadVR.