oculus insight building the best vr aaron davies
Post on 29-Nov-2014
Embed Size (px)
DESCRIPTIONThe rapid growth of the VR industry has brought to light new opportunities. Best Practices are emerging to guide developers in creating experiences which will thrill and excite them, while at the same time providing a safe and comfortable VR interaction. Find out what works, why VR is important, and learn of the important actions you can take to deliver the highest quality consumer grade VR interaction possible.
- 1. Aaron Davies, Head of Developer Relations
2. MobileAccessibility | PortabilityPCHigh Fidelity | Presence 3. Free storelaunches first commerce to follow 4. GETTING HIGHRES IMAGES 5. LETS TALK ABOUT VR TECH 6. Tracker CPU GPU Display Photons OpticsInputUSBGameEngineNewImagePixelSwitchingWriteDisplay 7. TRACKING6DOF, 360 trackingsub-mm accuracy, no jitter noisecomfortable tracking volume 8. LATENCY< 20ms motion to last photonfuse optical tracking and IMUminimize loop: tracker->CPU->GPU->display->photons 9. PERSISTENCECurrently less than 3msturn on/off quickly to avoid retinal blur90hz+ refresh rate to avoid visible flicker 10. RESOLUTIONcorrect stereoat least 1K x 1Kno visible pixel structure 11. OPTICSwide FOV: greater than 90 degreescomfortable eyeboxhigh quality calibration and correction 12. SDKWhats in the box?? 13. DIRECT MODERENDERINGHeadset not seen by the OSAvoid jumping windows and iconsDecouples Rift v-sync from OS compositorAvoids extra GPU buffering for minimum latencyUse ovrHmd_AttachToWindowWindow swap chain output is directed to the RiftSupports display mirroring 14. LATENCY TESTING Goal is < 20 ms, and hopefully close to 5 ms DK1 External tester Not very practical Up to developer to test / update 15. LATENCY TESTING Goal is < 20 ms, and hopefully close to 5 ms DK2 Dynamic Latency Calculation SDK :: Hardware coupling 16. PIXEL LUMINANCEOVERDRIVE Artifact called 2-frame-rise-delay Display fails to hit requested luminancelevels fast enough Accounting for this in 0.4 SDK 17. Pixel driving voltagePixel transmissionOver DrivingTransmission afterone frame period1 frame TimePixel driving voltagePixel transmissionNormal DrivingTransmission afterone frame period1 frame Time 18. FOV SDK provides recommended FOVs FOV port: Left, Right, Top, Bottom tangent angles Helpers to convert FOV Port to projection matrix Please: Do not cook up your own projection matrix thatlooks good enough using your own magic constants. We have seen games with divergent stereo-parallax.BAD!Symmetric ProjectionAsymmetric Projection 19. TIME-WARP Re-projects rendering for a later point in time Done simultaneously with distortion Reduces perceived latency Accounts for DK2 rolling shutter 0.4 SDK only handles orientation, positional possible 20. TIME-WARP AGAIN (ASYNC) Time warp in a separate thread Best hope for reducing Judder Fill in the frames based on old rendering Implemented on Android for Gear VR Works well for smoothing head tracking on 30 fps game Requires: GPU Priorities GPU Preemption 21. SDK RENDERING 0.4 Barrel distortion with chromatic aberration & time warp Internal latency testing & dynamic prediction Low-latency v-sync and flip (even better with direct-to-rift) Pixel Luminance Overdrive Health & Safety Warning If your engine cannot use SDK rendering, then *please* let us know why not! 22. DESIGNING FOR VRHow is this black box different????? 23. COMFORT IS KEY Motion is not easy to get right Acceleration causes disconnect Sensory hints help a lot Understand how to ground your player 24. COMFORT IS KEY FPSs are difficult Explore genres : so much to learn 3rd person perspectives can be very compelling Platformers can work really well 25. UI IS A CHALLENGE 26. REALITY != PRESENCE Presence doesnt take photo-realism Presence doesnt mean first person gameplay Presence can be achieved in the simplest ofworlds 27. THREE FOR THE WIN 28. ONE 29. TWO 30. THREE 31. THREE FOR THE TEXTBOOK 32. ONE 33. ONE 34. TWO 35. TWO 36. THREE 37. THREE 38. ROOM FOR INNOVATION So much to explore So much to learn Build teams Engage with us Rely on us 39. Thank You!