cancel
Showing results for 
Search instead for 
Did you mean: 

David Borel - Engineering Manager, Engine Integrations

vrdaveb
Oculus Staff
Hello Oculus developers! I'm David Borel. I've been in graphics for >10 years at NVIDIA, Havok, zSpace, and 4 years next month at Oculus, where I lead the Engine Integrations team. We focus on core VR and performance in popular engines like Unity and Unreal. At OC4, I did a talk with Jian Zhang and Remi Palandri that covered some of what we do, including recent optimizations(https://www.youtube.com/watch?v=pjg309WSzlM).

I'm looking forward to your questions and will answer as many as possible. Let's do this!

Twitter: @Dave_Borel Oculus ID: vrdaveb

There may be a slight delay after you submit your questions. Please only submit once, we’ve received your message and it will be live in the thread shortly!
47 REPLIES 47

tonsta31
Heroic Explorer

vrdaveb said:

You mean this issue? https://answers.unrealengine.com/questions/431299/why-arent-my-blueprint-motion-controllers-replicat... Thanks for reporting it. We'll follow up with Epic.


That's the one yeah, great to know its being looked at as it would save a lot of development time with a solution within the engine. Thanks once again!

We are now on Patreon! https://www.patreon.com/mgsstudios

Feel free to have a look around as there are some nice special offfers.

Owner of MGSStudios
http://www.mgsstudios.com

vrdaveb
Oculus Staff
Unity and UE4 development sometimes differ because UE4 is open-source and Unity isn't. In many cases, UE4 has built-in VR interfaces (such as motion controllers, boundary, haptics, and stereo layers) that we are able to directly implement, while we have to expose the same functionality through our Utilities package for Unity. However, the two integrations currently have most of the same features. We developed a Sample Framework for Unity before Unreal, but you can expect similar offerings for both engines as time goes on.

vrdaveb
Oculus Staff
These questions have been great so far! To dig a bit more into performance:



1. Most Rift apps are GPU-bound, meaning you should optimize your shaders and texture usage or use adaptive pixel density. Shaders should generally have only one or two passes (two is often too many on mobile), do no more than two or three texture lookups, and use simple math and little/no control flow (if, for, etc). Textures should be as small as possible for the look and quality level you are trying to achieve. Always use compression (DXTC on Rift and ASTC on Mobile) and trilinear or anisotropic filtering. And use as few post processing passes as possible.

2. Due to tiled rendering (important for power savings), draw calls are often duplicated on Mobile VR apps, causing them to be CPU-bound. Most apps get faster when they use fewer draw calls and simpler meshes. In Unity, you can use static and dynamic batching to consolidate draw calls. Be careful to use the same materials on objects to get them batched! In UE4 you need to batch geometry manually or use Hierarchical Instanced Static Mesh. If you can't reduce CPU utilization, you can sometimes increase the CPU level to avoid dropped frames. Multiview (known as Single-Pass in Unity) also helps you avoid draw calls by consolidating them between the two eye views.

3. Unity and UE4 have good built-in profilers that will tell you where your system's time is going. It generally pays to optimize whatever is taking the most time first. You can also use Systrace and SnapDragon Profiler to catch deeper performance issues on mobile or Windows Performance Analyzer and GPUView on Rift.



Here are some links for more information:



Optimization Guide: https://developer.oculus.com/documentation/pcsdk/latest/concepts/dg-performance-opt-guide

Best Practices Guide: https://developer.oculus.com/design/latest/concepts/book-bp

Our OC4 Performance Talk: https://www.youtube.com/watch?v=pjg309WSzlM

Developer Blog: https://developer.oculus.com/blog

oliver1111
Protege
hi is it still early 2018 oculus go

thank you

Anonymous
Not applicable
Whilst support has ended for development kits there are still a number of them out there doing their thing and chugging along. There are however a lot of units that are faulty and out of warranty.
There is an issue regarding a faulty calibration that was done in factory which causes these units to be "faulty" however with patched software can be made to work well enough.

Can support/dev team look at OVRServer to allow for use of the hardware bypassing the calibration check and provide it in an as is state so they owners of faulty hardware can use their dev kits. For a lot of people wanting to get into VR these units are the stepping stones good support leads to a loyal customer base.

Thanks for taking time to read this.

Chris

vrdaveb
Oculus Staff
We are working hard on Oculus Go. Please stay tuned to https://www.oculus.com/go for details!

vrdaveb
Oculus Staff
Sorry, but we have stopped developing for DK1 and DK2. Please consider upgrading to the consumer Rift for updated software.

vrdaveb
Oculus Staff
We're going to wrap up here. Thanks for all the great questions! If there's anything you're still curious about, you can always reach out on our forums or PM me directly at vrdaveb. We are excited to see what you build for Gear VR and Oculus Go and Rift!