Developing VR Experiences

Similar documents
Diving into VR World with Oculus. Homin Lee Software Engineer at Oculus

OCULUS VR, LLC. Oculus User Guide Runtime Version Rev. 1

Oculus Rift Introduction Guide. Version

Virtual Reality I. Visual Imaging in the Electronic Age. Donald P. Greenberg November 9, 2017 Lecture #21

Best Practices for VR Applications

HMD based VR Service Framework. July Web3D Consortium Kwan-Hee Yoo Chungbuk National University

LOOKING AHEAD: UE4 VR Roadmap. Nick Whiting Technical Director VR / AR

Intro to Virtual Reality (Cont)

Unity & VR Best Practices

Motion sickness issues in VR content

/ Impact of Human Factors for Mixed Reality contents: / # How to improve QoS and QoE? #

Oculus Rift Getting Started Guide

Oculus Rift Getting Started Guide

AngkorVR. Advanced Practical Richard Schönpflug and Philipp Rettig

In the end, the code and tips in this document could be used to create any type of camera.

Einführung in die Erweiterte Realität. 5. Head-Mounted Displays

Audio Output Devices for Head Mounted Display Devices

New Skills: Finding visual cues for where characters hold their weight

loss of detail in highlights and shadows (noise reduction)

Rendering Challenges of VR

Oculus Rift Development Kit 2

Thinking About Psychology: The Science of Mind and Behavior 2e. Charles T. Blair-Broeker Randal M. Ernst

Virtual Reality. Lecture #11 NBA 6120 Donald P. Greenberg September 30, 2015

Harry Plummer KC BA Digital Arts. Virtual Space. Assignment 1: Concept Proposal 23/03/16. Word count: of 7

Special Topic: Virtual Reality

Obduction User Manual - Menus, Settings, Interface

TOUCH & FEEL VIRTUAL REALITY. DEVELOPMENT KIT - VERSION NOVEMBER 2017

Dental photography: Dentist Blog. This is what matters when choosing the right camera equipment! Checklist. blog.ivoclarvivadent.

Cameras. Steve Rotenberg CSE168: Rendering Algorithms UCSD, Spring 2017

CSC 170 Introduction to Computers and Their Applications. Lecture #3 Digital Graphics and Video Basics. Bitmap Basics

ARTISTRY IN A NEW MEDIUM: LONE ECHO AND THE MAGIC OF VR NATHAN PHAIL-LIFF ART DIRECTOR READY AT DAWN

Presented to you today by the Fort Collins Digital Camera Club

3D CHARACTER DESIGN. Introduction. General considerations. Character design considerations. Clothing and assets

Virtual Reality Technology and Convergence. NBA 6120 February 14, 2018 Donald P. Greenberg Lecture 7

Virtual Reality. NBAY 6120 April 4, 2016 Donald P. Greenberg Lecture 9

Assignment 5: Virtual Reality Design

PHYSICS. Chapter 35 Lecture FOR SCIENTISTS AND ENGINEERS A STRATEGIC APPROACH 4/E RANDALL D. KNIGHT

Lecture 8. Human Information Processing (1) CENG 412-Human Factors in Engineering May

Engineering at a Games Company: What do we do?

The purpose of this document is to outline the structure and tools that come with FPS Control.

EnSight in Virtual and Mixed Reality Environments

Achieving High Quality Mobile VR Games

Topic: Compositing. Introducing Live Backgrounds (Background Image Plates)

Easy Input For Gear VR Documentation. Table of Contents

used to diagnose and treat medical conditions. State the precautions necessary when X ray machines and CT scanners are used.

Effects of Visual-Vestibular Interactions on Navigation Tasks in Virtual Environments

Vision. The eye. Image formation. Eye defects & corrective lenses. Visual acuity. Colour vision. Lecture 3.5

LECTURE 3: PERCEPTION AND VISUAL DISPLAYS

CS 498. Sections VR3 & VR4

Detailed Instructions for Success

CONTENTS INTRODUCTION ACTIVATING VCA LICENSE CONFIGURATION...

Unpredictable movement performance of Virtual Reality headsets

Chapter 7- Lighting & Cameras

Color and perception Christian Miller CS Fall 2011

Virtual Reality Technology and Convergence. NBAY 6120 March 20, 2018 Donald P. Greenberg Lecture 7

Oculus Rift Best Practices

TSBB15 Computer Vision

Caution Notes. Features. Specifications. Installation. A3-L 3-axis Gyro User Manual V1.0

Space Invadersesque 2D shooter

Experiment HM-2: Electroculogram Activity (EOG)

Oculus Best Practices. Version

Virtual Reality in Neuro- Rehabilitation and Beyond

Popular Nikon Lenses for Shooting Video

Creating Stitched Panoramas

Welcome to this course on «Natural Interactive Walking on Virtual Grounds»!

Interventions for vision impairments post brain injury: Use of prisms and exercises. Dr Kevin Houston Talia Mouldovan

Output Devices - Visual

THE DAWN OF A VIRTUAL ERA

Detection of external stimuli Response to the stimuli Transmission of the response to the brain

Quality of Experience for Virtual Reality: Methodologies, Research Testbeds and Evaluation Studies

Spatial Audio & The Vestibular System!

Welcome. My name is Jason Jerald, Co-Founder & Principal Consultant at Next Gen Interactions I m here today to talk about the human side of VR

* When the subject is horizontal When your subject is wider than it is tall, a horizontal image compliments the subject.

Feeding human senses through Immersion

Image stabilization (IS)

Touch Feedback in a Head-Mounted Display Virtual Reality through a Kinesthetic Haptic Device

HTC VIVE Installation Guide

Perception. The process of organizing and interpreting information, enabling us to recognize meaningful objects and events.

A Vestibular Sensation: Probabilistic Approaches to Spatial Perception (II) Presented by Shunan Zhang

Head Tracking for Google Cardboard by Simond Lee

Augmented and Virtual Reality

Network Institute Tech Labs

FATE WEAVER. Lingbing Jiang U Final Game Pitch

VIRTUAL REALITY GOGGLES Model: VR01

VR Basics. Virtual Reality /23/2018

ensory System III Eye Reflexes

revolutionizing Subhead Can Be Placed Here healthcare Anders Gronstedt, Ph.D., President, Gronstedt Group September 22, 2017

DSLR Essentials: Class Notes

Chapter 1 Virtual World Fundamentals

LAB 1 Linear Motion and Freefall

in association with Getting to Grips with Printing

Types of lenses. Shown below are various types of lenses, both converging and diverging.

Regan Mandryk. Depth and Space Perception

Visual Effects of Light. Prof. Grega Bizjak, PhD Laboratory of Lighting and Photometry Faculty of Electrical Engineering University of Ljubljana

Slide 4 Now we have the same components that we find in our eye. The analogy is made clear in this slide. Slide 5 Important structures in the eye

Unit IV: Sensation & Perception. Module 19 Vision Organization & Interpretation

Digital Photography for Rail Fans By David King

Life Science Chapter 2 Study Guide

Virtual Mix Room. User Guide

1 Shooting Gallery Guide 2 SETUP. Unzip the ShootingGalleryFiles.zip file to a convenient location.

Transcription:

Developing VR Experiences with the Oculus Rift Tom Forsyth GDC Europe August 2014

Palmer Luckey & John Carmack duct-tape prototype at E3 2012 Oculus VR founded mid 2012 Successful Kickstarter campaign Sept 2012 First 10k dev kits shipped March 2013 55,000 DK1 dev kits made & shipped >50,000 DK2 on order (16k shipped as of Aug 8 th ) 70,000 developers on Oculus dev portal Acquired by Facebook July 2014 2

The Rift Technology Development Kit 2 1920x1080 OLED screen, half per eye Wide-angle circular lenses, 90-110 degree FOV GPU corrects distortion of lenses Low-persistence each pixel is lit for <3ms per frame 1000Hz gyro tracks orientation 60Hz position tracking: external camera sees LED array on HMD SW fusion and prediction of orientation and position 3

Topics Be kind to your players VOR gain IPD and the neck Changing world scale How tall is the player? Transition animations Meathook avatars Maintaining framerate 4

Be kind to your players VR developers spend hours a day looking at an HMD Much of that time, there will be bugs everywhere Our brains soon learn to ignore the crazy 5

Be kind to your players VR developers spend hours a day looking at an HMD Much of that time, there will be bugs everywhere Our brains soon learn to ignore the crazy Your players do not! Their brains are fresh and innocent They expect things to be real Hopefully you have debugged everything and have true presence 6

Be kind to your players VR developers spend hours a day looking at an HMD Much of that time, there will be bugs everywhere Our brains soon learn to ignore the crazy Your players do not! Their brains are fresh and innocent They expect things to be real Hopefully you have debugged everything and have true presence If you crank everything to 11, you will traumatize them They ll stop playing 7

Be kind to your players VR developers spend hours a day looking at an HMD Much of that time, there will be bugs everywhere Our brains soon learn to ignore the crazy Your players do not! Their brains are fresh and innocent They expect things to be real Hopefully you have debugged everything and have true presence If you crank everything to 11, you will traumatize them They ll stop playing and give you a one star review 8 8

Be kind to your players Everyone is wildly different What is intolerable for some is not even visible to others 9

Be kind to your players Everyone is wildly different What is intolerable for some is not even visible to others There is no one VR tolerance slider Someone who is very sensitive to one aspect may tolerate another just fine e.g. going up and/or down stairs 10

Be kind to your players Everyone is wildly different What is intolerable for some is not even visible to others There is no one VR tolerance slider Someone who is very sensitive to one aspect may tolerate another just fine e.g. going up and/or down stairs Tolerance is not simply a skill you can learn There can be negative feedback: people get less tolerant with exposure 11

Be kind to your players Everyone is wildly different What is intolerable for some is not even visible to others There is no one VR tolerance slider Someone who is very sensitive to one aspect may tolerate another just fine e.g. going up and/or down stairs Tolerance is not simply a skill you can learn There can be negative feedback: people get less tolerant with exposure Best Practices Guide contains what we know Use it as a checklist of things to at least think hard about 10 12

Be kind to your players Err on the gentler side Over-intense VR makes it harder to follow plot & game mechanics 13

Be kind to your players Err on the gentler side Over-intense VR makes it harder to follow plot & game mechanics Make intense experiences optional Fewer in your face particles & explosions Less, slower movement Maybe reduce the world scale (see later) 14

Be kind to your players Err on the gentler side Over-intense VR makes it harder to follow plot & game mechanics Make intense experiences optional Fewer in your face particles & explosions Less, slower movement Default low Let more experienced VR people opt in, don t make newbs opt out 15

Be kind to your players Err on the gentler side Over-intense VR makes it harder to follow plot & game mechanics Make intense experiences optional Fewer in your face particles & explosions Less, slower movement Default low Let more experienced VR people opt in, don t make newbs opt out Make it easy to change any time Allow dropping to lower intensity to actually play the game after the VR hit 12 16

Vestibulo-Optical Reflex 17

Vestibulo-Optical Reflex OMGWTH??? 18

Vestibulo-Optical Reflex Horizontal slice through the head (just showing systems for yaw control) 19

Vestibulo-Optical Reflex Horizontal slice through the head (just showing systems for yaw control) Semi-circular canals in the ears 20

Vestibulo-Optical Reflex Eyeballs and muscles Semi-circular canals in the ears 21

Vestibulo-Optical Reflex Eyeballs and muscles Reflex neurons Semi-circular canals in the ears 13 22

Vestibulo-Optical Reflex Used in fixation Static object, moving head Head rotation detected by ears <10ms later, smooth eye rotation Not saccadic! Very smooth Excellent visual quality 23

VOR gain VOR gain is the ratio between ear motion and eye response Usually gives 1:1 compensation +10⁰ head motion = -10⁰ eye motion Gain fine-tuned during fixation Tries to produce zero retinal flow Tuning is extremely slow 15 24

VOR gain What if the view is compressed? A new pair of glasses Incorrect rendering scale in VR 10⁰ head motion now needs -5⁰ eye motion to maintain fixation 25

VOR gain What if the view is compressed? A new pair of glasses Incorrect rendering scale in VR 10⁰ head motion now needs -5⁰ eye motion to maintain fixation VOR gain now results in retinal flow Causes disorientation Gain adaptation takes 1-2 WEEKS (assuming continuous use!) 16 26

Preserving VOR gain Games on a monitor often have a FOV slider Acceptable on a monitor does not directly affect VOR gain Monitor does not move with the head no virtual fixation happening Peripheral vision of room provides real-world optical flow reality check but even then it does cause problems for some 27

Preserving VOR gain 18 Games on a monitor often have a FOV slider Acceptable on a monitor does not directly affect VOR gain Monitor does not move with the head no virtual fixation happening Peripheral vision of room provides real-world optical flow reality check but even then it does cause problems for some In the Rift, the only things to fixate on are in VR Retinal flow of VR objects must match real-world motion FOV scale in VR is not an arbitrary choice! It must match the HMD+user characteristics Doctor it hurts my players brains when I do this 28

Preserving VOR gain The Rift display has a physical pitch, aka pixels per visible degree Exact value depends on distortion, user s head & eye position, etc. Found with user configuration tool SDK will help you match this pitch precisely For a given device & user size, it will give you the right FOV & scale Avoid any changing FOV or zoom effects 10 degrees of head rotation must produce 10 degrees of optical flow Even slight changes in pixels per degree will cause problems for most users 19 29

IPD, eye-relief, and the neck 30

IPD, eye-relief, and the neck IPD Inter-Pupillary Distance That s all I need, right? 31

IPD, eye-relief, and the neck 21 IPD Inter-Pupillary Distance Actually two components per eye Nose-to-pupil half-ipd Eye-relief distance from lens surface to pupil NOT related to the dimensions of the HMD! Together form center-to-eye vector Set during user configuration Stored in user profile Rarely symmetrical My eye reliefs differ by 2mm This chap is 1 pixel different in nose-to-pupil 32

IPD, eye-relief, and the neck Center eye pupil - position reported by SDK Centerline of the HMD Average of left & right eye-reliefs Roughly where players feel they are Audio listener position Line-of-sight checks Origin for reticle/crosshair raycast 33

IPD, eye-relief, and the neck Origin set by sensor->recenter() App should have a button to trigger this Player sits in neutral forward pose to press it Also defines zero yaw Zero pitch & roll defined by gravity vector 34

IPD, eye-relief, and the neck SDK reports pos & orn of center eye 35

IPD, eye-relief, and the neck SDK reports pos & orn of center eye Add on center-to-eye vectors 36

IPD, eye-relief, and the neck SDK reports pos & orn of center eye Add on center-to-eye vectors Virtual camera positions for rendering 37

IPD, eye-relief, and the neck SDK reports pos & orn of center eye Add on center-to-eye vectors Virtual camera positions for rendering Remember all these are real distances They are real player dimensions and motion They are not your free artistic choice! Changing them can very quickly cause problems 38

IPD, eye-relief, and the neck SDK reports pos & orn of center eye Add on center-to-eye vectors Virtual camera positions for rendering Remember all these are real distances They are real player dimensions and motion They are not your free artistic choice! Changing them can very quickly cause problems but there is one thing you can do 24 39

Changing World Scale 40

Changing World Scale You can apply a consistent scale to all three Scale center-to-eye and head motion identically 41

Changing World Scale You can apply a consistent scale to all three Scale center-to-eye and head motion identically Identically 42

Changing World Scale You can apply a consistent scale to all three Scale center-to-eye and head motion identically Identically No VR giraffes! 43

Changing World Scale You can apply a consistent scale to all three Scale center-to-eye and head motion identically Same effect as scaling the entire world Very compelling sense of being larger or smaller Reducing world scale can help reduce intensity for some people Scales down all motions, accelerations, etc Don t shrink too small or convergence gets tricky 26 44

Changing World Scale Monocular mode IPD of zero An extreme case of scaling mismatch Studied in some older research Our testing results: it doesn t work It s either neutral or bad In some cases, it s awful 45

Changing World Scale Monocular mode IPD of zero An extreme case of scaling mismatch Studied in some older research Our testing results: it doesn t work It s either neutral or bad In some cases, it s awful Many older studies were done with bad VR Maybe it just makes bad VR less bad? We strongly urge you not to do this! 27 46

How tall is the player? Player profile has their actual height SDK calculates eye-height-off-ground Real world 5 3 1.60m 47

How tall is the player? Player profile has their actual height SDK calculates eye-height-off-ground If playing themselves, use that Exploring an environment Virtual tourism Gives people a known metric & scale Virtual world Real world 5 3 1.60m 48

How tall is the player? Player profile has their actual height SDK calculates eye-height-off-ground If playing themselves, use that Exploring an environment Virtual tourism Gives people a known metric & scale But if playing another character? e.g. Cmdr Riker is much taller Virtual world Real world 5 3 1.60m 49

Real world 5 3 1.60m 50

Real world 8 6 5 3 2.60m 1.60m 51

How tall is the player? Move the player s eyes to match the height of the character Virtual world Real world 8 6 2.60m 5 3 1.60m 52

How tall is the player? Changing eye height seems to be an aesthetic decision No need to change world scale as well Does not seem to cause disorientation (unlike other physical values) Player playing themselves use their real height Gives people a known metric to measure objects against Player playing a specific character use height of character Often necessary for gameplay reasons sight lines, framing, etc 31 53

Perceived World Size Floor-Dragging Virtual world Real world 5 11 1.80m 5 3 1.60m 54

Perceived World Size Floor-Dragging This should work, right? Virtual world Real world 5 11 1.80m 5 3 1.60m 55

Perceived World Size Floor-Dragging This should work, right? But the real-world player isn t standing up Virtual world Real world 5 11 1.80m 5 3 1.60m 56

Perceived World Size Floor-Dragging Virtual world Real world This should work, right? But the real-world player isn t standing up They re seated With feet on the floor So the brain can FEEL where the floor is 5 11 1.80m 4 0 1.22m 57

Perceived World Size Floor-Dragging This seems fine, right? But the real-world player isn t standing up They re seated With feet on the floor So the brain can FEEL where the floor is Scales the visible world to match Now the world is smaller Riker is now shorter than Troi! 4 6 1.37m Virtual world Real world 4 0 1.22m 58

Perceived World Size Floor-Dragging Real-world player is sitting down, with feet on the floor The brain knows where the floor is, it can feel it! The brain scales the visible virtual world using the floor as reference With a standing avatar, will cause the world to shrink Scaling appears to be higher-level cognitive effect Conflicts with low-level stereoscopy and parallax cues Effect comes and goes depending on focus 59

Perceived World Size Floor-Dragging No one-size-fits all solution 60

Perceived World Size Floor-Dragging No one-size-fits all solution Use seated avatars? Works great for driving & flying sims Papers Please VR Edition? 61

Perceived World Size Floor-Dragging No one-size-fits all solution Use seated avatars? Scale the world larger to compensate? Limited success, you now have even more conflict between sensory inputs Stereo effect magnified, may be too intense for some 62

Perceived World Size Floor-Dragging No one-size-fits all solution Use seated avatars? Scale the world larger to compensate? Give in and scale the world smaller to match? Now everyone is an Oompa Loompa But at least the visual cues don t conflict with the physical ones More relaxing, more immersive 63

Perceived World Size Floor-Dragging No one-size-fits all solution Use seated avatars? Scale the world larger to compensate? Give in and scale the world smaller to match? Make players sit on bar stools? Or any other way of getting feet off the floor Heel rests, ankle stirrups, sit cross-legged 64

Perceived World Size Floor-Dragging No one-size-fits all solution Use seated avatars? Scale the world larger to compensate? Give in and scale the world smaller to match? Make players sit on bar stools? More research needed and this is where we d love feedback from devs 36 65

Transition animations In general, never take control of the camera Always keep head-tracking on & faithful Causes significant problems for many users If you must do it, do it FAST teleport rather than fly 66

Transition animations In general, never take control of the camera But sometimes, transitions need to happen for story/world Getting into/out of vehicles Getting into/out of bed Standing up after knockdown Picking an object off the floor 67

Transition animations In general, never take control of the camera But sometimes, transitions need to happen for story/world Most people find these too intense in VR Especially orientation changes 68

Transition animations In general, never take control of the camera But sometimes, transitions need to happen for story/world Most people find these too intense in VR Option: show your avatar doing the action Be careful of the 1 st to 3 rd person transition Try a ghostly/transparent avatar 69

Transition animations In general, never take control of the camera But sometimes, transitions need to happen for story/world Most people find these too intense in VR Option: show your avatar doing the action Option: use a dissolve or fade-through-black Needs to be live rendering, not a screenshot Maintain head-tracking all the time - let the player look around 70

Transition animations In general, never take control of the camera But sometimes, transitions need to happen for story/world Most people find these too intense in VR Option: show your avatar doing the action Option: use a dissolve or fade-through-black Option: use a blink Fuzzy-edged black borders top & bottom Close, teleport, open If ~300ms, some players don t even see them! 40 71

Animated avatars Highly animated 1 st -person avatars are awesome Amazing sense of immersion and presence TF2 examples: High fives Yelling medic hand comes to face Sniper s bird Sir Hootsalot / Steel Songbird 72

Animated avatars Highly animated 1 st -person avatars are awesome Amazing sense of immersion and presence TF2 examples: High fives Yelling medic hand comes to face Sniper s bird Sir Hootsalot / Steel Songbird Constraints: Virtual camera should always move with player s real head Virtual camera and avatar s head should coincide for best immersion 73

Animated avatars Highly animated 1 st -person avatars are awesome Amazing sense of immersion and presence TF2 examples: High fives Medic hand comes to face Sniper s bird Sir Hootsalot / Steel Songbird Constraints: Virtual camera should always move with player s real head Virtual camera and avatar s head should coincide for best immersion but those conflict! 74

Solution: 75

Solution: 76

Meathook avatars 77

Meathook avatars Play animation on the avatar 78

Meathook avatars Play animation on the avatar Find avatar s animated head position May need to add a center eye bone to the skeleton 79

Meathook avatars Play animation on the avatar Find avatar s animated head position Decapitate e.g. shrink the head bone to zero size Otherwise you see teeth & eyeballs from the inside 80

Meathook avatars Play animation on the avatar Find avatar s animated head position Decapitate Find player s virtual camera position Standard head-tracking data from the SDK 81

Meathook avatars Play animation on the avatar Find avatar s animated head position Decapitate Find player s virtual camera position Hang the avatar on the hook Fix head position to player s position Retain existing orientation 82

Meathook avatars 45.5 Play animation on the avatar Find avatar s animated head position Decapitate Find player s virtual camera position Hang the avatar on the hook Fix head position to player s position Retain existing orientation Body thrashes around underneath with animations Result in external debug camera is really quite gruesome But it works great in VR! 83

Maintaining framerate Presence is a fairly binary thing you have it or you don t Rock-solid, high FPS vital to sense of presence in VR Stereo display at 75FPS is challenging Aggressively drop details and effects to maintain framerate and low latency Maintaining presence gives far more player enjoyment than extra effects Main costs are draw calls and fillrate 84

Maintaining framerate draw calls Twice as many eyes, so twice as many calls New APIs should make multi-submission cheaper Mantle, DX12, etc Some things only need doing once Culling use a conservative frustum that includes both eyes Animation Shadow buffer rendering Some distant reflections/gloss maps/ao renders but not all! Some deferred lighting techniques 85

Maintaining framerate fill rate Change size of the virtual camera renders, NOT the framebuffer size e.g. with DK2, framebuffer is always 1080x1920 don t change this! But camera-eye renders typically 1150x1450 per eye Depends on shape of user s face & eye position set by profile & SDK 86

Maintaining framerate fill rate 51 Change size of the virtual camera renders, NOT the framebuffer size e.g. with DK2, framebuffer is always 1080x1920 don t change this! But camera-eye renders typically 1150x1450 per eye Depends on shape of user s face & eye position set by profile & SDK Scaling this render is absolutely fine Distortion correction pass will resample & filter it anyway Scaling it dynamically every frame is also fine nearly invisible If you have lots of particles/explosions that frame, drop the size Use the same RT, just use a smaller part of it SDK explicitly supports this use case 87

Lessons learned Be kind to your players Default to low intensity, let the brave ones pick MUCH WOW mode VOR gain FOV scale is not an arbitrary knob to play with follow the player s profile IPD and head motion Keep them in sync follow the player s profile Changing world scale & how tall is the player? Aesthetic choices, odd perceptual effects, but fortunately few disorientation problems Transition animations Try to avoid, but if you must, a teleport is better than continuous motion Meathook avatars Gruesome in debug cams, looks great from the inside Maintaining framerate Scaling the virtual eye renders looks surprisingly fine 88

Further reading, search for Oculus VR Best Practices Guide www.oculusvr.com Tom.Forsyth@oculus.com 52.5 Rest in peace 89