Developing VR Experiences with the Oculus Rift Tom Forsyth GDC March 2014.

Slides:



Advertisements
Similar presentations
Know your film terms…. Take a look at the following screens, and try to names the shot or camera angle you can see by writing them down. You may work.
Advertisements

Technical Sketching and Drawing
Michael Abrash Valve What VR Could, Should, and Almost Certainly Will Be within Two Years Hi! I’m Michael Abrash, and I’m part of the team working.
Brad Hunt President Digital Media Directions, LLC Developments in 3D Displays in the Home © 2011 Digital Media Directions, LLC.
VIRTUAL REALITY’S MOMENT David Kushner IEEE Spectrum January 2014 IS 376 August 21, 2014.
Oculus Rift Victoria & Howard. What is Oculus Rift  Oculus Rift is a set of virtual-reality goggles that will work with your computer or mobile device.
Immersive Solutions Vin Sumner – CEO. Agenda Virtual Reality ( Immersive 3D ) Immersive Platforms (Games) Immersive Applications Demo of Oculus Rift DK2.
In all cameras, light enters through the lens and hits the recording medium. (In film cameras, the film plane, in digital cameras (for our purposes),
MA.912.G.2.2: Determine the measures of interior and exterior angles of polygons, justifying the method used Tony is drawing a regular polygon. He has.
A Personal Surround Environment: Projective Display with Correction for Display Surface Geometry and Extreme Lens Distortion Tyler Johnson, Florian Gyarfas,
Head-Mounted Display Sherman & Craig, pp
What’s on page 13-25? Tom Butkiewicz. Refresh Rates Flicker from shutter systems Halve refresh rates 2 eyed 120Hz != 1 eyed 60Hz Phosphors 2 Polarized.
1 7M836 Animation & Rendering Examples / Virtual Reality Joran Jessurun
Team 19 Albert Chen, John Fedoronko Kevin Lake, Bill Marting, Jamie Zackavitch.
CHAPTER 17 - NEUTRON FOCUSSING LENSES 17:1. NEUTRON TRAJECTORY 17:2. THE PRISM DEFLECTION ANGLE 17:3. CONTRIBUTION TO THE Q RESOLUTION 17:4. CONTRIBUTION.
Spatiotemporal Information Processing No.3 3 components of Virtual Reality-2 Display System Kazuhiko HAMAMOTO Dept. of Information Media Technology, School.
The Dash consists of a pair of discrete and completely wireless stereo earphones.They will playback music through a Bluetooth connection or use the embedded.
Evaluating An Image How things look on the screen doesn’t always matter. A full resolution image from a 6 megapixel camera printed on 4” x 6” paper… each.
Microsoft® Small Basic
Geometric Optics. An object inside the focus casts a virtual image that is only focused by the eye.
LCD Screens ‘How it works?’. LCD ScreensOutput devices LCD Screens Liquid crystal display (LCD) screens are visual display units. An LCD is made up of.
Thermal Cameras II September 18 th, 2015 Carlos Vergel-Infante.
The Mixed Reality Lab at The Institute for Creative Technologies David M. Krum, Ph.D. Workshop on Academic Computing 2015 The work depicted here was sponsored.
OCULUS RIFT SCOTT BERTRAND. OCULUS CREATOR PALMER LUCKEY IS THE INVENTOR OF THE OCULUS RIFT AND ORIGINAL FOUNDER OF OCULUS VR HE WANTED TO MAKE A NEW.
1 Using layers NOTES. 2 Open Adobe Photoshop Elements. Select a size of A4. Create 5 new layers by selecting layer > new. Do this action five times. Click.
1 Using layers NOTES. 2 Open Adobe Photoshop Elements. Select a size of A4. Create 5 new layers by selecting layer > new. Do this action five times. Click.
Virtual Reality RPG Brent Mitchell Tyler Yoder Fall 2014 – Spring 2015.
The Circle Charlie Haffey Norwood Elementary Science.
Projections and Perspectives Dr Nicolas Holzschuch University of Cape Town Modified by Longin Jan Latecki.
2D/3D VIRTUAL ENVIRONMENT IN GAME DESIGN DMST RAJESH KONERU( ) GAME DESIGN AND THEORY -SOFTWARE ENGINEERING INSTRUCTOR: ANNE HENRY.
{ Virtual Reality Matthew Benjamin DMS 110.  Virtual Reality is the use of computer technology to create the effect of an interactive three-dimensional.
Immersive Rendering. General Idea ► Head pose determines eye position  Why not track the eyes? ► Eye position determines perspective point ► Eye properties.
Definition Players & Hardware Use Cases Expert Opinions The Magical Unicorn Paradigm CS 150 – Technology Presentation - Virtual Reality
GOTHIC ANIMATION: CAMERA SHOT TYPES  To further develop knowledge of film language  To recognise and analyse shot types Key Words Media language Audience.
Title; To determine the purity of benzoic acid crystals by melting point determination.
WHITEBOARD PRACTICE FINDING THE MISSING ANGLE IN AN ANGLE PAIR.
ME 142 ENGINEERING DRAWING & GRAPHICS (PROJECTION METHOD)
Technology for Aging Society Prabhas Chongstitvatana Chulalongkorn University.
Audio Visual Technology PART 1. Purpose Of Lesson Part 1 We will discuss the different types of visual screens that have been available in the past and.
Geometry Day 13 Thu. March 17 / Mon. March 21 Angles of Elevation and Depression.
GEOMETRY HELP Draw all lines of symmetry for an isosceles trapezoid. Draw an isosceles trapezoid. Then draw any lines that divide the isosceles trapezoid.
VR Appendix 1 Oculus rift dk2 歐陽明 教授 Ming Ouhyoung.
SOHCAHTOA Problems Trigonometry. SOHCAHTOA Problems 1.The diagram shows a lighthouse on top of a cliff. A ship at sea is 97 metres from the foot of the.
Speaker: Yi-Ching Huang 黃怡菁 Advisor: Prof. Han-Ping D. Shieh( 謝漢萍教授 ) Prof. Yi-Pai Huang( 黃乙白教授 ) Institute of Electro-Optical Engineering, National Chiao.
Pictorial Oblique Drawing By B. Cowan & R. Cash. Cavalier Projection Cabinet Projection Receding Lines are half size or less.
VR Hardware Overview Charlotte VR Meetup
2012 Excellence in Airport Marketing and Communications Awards
Compass Rose
Camera Shots, Movements & Angles
Reviewing Parts Orders
Chapter 7 Section 1.
Welcome To Mellcrest Ltd
' d' :- '" L I _ I r 1.
Right Triangle Trigonometry
Unit 7a Review Math 2 Honors.
Find sin 2x, cos 2x, and tan 2x from the given information: {image} Select the correct answer:
Rotation On Cartesian grid.
Warm-up Solve for x. Solve for Ө..
The Week is Almost Half Way Over! Do Now:
Association for Computing Machinery at Southeast Missouri State University VIRTUAL REALITY By Stephen Sladek.
Geometry 2 Level 1.
Types of Angles Wednesday, 10 April 2019.
Monday Top half What is the approximate area of the circular screen on the speaker shown below? 62.8 cm cm cm2 1,256.6 cm2 Look at the drawing.
Geometry Mini-Lesson Tuesday, May 14, 2019 Tony is drawing a regular polygon. He has drawn two of the sides with an interior angle of 120°, as shown below.
Finding unknown angles of triangles
Elevation and Depression زوايا الأرتفاع والانخفاض
Types of Angles Sunday, 21 July 2019.
Monday Top half Choose the expression that is not an equivalent form of the algebraic expression. 7a   7a +0 5a + 2a 4a + 3a -4a + 3a b + 2b 2b2 2b + b.
Projections and Perspectives
PRODUCT QUALITY PLANNING CYCLE
Presentation transcript:

Developing VR Experiences with the Oculus Rift Tom Forsyth GDC March 2014

Palmer Luckey & John Carmack “homebrew” prototype at E Oculus VR founded mid 2012 Successful Kickstarter campaign Sept 2012 First 10k dev kits shipped March ,000 DK1 dev kits shipped 70,000 developers on Oculus dev portal 50+ top-tier show awards, best of CES 2013, E3 2013, CES

The Rift Technology Dev Kit 2 Based on Crystal Cove prototype shown at C.E.S. 1920x1080 OLED screen, half per eye Wide-angle circular lenses, 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

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 Topics 4

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 Be kind to your players 5

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” Be kind to your players 6

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 rating Be kind to your players 7

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

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 Be kind to your players 9

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 a learned skill There can be negative feedback: people get less tolerant with exposure Be kind to your players 10

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 a learned skill 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 Be kind to your players 11

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

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) Be kind to your players 13

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” Be kind to your players 14

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” Be kind to your players 15 12

Vestibulo-Optical Reflex 16

Vestibulo-Optical Reflex 17 OMGWTH???

Vestibulo-Optical Reflex 18 Semi-circular canals in the ears

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

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

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

VOR gain 22 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

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 23

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!) VOR gain 24

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 Preserving VOR gain 25

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…” Preserving VOR gain 26

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 Preserving VOR gain 27 19

IPD and the neck 28

IPD and the neck 29 IPD – Inter-Pupillary Distance That’s all I need, right?

IPD and the neck 30 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

IPD and the neck 31 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

IPD and the neck 32 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

IPD and the neck 33 SDK reports pos & orn of center eye

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

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

IPD and the neck 36 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

IPD and the neck 37 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…

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

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

Changing World Scale 40

Changing World Scale 41 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

How tall is the player? 42 Player profile has their actual height SDK calculates eye-height-off-ground 5’3” Real world

How tall is the player? 43 Virtual world 5’3” Real world 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

How tall is the player? 44 Virtual world 5’3” Real world 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 significantly taller

How tall 45 is the player? 5’3” Real world

How tall 46 is the player? 8’6” 5’3” Real world

47 8’6” How tall is the player? 5’3” Real world Virtual world Move the player’s eyes to match the height of the character

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 How tall is the player? 48 31

49 5’11” Perceived World Size – Floor-Dragging 5’3” Real world Virtual world This seems fine, right? But the real-world player isn’t standing up

50 5’11” Perceived World Size – Floor-Dragging Real world Virtual world 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 4’0”

51 4’6” Perceived World Size – Floor-Dragging 4’0” Real world Virtual world 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!

52 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

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

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

55 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

56 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

57 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?

58 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

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 Transition animations 59

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 Transition animations 60

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 Transition animations 61

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: 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 Transition animations 62

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: use a dissolve or fade-through-black Option: show your avatar doing the action Be careful of the 1 st to 3 rd person transition Try a ghostly/transparent avatar Transition animations 63 40

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 Animated avatars 64

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 Animated avatars 65

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! Animated avatars 66

Solution: 67

Solution: 68

Meathook avatars 69

Play animation on the avatar Meathook avatars 70

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

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 Meathook avatars 72

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 Meathook avatars 73

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 Meathook avatars 74

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! Meathook avatars

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 Maintaining framerate 76

Twice as many eyes, so twice as many calls But 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 Maintaining framerate – draw calls 77

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 Maintaining framerate – fill rate 78 51

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 Lessons learned 79

Further reading, search for “Oculus VR Best Practices Guide”