微軟HoloLens混合現實應用開發

關于開發環境

HoloLens的開發和沉浸式頭戴設備(Immersive Headset)的開發環境略有些不同。整體上后者對于環境的要求比前者更高一些,開發中間件的版本也更加新一些。比如,Windows 10版本:前者只要10586就可以了,后者需要16299――秋季創意者更新;Unity版本:后者需要2017.2,前者只要5.5。

關于所需配置的PC(注:HoloLens不需要配置PC)

支持沉浸式頭戴設備的PC分為二大類。普通混合現實PC是指能保證應用以60幀/秒的刷新率運行的PC配置,此類設備適合于運行2D為主,3D 面數不多的應用,比如360度視頻播放器;而超級混合現實PC是指能保證應用以90幀/秒的刷新率運行的PC配置,此類設備適合于對3D圖形渲染要求比較高的應用,比如3D VR游戲。

關于Windows Device Portal

HoloLens Device Portal這個功能極大地方便了我們去管理監控HoloLens。現在,在最新的Win10里面,微軟提供了類似的Windows Device Portal功能,即:窗口設備門戶,同樣允許用戶通過網絡或USB連接遠程配置和管理設備。它還提供了高級診斷工具,幫助開發者排除故障并查看Windows設備的實時性能。設備門戶其實是設備上的一個Web服務器,開發者可以從PC上的Web瀏覽器連接到該服務器。設備門戶不僅僅提供給HoloLens或者混合現實設備,Windows 10 UWP硬件家族都提供了Windows設備門戶,但功能和設置會根據設備的要求不同而有所不同。

關于Mixed Reality Portal

這是管理本機混合現實應用的門戶,已經是Windows 10的一個內置應用程序。除此之外,這個應用還可以檢查本地的PC配置能否符合運行混合現實應用的要求,甚至還提供了功能強大的模擬器,確保開發人員即使沒有混合現實的頭戴或者運動控制器仍然能夠進行混合現實應用的開發。

混合現實應用的開發

一個混合現實的應用和普通的UWP或者3D圖形應用大概有7個不同的地方,開發者需要對這7個部分進行特別的處理。包括4種特別的交互手段:視線(Gaze)、手勢(Gesture)、語音(Voice)和運動控制器(Motion Controller);還包括3種空間技術:空間映射(Spatial Mapping)、空間坐標(Spatial Coordinate)和立體聲效(Spatial Sound)。

Unity 對于這幾大模塊都有相當好的支持。除此之外,微軟官方還提供了功能強大的開源工具包――Mixed Reality Tool Kit(簡稱“MRTK”),用來加速開發者對于混合現實應用的開發。這個工具包是腳本和組件的集合,提供了大量現成的Script、Shader、UI甚至是Prefab,開發者可以直接用在自己的項目里,或供參考學習。對于每個功能點都有Test Case的Scene,開發者尋找取用十分方便。

下表總結了除Motion Controller之外6大模塊的Unity函數和MRTK的方法,供讀者參考:

運動控制器(Motion Controller)是和沉浸式頭戴設備配套的輸入設備,不能用于HoloLens。它相對于手勢的一個優點是控制器在空間中具有精確的位置,允許與數字對象進行細粒度的交互,所以雖然也可以使用Xbox One手柄、鍵盤鼠標,但運動控制器是用戶佩戴沉浸式頭戴設備在混合現實世界中采取行動的主要方式。運動控制器的開發有三種方法,分別是:傳統的Unity Input方法、中斷方法和輪詢方法。


程序做完后,除了消除Bug以外,對于3D圖形的程序,性能優化一直是一件很有必要同時又是很有難度的事情,不同項目優化的方法也不同。總體而言,對于一個程序我們必須先搞清楚性能瓶頸在哪里,是CPU負擔太重還是GPU負擔太重。因為針對CPU和GPU的優化策略往往是相抵觸,甚至是相反的。混合現實應用的性能優化方法和其它3D VR類的程序優化其實是差不多的,Unity官方優化VR程序的建議完全可以用在混合現實應用上。比如:使用LOD降低同屏多邊形的面數;使用Draw Call Batching來降低DC數;使用IL2CPP來提升整體程序的效率等。這方面還是很考驗程序員經驗的。

混合現實應用的發布

開發測試完成后,開發者就需要把應用發布到微軟Windows 10商城上。混合現實應用的發布和之前Windows 10通用應用的發布大同小異。都是在官網的開發者中心里,給需要發布的應用取一個獨一無二的名字,然后把本地工程和網站上的設置關聯起來,同步應用的顯示名,應用包的名字、發布者ID等信息。再編譯Master版本,創建AppX應用包。

記得應用包生成后,運行WACK程序(Windows App Certification Kit)對于應用包進行商店政策規范的檢測。檢測通過后,在開發者中心里創建一個發布(Submission),然后上傳應用包文件等待官方的審核。

在之后的應用信息設置里,有一些和普通UWP應用不一樣的地方,比如:Display Mode 要勾選 “This experience is designed for Windows Mixed Reality on” 選項中PC或者HoloLens的一項;System requirements 選項里要指定Windows Mixed Reality motion controllers 等外設。這些點請開發者注意閱讀相關官方文檔。