HoloLens和沉浸式頭戴設備在開發上的異同點

之前簡單介紹了微軟HoloLens混合現實應用開發的開發環境、所需配置、應用的發布等,下面對于均屬于混合現實設備的HoloLens以及沉浸式頭戴設備二者在開發上的異同點做個簡單的比較:

相同點:

首先,由于兩個產品都歸類于Windows 10 UWP MR的Device Family,所以二者的應用在UWP支持上是差不多的。二者都和普通的UWP應用有一樣的生命周期,都支持UWP的一些特點,比如動態磁貼,當然也同時對于一些UWP API都不支持,比如Share Contract等;

其次,二者對于混合現實的特別功能,比如視線(Gaze)、語音(Voice)空間映射(Spatial Mapping)、空間坐標(Spatial Coordinate)和立體聲效(Spatial Sound)都是支持的,而且微軟確保二者使用的API都一樣;

最后一點是,即使二者都可以支持2D View的應用,但二者都以3D圖形應用為主,使用相同的開發中間件(比如Unity),相同的優化理念(比如提高程序的幀率、降低DrawCall數)和優化工具,評價應用的好壞的標準類似。最關鍵的是如此造就了二者對于開發團隊的配置要求基本是一樣的,一個完善的混合現實開發團隊都需要有邏輯程序、圖形程序、場景美術、特效美術、音樂、策劃等。

不同點:

雖然HoloLens和Immersive Headset屬于同一個設備家族,但畢竟是兩類設備。設備的差異性勢必造成了開發的差異性,這種差異性在微軟開發官網上體現地淋漓盡致。大家可以在很多技術文檔里看到,官方在講一個問題的時候,都會列一張表格,一邊是HoloLens,另外一邊是Immersive Headset,把二者做比較。比如開發環境,比如參照坐標系。此處筆者總結了三個主要的不同點。

1.設備性能不同

HoloLens可以看成是一臺能獨立運算的手機,而Immersive Headset可以看成是依靠外部PC運算的另外一臺顯示器。也就是說HoloLens開發類似于手機移動應用的開發,而Immersive Headset的開發相當于桌面應用的開發。這種的差距會在很多方面表現出不同,比如在美術資源的使用以及優化要求, Immersive Headset對比HoloLens會相對高一些。兩者優化的方法也會不同,比如 HoloLens 不推薦使用動態光,而Immersive Headset沒有這個限制。從另外一個方面來看,HoloLens雖然性能還比不上高端筆記本,但它畢竟是專用設備,而且每一臺HoloLens的性能都是一樣的。這樣當大家都了解設備性能以后反而比較容易開發出好的應用,而Immersive Headset使用PC,這是通用設備。每一臺PC的性能都是不同的,這樣會造成同一款應用在不同機器上運行的效果不同,這樣對于開發團隊來說無疑增加了優化和測試的難度。

2.交互方式

HoloLens強調自然交互,也就是用手勢、語音來完成大部分的操作。這樣不僅要求應用使用支持手勢和語音的API,更重要的是從用戶體驗角度就要對這二種輸入做更好的設計,比如讓菜單更大更容易被選中,把大部分復雜操作都簡化為點擊操作等。Immersive Headset 更強調用官方定制的motion controller來操作,同樣不僅需要應用對于此設備有一個很好的支持和適配,更重要的是要求能去設計一些發揮motion controller相對精準的操作體驗,比如開槍、拾取動作等。

3.設備的定位

HoloLens作為混合現實設備,現實場景就是背景。這樣在開發中我們就不能使用天空盒,并且可能需要加入場景掃描模塊來確保現實場景變化后的更新,加入穩定面來處理圖像漂移問題,甚至可能還需要使用類似于Vuforia這樣的SDK來實現和發揮AR的功能。而Immersive Headset更偏向于VR,它的背景就是虛擬場景。開發Immersive Headset應用需要考慮的是沉浸感,比如可以讓近裁面更近一些。當然更需要使用各種手段來降低眩暈,確保用戶能較長時間沉浸在應用里。

總而言之,此二類設備的開發在整體上是類似的,而在具體開發的細節上又是截然不同的。