• Hololens開發(fā)環(huán)境搭建

    2017/7/31??????點(diǎn)擊:

    伴隨著數(shù)月的期待,終于拿到了預(yù)訂的HoloLens開發(fā)者版本套件。隨著VR/AR/MR技術(shù)的熱潮,國內(nèi)外均對它們的應(yīng)用與盈利前景持有積很的預(yù)期,這也直接導(dǎo)致了國內(nèi)外當(dāng)前投資VR/AR/MR技術(shù)的熱潮。無論是融資數(shù)十億美元的Magic Leap,還是Facebook、微軟等科技巨頭布局VR/AR市場,這股熱潮不僅出現(xiàn)在風(fēng)險(xiǎn)投資領(lǐng)域,還席卷了消費(fèi)者市場和智能硬件市場,這無疑引領(lǐng)了下一波互聯(lián)網(wǎng)產(chǎn)業(yè)的爆發(fā),而我們作為技術(shù)核心的開發(fā)者更不能落下。正如喬幫主所說:“Stay foolish,Stay Hungry”,今天我們就來了解下AR/MR技術(shù)的開發(fā)特性,本文以微軟出品的HoloLens為目標(biāo)設(shè)備。

    AR/MR是什么?

    VR大家都已經(jīng)很清楚了,VR即是虛擬現(xiàn)實(shí)技術(shù),這意味著沉浸式全虛擬的使用體驗(yàn)。全虛擬沉浸式的體驗(yàn)帶了獨(dú)特的視覺效果,但是由于遮蓋現(xiàn)實(shí)內(nèi)容,仍導(dǎo)致了頭暈、運(yùn)動(dòng)不友好等難以解決的問題。與之相對的則是AR/MR技術(shù),這意味虛擬世界與真實(shí)世界交織的視覺體驗(yàn)。從用戶使用體驗(yàn)來看,AR/MR無疑是更符合人類自然交互模式,代表了未來更偉大的發(fā)展方向。同時(shí)在筆者看來,由Magic Leap提出的MR(Mixed Reality)技術(shù)其本質(zhì)與AR(Augmented Reality)技術(shù)并無區(qū)別,微軟目前也在HoloLens文檔中大量使用MR技術(shù)的說法,故此本文將AR/MR技術(shù)視為一體。

    AR核心特性

    正如上面所說,AR具備與VR截然不同的視覺體驗(yàn),所以其開發(fā)體驗(yàn)也與VR區(qū)別較大,下面我們來一起探討HoloLens的部分核心開發(fā)特性。本文使用的開發(fā)環(huán)境為Unity HoloLens preview beta 14以及Unity Universal Windows Platform Runtime組件

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

    .安裝清單

    1.升級win10

    2.Visual Studio 2015 Update 2(https://developer.microsoft.com/zh-cn/windows/downloads),請確認(rèn)是*新版本(安裝時(shí)采用自定義安裝,電腦的內(nèi)存一定要多,若安裝VS 的所有配件,大約需要54GB,一定要有VPN,否則下載速度會(huì)很慢。)

    3.hololens 模擬器(https://pan.baidu.com/s/1dEGXC2l)大家自行下載,十分方便,適合買不起設(shè)備的人

    4.Unity HoloLens Technical Preview,推薦用Unity。

    首先:

    1. 首先安裝Unity引擎

    2. 然后安裝UWP Runtime

    3. *后可以根據(jù)需要安裝離線文檔工具

    大家注意:設(shè)備要求--

    • 64位Windows 10 Pro, Enterprise, or Education系統(tǒng)(家庭版不支持Hyper-V)

    • 64位CPU

    • 8G或更多內(nèi)存

    • 小編有個(gè)技巧(僅適合Mac 的用戶)安裝win10 十分簡單,一次成功,并且在搭建開發(fā)環(huán)境時(shí)十分快,不會(huì)超過一個(gè)小時(shí)(有Vpn 的前提下),安裝win10 鏡像的方法,注意分配給win0

      的內(nèi)存一定要多(https://www.macx.cn/forum.PHP?mod=viewthread&tid=2182916&extra=page%3D1%26filter%3Ddigest%26digest%3D1%26digest%3D1)

    *后,對hololens 的核心做個(gè)簡單介紹:

    語音識別Voice Command

    語音識別同樣是HoloLens重要組成部分,包括我們很熟悉的Cortana,同樣能夠?yàn)槲覀儙砀匀桓咝У妮斎塍w驗(yàn)。

    HoloLens的語音識別分為三個(gè)部分:

    • 語音命令 KeywordRecognizer:通過關(guān)鍵詞來執(zhí)行動(dòng)作

    • 語法識別GrammarRecognizer:通過預(yù)設(shè)的語法來模糊匹配動(dòng)作

    • 聽寫 Diction:即語音轉(zhuǎn)文字,用于輸入

    三個(gè)組件中語音命令特性*為常用,配合凝視能夠完成絕大部分場景的需求。為了使用語音命令,首先要啟用KeywordRecognizer實(shí)例,同時(shí)要預(yù)設(shè)好來源。


    通過數(shù)組來初始化關(guān)鍵詞識別器:

    keywords.Add(“activate”, () => { // 關(guān)鍵詞動(dòng)作 }); 

    keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray()); 

    keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized; 

    //開始識別 keywordRecognizer.Start();

    在響應(yīng)事件中做處理,調(diào)用識別到的關(guān)鍵詞事件。

    private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args) 

    System.Action keywordAction; //如果關(guān)鍵詞在預(yù)設(shè)列表中,即執(zhí)行其2動(dòng)作 

    if (keywords.TryGetValue(args.text, out keywordAction)) { keywordAction.Invoke(); } 

    }

    空間映射 Spatial Mapping

    AR技術(shù)能實(shí)現(xiàn)的關(guān)鍵就是能夠識別映射周邊世界,這是全息對象與真實(shí)表面交互的基礎(chǔ),是AR技術(shù)的核心組件。HoloLens借助于微軟特殊研發(fā)的全息處理單元(HPU 1.0)才能實(shí)現(xiàn)空間映射特性,幸運(yùn)的是我們可以使用空間映射API來對真實(shí)世界做交互。

    全息處理單元

    我們可以利用SurfaceObserver組件來獲取控件表面映射信息,下面是基本的操作:

    SurfaceObserver surfaceObserver; 

    void Start () { 

    //初始化 

    surfaceObserver = new SurfaceObserver(); 

    StartCoroutine(UpdateLoop()); 

    IEnumerator UpdateLoop() { 

    var wait = new WaitForSeconds(2.5f); 

    while(true) { 

    surfaceObserver.Update(OnSurfaceChanged); 

    yield return wait; 

    }

    每一個(gè)空間表面都需要注冊其Handle事件,用于實(shí)時(shí)調(diào)整空間映射信息和交互。

    private void OnSurfaceChanged(

    SurfaceId surfaceId, SurfaceChange changeType, Bounds bounds, System.DateTime updateTime) 

    //處理空間表面變化

    }