使用Hololens開發大概會遇到哪些問題?它的開發包括了哪些部分?

Jyadmin 提交于 周一, 12/09/2019 - 17:27

?

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啟動界面

?

因為Hololens設備的特殊性,有六樣東西是需要大家做特殊的處理的,前面三個是跟Hololens獨特的輸入相關的。在Hololens的應用程序中需要去處理凝視操作、手勢操作、語音輸入。另外三個是跟空間感知相關的,你需要去識別空間錨標的位置、去處理空間映射、空間聲音。

?

這六部分是Hololens程序跟其他程序所不同的部分。中間這六塊內容是HoloToolkit。這是微軟為了方便大家開發Hololens應用而開源的Unity插件。大家可以到微軟官方的開源網址上找到并且下載下來。可以直接使用HoloToolkit來開發HoloLens應用。

?

重點說一下用Unity開發Hololens。開發的過程和開發3D應用區別不是太大,需要注意的是有一些具體設置。

?

Unity質量設置

?

近裁面是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導出設置

?

這個工具最主要的功能是能夠幫你自動地生成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的空間坐標系數據自動關聯起來。