?
Hololens開發環境
Hololens也是屬于Win10通用應用家族的一員。對于Hololens的開發毋庸置疑是Win10的開發,大家從開發環境上可以看出要裝Win10的SDK,從開發工具上來說推薦大家使用新一代的集成編譯環境Visual Studio 2017。
?
當然你需要去購買Hololens設備。不管有沒有設備,都要向大家推薦安裝Hololens的模擬器。對于第三方的開發插件來說,我們是推薦大家使用Unity。從5.5版本開始,Unity已經把Hololens列入到正式版本當中。
?
除了Unity以外還可以安裝Vuforia。Vuforia從6.1版本開始支持Hololens平臺。大家如果希望在Hololens上實現手機AR的功能,大家可以直接使用Vuforia6.1的版本來開發。
使用Hololens開發大概會遇到哪些問題?它的開發包括了哪些部分?
一般來說一個Hololens的程序會包含材質、模型、貼圖、腳本等。一個3D的圖形程序不外乎也是這樣幾個部分,這跟普通的3D程序沒有什么區別。
?
![HoloLens 2啟動界面](/sites/default/files/inline-images/HoloLens%202%E5%90%AF%E5%8A%A8%E7%95%8C%E9%9D%A2.gif)
?
因為Hololens設備的特殊性,有六樣東西是需要大家做特殊的處理的,前面三個是跟Hololens獨特的輸入相關的。在Hololens的應用程序中需要去處理凝視操作、手勢操作、語音輸入。另外三個是跟空間感知相關的,你需要去識別空間錨標的位置、去處理空間映射、空間聲音。
?
這六部分是Hololens程序跟其他程序所不同的部分。中間這六塊內容是HoloToolkit。這是微軟為了方便大家開發Hololens應用而開源的Unity插件。大家可以到微軟官方的開源網址上找到并且下載下來。可以直接使用HoloToolkit來開發HoloLens應用。
?
重點說一下用Unity開發Hololens。開發的過程和開發3D應用區別不是太大,需要注意的是有一些具體設置。
?
![Unity質量設置](/sites/default/files/inline-images/Unity%E8%B4%A8%E9%87%8F%E8%AE%BE%E7%BD%AE.png)
?
近裁面是0.85,為什么要做這樣的設計呢?普通的是0.3米,Hololens推薦大家是設置為0.85。原因是由于Hololens有一個最基本的動作,Airtap。大家可以看一下手臂抬起來從肩到前方大約就是0.85的長度,所以建議不要把畫面呈現在手指的近處,這樣看上去效果不是太好。
?
Hololens是一個手機性能設備,渲染能力不是太強,所以在Unity里面建議大家把工程質量選項目設置成最快。還需要設置Win10的Capability選項。上方是構建選項,這跟普通的Windows 10的選項是一樣的。下方有一個叫UWP Build Type,在這里推薦大家使用D3D,一般來說Hololens里面不會整合Windows 10的控件,所以大家直接選D3D,保證它的渲染效果是最好。
?
因為我接觸Hololens的開發者比較多,所以大家對Hololens的開發提出過不少問題,其中比較尖銳的就兩個問題。
?
第一個問題是性能問題,也就是性能不足的問題,Hololens不足以支撐非常復雜的3D圖形的渲染,這里給大家提供一個叫Simplygon的軟件。
?
![Unity導出設置](/sites/default/files/inline-images/Unity%E5%AF%BC%E5%87%BA%E8%AE%BE%E7%BD%AE.png)
?
這個工具最主要的功能是能夠幫你自動地生成LOD的模型以及做材質的整合。而且它不管是虛幻還是Unity都整合的非常好。如果你不喜歡它內制的一些設定,它也提供了非常豐富的API給大家做定制。
?
使用Simplygon有兩種方式,一種是到官網上下載,另一種是直接到Unity的插件商店里面搜Simplygon下載就可以了。
?
第二個問題是定位漂移的問題。Hololens是通過激光束定位的,所以它有時候會受光線的影響,光線不同的話,放的空間的錨標在位置上會有偏移。
?
如何解決物體在Hololens里面會產生漂移的問題呢?大家可以發揮一下Vuforia的功能。如果我要定位某項物體的話,可以在實物的物品上放一些非常簡單的特殊圖片,利用Vuforia這個工具,在Hololens里掃描特別的圖片以后,通過Vuforia可以把物體非常好地定位在原來的地方,避免物體在Hololens里面產生漂移的狀態。
?
流程是這樣,第一把Vuforia和Hololens的主場景進行關聯。下面有一個配置選項。Vuforia從6.1版本開始有專門針對Hololens的配置,所以在這邊選擇Hololens,就做這樣兩步就OK了,最后把Extended Tracking勾選一下,選的作用是可以把Vuforia里面對物體定位的三維坐標數據和Hololens的空間坐標系數據自動關聯起來。