1. 程式人生 > >Cardboard虛擬現實開發初步(一)

Cardboard虛擬現實開發初步(一)

sce hot tracking 發的 tle motion 減少 app ide

Google Cardboard 虛擬現實眼鏡開發初步(一)

虛擬現實技術簡單介紹

不得不說這幾年虛擬現實技術逐漸火熱,伴隨著虛擬現實設備的價格迅速平民化,越來越多的虛擬現實設備來到了我們眼前,也因此虛擬現實方面的開發離我們也越來越近。

這幾年迅速崛起的Oculus,其成功就在於拉近了虛擬現實與群眾的距離。把原本價格高不可攀的虛擬現實設備放到了我們能夠觸手可及的位置。Oculus的技術開辟了全新的體驗和可能性。不僅僅在遊戲領域,還在生活、教育、醫療等諸多領域擁有廣闊的想象空間,Facebook在2014年7月宣布以20億美元的價格收購Oculus。

據說Oculus的逼真程度是非常之高的,和國內眼下比較easy接觸到的魔鏡一類效果差距是非常大的,Oculus 官方宣稱他具有110 度的視角,而且帶有頭部姿態傳感器,Oculus通過不斷地優化大大減少了頭痛、惡心感,而且利用全位置跟蹤功能和高分辨率的顯示屏,提供了更加逼真的感受。

Oculus Rift一些早期版本號導致使用者出現惡心或神誌不清的狀況,但最新的“Crescent Bay”推出之後,這樣的情況非常少出現了。

造成頭痛、惡心感的主要原因是延遲

Oculus團隊內部有一個詞叫Motion-to-photons latency。意思是指從玩家運動頭部到在屏幕上看到新圖像為止的一個周期裏所產生的延遲時長總和,Oculus的任務就是盡可能地削減整個流程產生的延遲時長,來消除惡心感。

近期PewDiePie首次將Oculus Rift頭戴式顯示器和能夠在3D空間內感知手勢動作的Leap Motion體感控制器組合在一起,實現了當用戶移動頭部並全然沈浸在3D虛擬環境中時能夠看見自己的雙手。

技術分享

技術分享

所以不得不說Oculus是一款非常酷的產品。

除了Oculus外。其它非常多虛擬現實設備也在發展其中,如:

  • HTC的Vive VR

  • 三星的Gear VR。Gear VR的硬件制造者是三星,但其虛擬技術的提供者是Oculus。
    Gear VR能夠提供全然虛擬現實的體驗。

    但它使用三星智能手機取代計算機來驅動顯示器。

還有增強現實領域的微軟的HoloLens,總體表現令人驚艷。

技術分享

最後介紹Google Cardboard,我們的虛擬現實眼鏡開發新手教程便是基於Cardboard SDK for Unity

於北京時間2015年5月29日淩晨0:30在美國舊金山舉辦的2015谷歌I/O開發人員大會上。素來以大方著稱的谷歌並沒有像以往那樣大派禮物。除了三星或者LG智能手表的二選一外,開發人員還能夠領到一個小小的黃色紙板盒Cardboard。

只是,這個看起來非常寒磣的再生紙板盒卻是I/O大會上最令人驚喜的產品,這就是谷歌推出的便宜3D眼鏡。

技術分享

技術分享

Cardboard簡單介紹

Cardboard最初是谷歌法國巴黎部門的兩位project師大衛·科茲(David Coz)和達米安·亨利(Damien Henry)的創意。他們利用谷歌“20%時間”規定,花了6個月的時間。打造出來這個實驗項目,意在將智能手機變成一個虛擬現實的原型設備。

Cardboard紙盒內包含了紙板、雙凸透鏡、磁石、魔力貼、橡皮筋以及NFC貼等部件。依照紙盒上面的說明,幾分鐘內就組裝出一個看起來非常簡陋的玩具眼鏡。凸透鏡的前部留了一個放手機的空間,而半圓形的凹槽正好能夠把臉和鼻子埋進去。

Cardboard僅僅是一副簡單的3D眼鏡。但這個眼鏡加上智能手機就能夠組成一個虛擬現實(VR)設備。

要使用Cardboard,用戶還須要在Google Play官網上搜索Cardboard應用。它能夠將手機裏的內容進行分屏顯示。兩僅僅眼睛看到的內容有視差。從而產生立體效果。通過使用手機攝像頭和內置的螺旋儀。在移動頭部時能讓眼前顯示的內容也會產生對應變化。

應用程序能夠讓用戶在虛擬現實的情景下觀看YouTube、谷歌街景或谷歌地球。

Cardboard原理

CardBoard的虛擬現實效果是由一款CardBoard與一部安卓手機結合而成。眼鏡鏡體通過透鏡加屏幕的原理,將虛像呈如今人的明視距離處實現了沈浸式的虛擬現實感,眼下國內虛擬現實眼鏡(如暴風魔鏡等)大都是這個原理,僅僅只是做了仔細的包裝,使得佩戴更加舒適,以下為其原理圖:

技術分享

而屏幕即為一部安卓系統的手機,手機的分辨率與像素密度越大顯示效果越好,因為採用了透鏡放大與分屏顯示的原理,假設分辨率較低,顆粒感會比較嚴重。

手機屏幕上須要分屏顯示虛擬環境,開發人員還須要調用手機內部陀螺儀等傳感器進行視角轉變。這一部分的開發無疑有非常多選擇,使用純Android的SurfaceView與openGL ES 開發可擴展性非常強。可是對應的復雜度比較高。導入3D模型等都須要手寫代碼。亦或者使用3D引擎如Unity3D等進行開發,適合開發遊戲。復雜性較低,模擬左右雙眼僅僅須要兩個攝像機就能夠搞定,可是開發復雜應用又會力不從心。總之在開發前要依據項目進行選擇開發的方式。

因為Unity引擎功能強大。基本上能適應大部分需求,而且開發便利。資料非常全,最關鍵的是Google提供了一個Cardboard SDK for Unity,能夠非常方便的進入虛擬現實的世界,所以我們毫無疑問要站在巨人的肩膀上開始旅行了。

本篇作為系列的開篇,主要是講了一些虛擬現實的技術和原理,下一篇就會帶領大家去看一看谷歌的Cardboard SDK for Unity,之後還會教大家非常easy的做出自己的第一個CardBoard應用,大家從淘寶上花不到10塊錢買一個Cardboard或者買個暴風魔鏡就能夠測試自己的虛擬現實應用了,敬請期待~

Cardboard虛擬現實開發初步(一)