微軟HoloLens混合現(xiàn)實應用開發(fā)

關于開發(fā)環(huán)境

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

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

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

關于Windows Device Portal

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

關于Mixed Reality Portal

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

混合現(xiàn)實應用的開發(fā)

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

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

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

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


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

混合現(xiàn)實應用的發(fā)布

開發(fā)測試完成后,開發(fā)者就需要把應用發(fā)布到微軟Windows 10商城上?;旌犀F(xiàn)實應用的發(fā)布和之前Windows 10通用應用的發(fā)布大同小異。都是在官網(wǎng)的開發(fā)者中心里,給需要發(fā)布的應用取一個獨一無二的名字,然后把本地工程和網(wǎng)站上的設置關聯(lián)起來,同步應用的顯示名,應用包的名字、發(fā)布者ID等信息。再編譯Master版本,創(chuàng)建AppX應用包。

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

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