Developer's wish list (should be made sticky until fulfilled)

While currently it’s possible to deploy to Gear VR, there are a few things that are missing in the stock UE4 that Gear VR developers need to have. Below is the list I just made based on my experience and posts from other devs (feel free to post addition and correct me).

  • HISMC for mobile VR (doesn’t support static lighting; potentially bogs down performance)
  • Foliage tool for mobile VR (works with 4.12.4, but bogs down performance badly; doesn’t support static lighting)
  • Multiview rendering (already in Oculus SDK)
  • 3D spatialized audio and HRTF effects (optimized for performance too)
  • Oculus Platform SDK ( Not Found | Oculus )
  • Built-in performant and configurable blob shadows
  • General performance optimization
  • OVRLipSync (this one is implemented as plugin by a 3rd party)
  • Oculus Social voice chat (supposedly very low latency)

I might be forgetting something (and most likely what I am forgetting isn’t exclusive to Gear VR, but perhaps covers Android in general). I didn’t put Oculus Social here as I am not quite sure if it’s part of SDK, which suppose to be implemented already or something else entirely.

Some of these bullet points need to be exposed to BP.

Hopefully Epic listens and gets some of it (whatever is already available and requires least amount of effort to be integrated, like volume UI for example) into 4.11.3 or all of it into 4.12

P.S. I didn’t put Vulkan render path here since it’s unknown if S6 and alike will support it or if it’s S7 and up exclusive

That is a really good list, thanks. :slight_smile:

Thanks :slight_smile: If only Epic and Oculus looked into this and took a note (and implemented all that) :wink:

A realistic priority would be:

-3D spatialized audio
-General performance optimization
-Sound volume UI

Instanced stereo rendering will only be part of Vulkan i suppose.

Sound volume UI is the simplest to add, so it could go into 4.11.3 hotfix. 3D cursor you already implemented, so it could be added there too.

Ability to disable depth test is most likely simple to implement too, which could probably be added to hot fix as well.

I am certain the rest could go into 4.12, especially if Oculus makes UE4 patches for Epic (at least for some if the items mentioned).

unfortunately I don’t see any of those making 4.11 anymore :frowning:

One thing I would like to add to the list:

  • HDR support for GearVR

My understanding is it works for some android devices so would be great to make it work for gearvr as well! especially important once we get vulcan

@aussieburger: Added !

Yep, GVR definitely needs some attention. It would be very nice of Epic if they can at least make sure that the the basic requirements for submission (sound volume UI, etc.) are easy to setup with Blueprints. Everything else would be a welcome bonus, not to mention that stuff like 3D spatialized audio is not limited to GVR and will benefit Android games as a whole.

Quick update on some of these:

There are being fleshed out as we speak. Our rendering programmer is working on support for the OpenGL Multi-view extension in order to get performance that is instanced-stereo like on mobile chipsets. The problem with instanced stereo as we implemented it for 4.11 on mobile chipsets is that the use of user clipping planes on mobile hardware is actually slower. Until very recently, we didn’t have a build of Android that supported the multi-view extension. Now that we’ve got one, we can move forward and make progress on that.

This is coming as well as part of our usability push. Probably not in 4.12 because it’s so close to locking down, but shortly after in our template examples, which you can then migrate to your own project.

Aaron, the UE4 audio engineer, is currently rewriting the audio engine, and Android spatialization is on the list of things to be done there. The hope is that this will be hitting late summer.

Good suggestions! We can look for proving solutions for this in our usability push.

These are probably a little farther off, unfortunately, but we can talk to Oculus about getting them implemented.

I’ll defer to our Android specialists about this :slight_smile:

That’s why I love Epic - thanks for providing updates on where things currently are!

[MENTION=2437]Nick Whiting[/MENTION]:

So 4.12 gets nothing from the list? (I am surprised it’s locked down even before preview 1 is released :o )

Also, what about “Ability to disable depth testing for opaque materials (3D UMG widgets for GUIs/HUD; full screen effects using plane and masked materials; etc.)” ?

4.12, from a VR perspective, was a very short turnaround for us, because of the timing of the Oculus SDK releases. So, there’s a few features coming, but the majority of it was spent laying the groundwork for things like the multi-slice and multi-view rendering mentioned above, platform compatibility for StereoLayers support, and the groundwork for VR loading movies, which will be available soon after 4.12. Unfortunately, we’re beholden to the engine release schedule, so we weren’t able to get it all out in time. :frowning:

As for the depth testing, I meant to include that with HDR support, since that’s a rendering / Android platform support question. VR is at their mercy for that one!

Ah that is really great to hear! something that should have been on the list above as well :slight_smile:

[MENTION=2437]Nick Whiting[/MENTION]: Correct me if I’m wrong but HDR is already supported by android isn’t it? - it’s just not rendering correctly in stereo for GearVR so seems more like a specific GearVR compatibility problem then a Android platform issue? It would be really great to have this - for the particular projects that could still perform with HDR on it would really make our content stand out!

Could you also give any info/updates on Vulcan for GearVR?

I’m not a VR dev quite yet, but it’s nice to see a thread like this.

Yes, it does work on mobile on devices that support it I believe, but the problem was in our handing off of the targets to the GearVR SDK (I believe…it’s been a while since we looked at it. I’ll follow up on this internally and see where it’s at.

With 4.12, we probably have enough of our Vulkan support in main now to give a decent go at it. Next time we sync with Oculus, we’ll ask them if they have a runtime that supports Vulkan, so that we can share textures back and forth as needed. Additionally, we’ll have to make a Vulkan bridge for it, based on the current OpenGL implementation. Looking forward to seeing what kind of performance gains this might get us :slight_smile:

Any chance they can see this thread and clarify why would it be hard (or not) to include these fixes / improvements into 4.12 ? :o

Bumping thread, very useful list and thread considering current state of GearVR support in UE4 and unfortunately rather weak communication from Epic’s side concerning this topic. :wink:

It would be nice if you could get rid of the bug (?) involving HMD and the camera relative rotation, since right now, attaching a camera to a rotating pawn is ignored completely by the HMD. HMD seems to be world relative rather than parent relative, no matter what you do.

Not really clear what you mean, but camera rotation should be driven by HMD and HMD only, unless you want to make people sick deliberately.

I’m trying to make a Matinee driven sort of game, where you are inside a moving ship that takes gradual turns like any vehicle. The HMD gives you total control of the camera but ignores the (yaw) rotation of said ship making the trip really difficult to follow (if the ship takes a 180º turn, you are suddenly looking at the back of the seat).

I think it’s how it should be. User should follow the ship’s movements and turn him(her)self on the spot or sitting in the swivel chair.

When motorized chairs are norm, perhaps turning chair with ship automatically would be the thing to do :slight_smile:

I remember there is an option to lock camera to HMD. Perhaps you can disable it on runtime during Matinee sequence and then re-enable it.

Oculus recommends never take away control over camera from user/HMD. So having user physically turn to follow ship’s orientation is the best way IMO.