Creare applicazioni VR
Giovanni Laquidara
Milano 10-11 Novembre 2017
@joaolaq
XR Engineer, Mobile developer
Giovanni Laquidara
www.laquysoft.com
@joaolaq@joaolaq
Mobile VR
@joaolaq@joaolaq
• Debut 2014
• Over 10 million shipped by Google (Q1 2017)
• Over 88 million totally
• 3DOF
• Apps in Google Play specific section
• Android and iOS!
https://vr.google.com/cardboard/
@joaolaq@joaolaq
• Debut 2016
• 250k in 2016 - 2.2 m in 2017 ( estimations )
• 3DOF + 3DOF Controller
• Compatible only with 9 Top Smartphones ( Pixel, S8, LG VR30…)
• Apps in Google Play specific section
• 1480 x 1280 per eye
https://vr.google.com/daydream/smartphonevr/
@joaolaq@joaolaq
• Debut 2015 ( each year an updated version )
• 4.51 million units in 2016, more then Oculus+PSVR+HTC Vive combined
• 3DOF + High performance sensors + 3DOF Controller
• Compatible only with Samsung Top Smartphones (S6 up to S8/Note8)
• Partnership with Oculus, dedicated App store
• 1480 x 1440 per eye
http://www.samsung.com/global/galaxy/gear-vr/
@joaolaq@joaolaq
Cardboard
@joaolaq@joaolaq
Unity
https://unity3d.com/
@joaolaq@joaolaq
Cardboard/Daydream Native support
in
Unity (5.6+)
@joaolaq@joaolaq
Download Unity 5.6+
Suggest Brand New 2017.1.1 but beware the bugs
@joaolaq@joaolaq
Download GoogleVR
https://github.com/googlevr/gvr-unity-sdk/releases
@joaolaq@joaolaq
Import Google VR and Assets
@joaolaq@joaolaq
Open Sample Scene
• Camera
• Reticle
@joaolaq@joaolaq
Input?
• GvrEventSystem
@joaolaq@joaolaq
Let’s build and run!
@joaolaq@joaolaq
And on S8 It Crash :)
Could not recreate VR window because GfxDevice is in an invalid state (device lost)
@joaolaq@joaolaq
Solution:
Put Daydream Support before Cardboard ;)
@joaolaq@joaolaq
• DayDream! We can use the same SDK
See the controller!
@joaolaq@joaolaq
Input
• GvrControllerPointer
@joaolaq@joaolaq
void Update() {
  // Example: get controller's current orientation:
  Quaternion ori = GvrController.Orientation;
  // If you want a vector that points in the direction of the controller
  // you can just multiply this quat by Vector3.forward:
  Vector3 vector = ori * Vector3.forward;
  // ...or you can just change the rotation of some entity on your scene
  // (e.g. the player's arm) to match the controller's orientation
  playerArmObject.transform.localRotation = ori;
  // Example: check if touchpad was just touched
  if (GvrController.TouchDown) {
    // Do something.
    // TouchDown is true for 1 frame after touchpad is touched.
  }
  // Example: check if app button was just released.
  if (GvrController.AppButtonUp) {
    // Do something.
    // AppButtonUp is true for 1 frame after touchpad is touched.
  }
  // Example: check the position of the user's finger on the touchpad
  if (GvrController.IsTouching) {
    Vector2 touchPos = GvrController.TouchPos;
    // Do something.
  }
}
GvrController API
@joaolaq@joaolaq
• Build and Run
@joaolaq@joaolaq
• DayDream Elements!
@joaolaq@joaolaq
• GearVR Native support in Unity
• https://developer.oculus.com/downloads/package/oculus-utilities-for-unity-5/
@joaolaq@joaolaq
• Oculus Framework
@joaolaq@joaolaq
• Camera = OVRCameraRig
@joaolaq@joaolaq
• Controller
@joaolaq@joaolaq
// old way
// if (Input.GetMouseButton(0)) // the finger has touched the HMD trackpad.
// {
// Vector2 touchPosition = Input.mousePosition;
// ProcessClickAtPosition(touchPosition);
// }
// new way
// The Gear VR Controller has a clickable trackpad, so we can differentiate between
// the finger simply touching the pad and actively depressing it.
// is player using a controller?
if (OVRInput.GetActiveController() == OVRInput.Controller.LTrackedRemote ||
OVRInput.GetActiveController() == OVRInput.Controller.RTrackedRemote)
{
// yes, are they touching the touchpad?
if (OVRInput.Get(OVRInput.Touch.PrimaryTouchpad))
{
// yes, let's require an actual click rather than just a touch.
if (OVRInput.Get(OVRInput.Button.PrimaryTouchpad))
{
// button is depressed, handle the touch.
Vector2 touchPosition = OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad);
ProcessControllerClickAtPosition(touchPosition);
}
}
}
else if (OVRInput.Get(OVRInput.Touch.PrimaryTouchpad)) // finger on HMD pad?
{
// not using controller, same behavior as before.
Vector2 touchPosition = OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad);
ProcessHMDClickAtPosition(touchPosition);
}
@joaolaq@joaolaq
Build and Run
@joaolaq@joaolaq
Build and Run
@joaolaq@joaolaq
https://dashboard.oculus.com/tools/osig-generator/
Put the downloaded file in your project directory
Project/Assets/Plugins/Android/assets/
@joaolaq@joaolaq
Put the downloaded file in your project directory
Project/Assets/Plugins/Android/assets/
Enable Developer Mode
1. Go to Settings > Application Manager
2. Select Gear VR Service
3. Select Manage Storage
4. Click on VR Service Version several times until the Developer Mode toggle shows up
5. Toggle Developer Mode
@joaolaq@joaolaq
Future HMDs - Daydream
@joaolaq@joaolaq
Future HMDs - Samsung
Windows Mixed Reality
@joaolaq@joaolaq
glaquidara@laquysoft.com www.laquysoft.com
https://goo.gl/e6Dt9Z
Un Cardboard in palio :)
estratto a sorte tra i partecipati al questionario:
Potete venire a trovarmi a
Codemotion Milano!


Talk:
Hello ARCore
Il 11 novembre, 11:30-12.10
Controlla l’email!
C'è una speciale promozione
per te!
CODEMOTION MILANO
10-11 NOVEMBRE 2017
http://milan2017.codemotionworld.com/
Ci vediamo a
Ricordati di controllare l’email!
☺

More Related Content

PPTX
Infamous Flamingos Interactive Single Handed Controller Design
PDF
Vrhig v1
PPTX
Basic VR Development Tutorial Integrating Oculus Rift and Razer Hydra
PPTX
Mobile VR, Programming, Rendering
PDF
Developing VR in Unity
PPTX
Vision Summit 16 - Tips and Tricks for VR Game Development
PDF
sdc-2016-gvrf-and-io_public
PDF
Building VR Applications For Google Cardboard
Infamous Flamingos Interactive Single Handed Controller Design
Vrhig v1
Basic VR Development Tutorial Integrating Oculus Rift and Razer Hydra
Mobile VR, Programming, Rendering
Developing VR in Unity
Vision Summit 16 - Tips and Tricks for VR Game Development
sdc-2016-gvrf-and-io_public
Building VR Applications For Google Cardboard

Similar to Vr webinar for Codemotion (20)

PDF
VR Workshop #3
PPTX
Oculus Rift DK2 + Leap Motion Tutorial
PDF
Virtual Reality: Learn to Maximize Present and Future Creative Possibilities!
PPTX
Introduction to OSVR - Apr 2015
PPTX
VR Devices and Methods of Development
PPTX
How to use oculus sdk in Unity
PDF
WebVR - MobileTechCon Berlin 2016
PDF
Build Immersive Worlds in Virtual Reality
PPTX
RTPVR Meetup February 2018
PDF
ssssss
PPTX
Introduction to DaydreamVR from DevFestDC 2017
PPTX
Eyes Wide Open - Amir Ebrahimi
PDF
[1C7] Developing with Oculus
PDF
OSVR presentation at Boston VR meetup Jul 15
PPTX
Unite Sydney - Xr Input Mapping
PPTX
Unity Basics and Mobile VR
PDF
Maze VR
PDF
FITC Spotlight VR: What You Need to Know About Using VR in Events
PDF
Immerge yourself in a new Reality
PDF
Immerge yourself in a new Reality - Alessandro Pozone - Codemotion Rome 2018
VR Workshop #3
Oculus Rift DK2 + Leap Motion Tutorial
Virtual Reality: Learn to Maximize Present and Future Creative Possibilities!
Introduction to OSVR - Apr 2015
VR Devices and Methods of Development
How to use oculus sdk in Unity
WebVR - MobileTechCon Berlin 2016
Build Immersive Worlds in Virtual Reality
RTPVR Meetup February 2018
ssssss
Introduction to DaydreamVR from DevFestDC 2017
Eyes Wide Open - Amir Ebrahimi
[1C7] Developing with Oculus
OSVR presentation at Boston VR meetup Jul 15
Unite Sydney - Xr Input Mapping
Unity Basics and Mobile VR
Maze VR
FITC Spotlight VR: What You Need to Know About Using VR in Events
Immerge yourself in a new Reality
Immerge yourself in a new Reality - Alessandro Pozone - Codemotion Rome 2018
Ad

Recently uploaded (20)

PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Architecture types and enterprise applications.pdf
PDF
August Patch Tuesday
PDF
Getting Started with Data Integration: FME Form 101
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
STKI Israel Market Study 2025 version august
PDF
Hybrid model detection and classification of lung cancer
PDF
Unlock new opportunities with location data.pdf
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Architecture types and enterprise applications.pdf
August Patch Tuesday
Getting Started with Data Integration: FME Form 101
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Getting started with AI Agents and Multi-Agent Systems
O2C Customer Invoices to Receipt V15A.pptx
Group 1 Presentation -Planning and Decision Making .pptx
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Zenith AI: Advanced Artificial Intelligence
sustainability-14-14877-v2.pddhzftheheeeee
STKI Israel Market Study 2025 version august
Hybrid model detection and classification of lung cancer
Unlock new opportunities with location data.pdf
A review of recent deep learning applications in wood surface defect identifi...
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Taming the Chaos: How to Turn Unstructured Data into Decisions
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Ad

Vr webinar for Codemotion