天天看點

《Unity虛拟現實開發實戰》——第1章,第3.1節虛拟現實裝置內建的軟體

本節書摘來自華章出版社《unity虛拟現實開發實戰》一書中的第3章,第3.1節虛拟現實裝置內建的軟體,作者[美] 喬納森·林諾維斯,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

**第3章

虛拟現實的建構和運作**

很好,非常酷,但是我的虛拟現實在哪裡?我要我的虛拟現實!

别急,孩子,馬上就有。

本章中,我們将建立一個可以建構并運作于虛拟現實頭盔顯示器之中的項目,然後會詳細讨論虛拟現實硬體技術的運作原理,将涉及下列話題:

虛拟現實裝置內建軟體的範圍。

為虛拟現實裝置安裝和建構一個項目。

用于虛拟現實技術運作原理的細節和定義術語。

本書中的項目不需要按順序實作,可以自由地跳章閱讀,因為後一章并不依賴于前一章。然而本章例外,請在閱讀餘下章節之前先實作memyselfeye預制件和clicker類。

3.1虛拟現實裝置內建的軟體

在深入讨論之前,我們先了解幾種将我們的unity項目內建進虛拟現實裝置的方式。一般來說,unity項目必須包含一個錄影機對象,用于渲染兩套立體視圖,在虛拟現實頭盔中為眼睛提供視圖。

用于虛拟現實硬體中內建程式的軟體範圍很廣,從内置的支援軟體和裝置特有的接口到不依賴于裝置和平台的軟體。

3.1.1unity對虛拟現實的内置支援

unity 從5.1開始,已經内置了對虛拟現實頭盔的支援。寫本書之時,它已經可以直接支援oculus rift和三星的gear vr(由oculus的軟體驅動),對其他裝置的支援也已經宣布了,其中包括索尼的playstation morpheus。你可以使用标準的錄影機元件,比如附加到main camera的和标準的人物角色資源預制件。當你建構的項目在player settings中開啟virtual reality supported時,unity會将立體錄影機視圖渲染并運作于頭盔顯示器上。

3.1.2裝置特有的sdk

如果unity沒有直接支援某款裝置,這個裝置商将有可能釋出一個unity插件包。使用裝置特有接口的一個好處是可以直接利用下層硬體的特性。

例如,steam valve和google就為vive和cardboard提供了裝置特有的sdk和unity包。如果你正在使用上述的其中一款裝置,那麼你很可能需要使用它的sdk和unity包。(寫本書之時,這些裝置未被unity内置的虛拟現實支援。)而對于oculus,unity 5.1中直接支援,提供了sdk工具包以調用其接口。

裝置特有的軟體鎖定其隻能建構到指定的裝置上,如果這對你來說是個問題,那麼你要麼寫點聰明的代碼,要麼用接下來幾條途徑替代。

3.1.3開源虛拟現實項目

使用osvr可以為特定的作業系統(比如windows、mac和linux)建構unity遊戲,并且可以讓使用者根據其使用的硬體來配置(下載下傳之後的)應用程式。寫本書之時,此項目還處于其早期階段,快速發展中且尚不适用于本書,但是我鼓勵你關注它的發展。

3.1.4webvr

webvr是一個javascript api,正在被內建進主流的網頁浏覽器。就像webgl(用于web的2d和3d圖形api)對虛拟現實渲染和硬體的支援。現在unity 5 已經引入了對webgl的建構支援,我相信webvr的支援也會随之而來,不是unity就是第三方開發者。

我們知道,浏覽器幾乎運作于任何平台。是以,如果你的遊戲的目标平台是webvr,那麼你不需要關心使用者的作業系統,更不必關心使用者使用的是什麼虛拟現實硬體了!總之,就是這個意思。新的技術,比如即将到來的webassembly,是一種新的用于web平台上的二進制格式,能夠幫助擷取你的硬體的最佳性能,并且能夠讓基于web的虛拟現實可行。

3.1.53d世界

有一些第三方的3d世界平台提供多使用者在共享虛拟空間中的社交體驗,你可以與其他玩家聊天,通過入口(portals)在不同房間中移動,甚至不需要成為專家就可以建構複雜的互動和遊戲。

舉個例子來說,vrchat讓你可以在unity中開發3d空間和虛拟角色,用vrchat的sdk導出,然後加載進vrchat,其他人就可以在社交虛拟現實體驗中通過網際網路分享實時。我們将在第10章繼續探究。