Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Google VR SDK 101

Google VR SDK 101

Describe how to use Google VR SDK to display 360 images and videos in 3 mins.

Avatar for Samuel Huang

Samuel Huang

October 12, 2017

More Decks by Samuel Huang

Other Decks in Programming

Transcript

  1. Agenda 1. Support Platform / SDK 2. Requirement 3. Image

    / Video Format 4. Show 360 Image 5. Show 360 Video 2
  2. Supported VR platform Cardboard Almost any smartphone on Android or

    iOS Daydream Pixel, Pixel XL, Galaxy S8, ZenFone AR, etc. Daydream ready phone 3
  3. Requirements Hardware • Daydream: Daydream-ready phone and a Daydream View

    • Cardboard: Android device running Android 4.4 'KitKat' (API 19) or higher and a Cardboard viewer Software • Android Studio version 2.3.3 or higher • Android SDK 7.1.1 'Nougat' (API 25) or higher • Google VR SDK for Android version 1.80.0 or higher 5
  4. Image Specifications • png, jpeg, or gif. recommend use jpeg

    for improved compression. • Image dimensions should be powers of two (e.g. 2048 or 4096). • Mono images should be 2:1 aspect ratio (e.g. 4096 x 2048). • Stereo images should be 1:1 aspect ratio (e.g. 4096 x 4096). • Image need to be equirectangular format. 7
  5. Video specifications • mp4s encoded with h264. • Mono videos

    should be 2:1 aspect ratio. • Stereo videos should be 1:1 aspect ratio. • For maximum compatibility and quality.Provide both a monoscopic 1920x1080 video and a stereo video at 2048x2048 or higher. 9
  6. How to Use def vrVersion = "1.80.0" dependencies { compile

    'com.android.support:appcompat-v7:26.0.0' compile 'com.android.support:design:26.0.0' compile "com.google.vr:sdk-base:$vrVersion" compile "com.google.vr:sdk-audio:$vrVersion" compile "com.google.vr:sdk-common:$vrVersion" compile "com.google.vr:sdk-commonwidget:$vrVersion" compile "com.google.vr:sdk-panowidget:$vrVersion" compile "com.google.vr:sdk-videowidget:$vrVersion" } 12
  7. VrPanoramaView Since the image is large we load it asynchronously.

    (AsyncTask, RxJava, etc.) Load image from: 1. asset 2. file system (png, jpeg, gif) 3. URL 4. anything can convert to Bitmap 13 vrPanoramaView.loadImageFromBitmap(bitmap, viewOptions);
  8. VrPanoramaView.Options • TYPE_MONO single equirectangular panorama • TYPE_STEREO_OVER_UNDER two vertically-stacked

    equirectangular panoramaspanoramas 14 vrPanoramaView.loadImageFromBitmap(bitmap, viewOptions);
  9. VrVideoView Load video form: 1. asset 2. file system (mp4,

    webm, ogg, aac.) 3. MPEG-DASH format (Dynamic Adaptive Streaming over HTTP wiki) 4. HTTP Live Streaming (HLS wiki) format (ts, m3u8) 17 vrVideoView.loadVideoFromAsset(filename, videoOptions); vrVideoView.loadVideo(uri, videoOptions);
  10. VrVideoView.Options inputFormat • FORMAT_DEFAULT - In a standalone, non-streaming format

    using container formats such as mp4, webm, ogg, aac. • FORMAT_DASH - MPEG-DASH format. (a kind of adaptive bitrate streaming) • FORMAT_HLS - HTTP Live Streaming (HLS) format. inputType • TYPE_MONO - single equirectangular panorama. • TYPE_STEREO_OVER_UNDER - two vertically-stacked equirectangular panoramas. 18
  11. View Lifecycle @Override public void onPause() { super.onPause(); panoWidgetView.pauseRendering(); videoWidgetView.pauseRendering();

    } @Override public void onResume() { super.onResume(); panoWidgetView.resumeRendering(); videoWidgetView.resumeRendering(); } @Override public void onDestroy() { super.onDestroy(); panoWidgetView.shutdown(); videoWidgetView.shutdown(); } 20
  12. Reference Google VR https://developers.google.com/vr Google VR for Android https://developers.google.com/vr/android VR

    View sample code https://developers.google.com/vr/android/samples/vrview googlevr/gvr-android-sdk https://github.com/googlevr/gvr-android-sdk Google Codelabs #vr https://codelabs.developers.google.com/?cat=Virtual+Reality 21