How to use oculus sdk in Unity

30

Transcript of How to use oculus sdk in Unity

Page 1: How to use oculus sdk in Unity

HOW TO INTEGRATEUSE OCULUS SDK IN UNITY

CONTENT SLIDEbull What is Oculus

bull Oculus SDK integration

bull APIs description

bull Oculus Basics

bull Oculus Games

bull QampA

WHAT IS OCULUS

Crescent Bay

Gear VR

CRESCENT BAY

bull 90hz Low Persistence refresh rate

bull 360-degree tracking

bull Integrated audio

GEAR VR

bull 1440p OLED Screen

bull 60hz refresh Rate

bull Working with Samsung

Galaxy Note4 and S6

bull Wireless

OCULUS SDK

WHERE OVR SOFTWARE STACK IS HEADING

wrapping layer for library(DLL) rarr

Changed to use DLL from

SDK 05x

OCULUS SDK

BUT NEED ONLY ONE UNITY PACKAGE FOR UNITY

HTTPSDEVELOPEROCULUSCOMDOWNLOADS

1Install oculus runtime

2Download unity package including SDK plugin

3Open project

4 Replace camera object with Oculus camera prefabs

5 Save signature file (Gear VR only)

6 Build and Run

OCULUS SDK INTEGRATION STEP

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 2: How to use oculus sdk in Unity

CONTENT SLIDEbull What is Oculus

bull Oculus SDK integration

bull APIs description

bull Oculus Basics

bull Oculus Games

bull QampA

WHAT IS OCULUS

Crescent Bay

Gear VR

CRESCENT BAY

bull 90hz Low Persistence refresh rate

bull 360-degree tracking

bull Integrated audio

GEAR VR

bull 1440p OLED Screen

bull 60hz refresh Rate

bull Working with Samsung

Galaxy Note4 and S6

bull Wireless

OCULUS SDK

WHERE OVR SOFTWARE STACK IS HEADING

wrapping layer for library(DLL) rarr

Changed to use DLL from

SDK 05x

OCULUS SDK

BUT NEED ONLY ONE UNITY PACKAGE FOR UNITY

HTTPSDEVELOPEROCULUSCOMDOWNLOADS

1Install oculus runtime

2Download unity package including SDK plugin

3Open project

4 Replace camera object with Oculus camera prefabs

5 Save signature file (Gear VR only)

6 Build and Run

OCULUS SDK INTEGRATION STEP

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 3: How to use oculus sdk in Unity

WHAT IS OCULUS

Crescent Bay

Gear VR

CRESCENT BAY

bull 90hz Low Persistence refresh rate

bull 360-degree tracking

bull Integrated audio

GEAR VR

bull 1440p OLED Screen

bull 60hz refresh Rate

bull Working with Samsung

Galaxy Note4 and S6

bull Wireless

OCULUS SDK

WHERE OVR SOFTWARE STACK IS HEADING

wrapping layer for library(DLL) rarr

Changed to use DLL from

SDK 05x

OCULUS SDK

BUT NEED ONLY ONE UNITY PACKAGE FOR UNITY

HTTPSDEVELOPEROCULUSCOMDOWNLOADS

1Install oculus runtime

2Download unity package including SDK plugin

3Open project

4 Replace camera object with Oculus camera prefabs

5 Save signature file (Gear VR only)

6 Build and Run

OCULUS SDK INTEGRATION STEP

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 4: How to use oculus sdk in Unity

CRESCENT BAY

bull 90hz Low Persistence refresh rate

bull 360-degree tracking

bull Integrated audio

GEAR VR

bull 1440p OLED Screen

bull 60hz refresh Rate

bull Working with Samsung

Galaxy Note4 and S6

bull Wireless

OCULUS SDK

WHERE OVR SOFTWARE STACK IS HEADING

wrapping layer for library(DLL) rarr

Changed to use DLL from

SDK 05x

OCULUS SDK

BUT NEED ONLY ONE UNITY PACKAGE FOR UNITY

HTTPSDEVELOPEROCULUSCOMDOWNLOADS

1Install oculus runtime

2Download unity package including SDK plugin

3Open project

4 Replace camera object with Oculus camera prefabs

5 Save signature file (Gear VR only)

6 Build and Run

OCULUS SDK INTEGRATION STEP

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 5: How to use oculus sdk in Unity

GEAR VR

bull 1440p OLED Screen

bull 60hz refresh Rate

bull Working with Samsung

Galaxy Note4 and S6

bull Wireless

OCULUS SDK

WHERE OVR SOFTWARE STACK IS HEADING

wrapping layer for library(DLL) rarr

Changed to use DLL from

SDK 05x

OCULUS SDK

BUT NEED ONLY ONE UNITY PACKAGE FOR UNITY

HTTPSDEVELOPEROCULUSCOMDOWNLOADS

1Install oculus runtime

2Download unity package including SDK plugin

3Open project

4 Replace camera object with Oculus camera prefabs

5 Save signature file (Gear VR only)

6 Build and Run

OCULUS SDK INTEGRATION STEP

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 6: How to use oculus sdk in Unity

OCULUS SDK

WHERE OVR SOFTWARE STACK IS HEADING

wrapping layer for library(DLL) rarr

Changed to use DLL from

SDK 05x

OCULUS SDK

BUT NEED ONLY ONE UNITY PACKAGE FOR UNITY

HTTPSDEVELOPEROCULUSCOMDOWNLOADS

1Install oculus runtime

2Download unity package including SDK plugin

3Open project

4 Replace camera object with Oculus camera prefabs

5 Save signature file (Gear VR only)

6 Build and Run

OCULUS SDK INTEGRATION STEP

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 7: How to use oculus sdk in Unity

OCULUS SDK

BUT NEED ONLY ONE UNITY PACKAGE FOR UNITY

HTTPSDEVELOPEROCULUSCOMDOWNLOADS

1Install oculus runtime

2Download unity package including SDK plugin

3Open project

4 Replace camera object with Oculus camera prefabs

5 Save signature file (Gear VR only)

6 Build and Run

OCULUS SDK INTEGRATION STEP

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 8: How to use oculus sdk in Unity

1Install oculus runtime

2Download unity package including SDK plugin

3Open project

4 Replace camera object with Oculus camera prefabs

5 Save signature file (Gear VR only)

6 Build and Run

OCULUS SDK INTEGRATION STEP

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 9: How to use oculus sdk in Unity

DOWNLOAD RUNTIME AND UNITY INTEGRATION PACKAGE HTTPSDEVELOPEROCULUSCOMDOWNLOADS

OCULUS SDK INTEGRATION BUILD

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 10: How to use oculus sdk in Unity

OCULUS SDK INTEGRATION BUILD

FIND OCULUS CAMERA PREFAB

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 11: How to use oculus sdk in Unity

REPLACE UNITYrsquoS ldquoMAIN CAMERArdquo WITH OCULUS CAMERA PREFAB

OCULUS SDK INTEGRATION BUILD

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 12: How to use oculus sdk in Unity

httpsdeveloperoculuscomtoolsosig

Signature File In order to access low-level device functions through APIs provided by our SDK

place the signature file in

ProjectAssetsPluginsAndroidassets

OCULUS SDK INTEGRATION STEP(GEARVR ONLY)

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 13: How to use oculus sdk in Unity

PROJECTEXE VS PROJECT_DIRECTTORIFTEXE

OCULUS SDK INTEGRATION BUILD

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 14: How to use oculus sdk in Unity

OvrCapics

C wrapper for LibOVR and it exposes all device functionality allowing you to query and

set capabilities for tracking rendering and more

OVRManagercs

Simplelegacy support for tracking and HMD status

OVRCameraRigcs

The camera rig and most settings Child OVRCameras do the rendering

OVRDisplaycs

HMD pose and rendering status of the HMD

OVRTrackercs

Infrared tracking camera pose frustum and status

OVRPlayerControllercs

VR-optimized CharacterController

OVRMainMenucs(OVRDebugInfocs)

Debug info heads-up display

Scripts for OVR

OCULUS SDK INTEGRATION

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 15: How to use oculus sdk in Unity

OCULUS SDK INTEGRATION

UnityEngineVR in Beta (from Unity 51) ndash Donrsquot need to import unity package anymore

class VRDevice

string family vendor

bool isPresent attached and working

string model HMD type

IntPtr GetNativePtr() low-level access

class HeadTracking

Vector3f GetEyePosition(int eye)

Quaternion GetEyeRotation(int eye)

class VRSettings

bool enabled use VR

float ipd inter-pupillary distance

VRDeviceType loadedDevice code path

bool mirrorMode preview on desktop

bool monoscopic same in both eyes

float renderScale pixel density

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 16: How to use oculus sdk in Unity

OCULUS BASICS PERFORMANCE

On CrescentBay must always hit 90 FPS

On Gear VR must always hit 60 FPS

Frame is the most important for comfortable

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 17: How to use oculus sdk in Unity

Optimize early and often for Android

Single-pass forward render

Bake ldquolighting reflection shadowsrdquo

50-100k vertices or triangles

50-100 batches

2xMSAA

Maximize texture compression mip mapping and

cache locality

Greedily maximize perf to save power

OCULUS BASIC OPTIMIZATION ON ANDROID

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 18: How to use oculus sdk in Unity

1 Go to your device Settings -gt Application manager -gt Gear VR Service

2 Tap on Manage storage

3 Tap the VR Service Version number six times

4 Wait for scan process to complete and you should now see the Developer

Mode toggle on this screen

OCULUS BASIC RUN WITHOUT GEAR VR

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 19: How to use oculus sdk in Unity

OCULUS BASICS INPUT OPTIONS

Mouse + keyboard

Limits movement

Player canrsquot see keyboard ndash difficult to use

Gamepads

Allows people to sit further from hard objects

Limited inputs amp axes

Touchpad

Swipe tap gestures

Motion-sensing ldquowandrdquo controllers

Razer Hydra WiiMote PS Move

Body-motion cameras

Leap Kinect SoftKinetic

Image sources Wikipedia Leap Motion

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 20: How to use oculus sdk in Unity

Input

USB

Game Engine Write Display

Pixel Switching

New Image

OCULUS BASICS LATENCY

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 21: How to use oculus sdk in Unity

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

133 ms

75 FPS

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 22: How to use oculus sdk in Unity

OCULUS BASICS TIMEWARP

Any other way to apply sensor before the end of the frame

TimeWarp ndash Projected rendering - Pioneered by John

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 23: How to use oculus sdk in Unity

OCULUS BASICS TIMEWARP

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 24: How to use oculus sdk in Unity

OCULUS GAMES

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 25: How to use oculus sdk in Unity

OCULUS GAMES

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 26: How to use oculus sdk in Unity

OCULUS GAMES

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 27: How to use oculus sdk in Unity

HOW TO SUBMIT GAMES TO OCULUS STORE

1 회사이름과함께오큘러스에드랍박스공유폴더신청(submissionsoculuscom)

2 오큘러스에서다음과같은경로의 드랍박스를공유해줌 - (Uploads_[YourCompanyName])

3 해당폴더내에다음과같은정보를담은폴더생성 ndash ApplicationName_SubmissionDate (ex VR_20140704)

4 해당폴더에사이닝된 APK 파일과앱정보파일(양식따로제공) 저장

4 해당폴더내에 Images 폴더생성및필요이미지저장( 각각의이미지는 2560 X 1440 PNG 파일이어야하고아래와같은용도로총 6장의이미지파일이필요 )

- Main Image (x1) 메인이미지로사용할사진- Gallery Images (x5) 피처드나 2D 스토어모드에서사용될이미지

5 submissionsoculuscom에자료업로드완료통보

6 심의

httpstaticoculuscomsubmissionsTemplateDocumentszip

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 28: How to use oculus sdk in Unity

Q amp A

hominleeoculuscom

httpswwwfacebookcomgroupsoculus4devs

Page 29: How to use oculus sdk in Unity