天天看點

Google VR技術大揭秘VRGoogle VR for AndroidDemo

虛拟現實(virtual reality)技術是一種可以建立和體驗虛拟世界的計算機仿真系統,它利用計算機生成一種模拟環境,是一種多源資訊融合的、互動式的三維動态視景和實體行為的系統仿真, 使使用者沉浸到該環境中。

<a href="https://vr.google.com/">google vr</a>

<a href="https://www.oculus.com/">oculus</a>

<a href="https://www.vive.com/cn/">htc vivi</a>

google vr sdk同時支援daydream和cardboard。 包含了一些用于建立app的簡單api和支援daydream手機、daydream控制器的複雜api。同時涵蓋了android、ios、unity三大平台。

sdk位址:

在使用之前,我們先運作下官網的項目。導入gvr-android-sdk到android studio, 同步的過程中需要下載下傳很多庫是以會比較耗時,另外可能出現build失敗的情況,這時可以嘗試使用本地的gradle來編譯。

gradle版本最好為最新版本。

Google VR技術大揭秘VRGoogle VR for AndroidDemo

項目展示了印加文明遺迹馬丘比丘的全景圖(panorama):

Google VR技術大揭秘VRGoogle VR for AndroidDemo

在真機上運作時,會有一個cardboard選項。點選上圖紅色框中的按鈕即可進入cardboard模式。

Google VR技術大揭秘VRGoogle VR for AndroidDemo

demo代碼的主要邏輯就是加載一張全景圖放入vrpanoramaview中。

全景圖檔andes是由兩張圖檔組成,上面一張是給左眼看,下面一張是給右眼看。

Google VR技術大揭秘VRGoogle VR for AndroidDemo

demo的聲音的實作是加載assets目錄下的congo.mp4視訊到vrvideoview中。

congo.mp4的視訊内容也是分為上下部分,上面給左眼看,下面給右眼看。

treasurehunt展示了一個簡單到離譜的尋寶遊戲,當vr世界中矩形變成金黃色時,點選手機螢幕或者使用daydream的控制器,即可完成尋寶。遊戲還伴有音效。

Google VR技術大揭秘VRGoogle VR for AndroidDemo

接收daydream控制器輸入示例

使用asynchronous reprojection播放視訊示例

由于全景圖占記憶體較大,當加載多張全景圖時可能存在記憶體溢出的情況,是以這裡開啟largeheap。

Google VR技術大揭秘VRGoogle VR for AndroidDemo

本demo實作一個全景圖控制顯示的效果。這裡主要示範下vrpanoramaview控件的使用。

vr view允許開發者在網站或app中嵌入360度全景多媒體檔案(圖檔和視訊)。這個技術主要是提供給傳統的開發者,可以通過在app中添加動态内容來提升使用者體驗。比如旅行或房地産類型的app,可以讓使用者足不出戶就體驗到虛拟場景。vr view同時支援web和native app。

vr view同時支援單聲道和立體聲的圖檔和視訊,但是圖檔和視訊的存儲格式必須為equirectangular-panoramic格式,這是一種常見的攝像頭尺寸支援的格式。

vr view是用戶端的顯示技術,那麼我們怎麼去拍攝符合vr view要求的内容呢?

1,cg 拍攝

vr view的圖檔不僅僅限制在真實世界中拍攝。cgi(計算機合成圖像)可以為所有的東西生成360度全景照片和視訊,最流行拍攝解決方案如下:

<a href="http://www.andrewhazelden.com/blog/2012/04/domemaster3d-stereoscopic-shader-for-autodesk-maya/">domemaster3d for maya</a>

<a href="https://developers.google.com/cardboard/jump/rendering-ods-content.pdf">rendering omnidirectional stereo content</a>

下面用僞代碼展示如何用vrpanoramaview和vrvideoview展示360度圖檔和視訊。