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

    2017/7/31      點擊:

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

    AR/MR是什麽?

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

    AR核心(xīn)特性(xìng)

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

    開發環境

    .安裝清單(dān)

    1.升級win10

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

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

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

    首先:

    1. 首先安裝Unity引擎

    2. 然後安裝UWP Runtime

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

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

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

    • 64位CPU

    • 8G或更多內存

    • 小(xiǎo)編有(yǒu)個技巧(僅適合Mac 的(de)用戶)安裝(zhuāng)win10 十分簡單,一次(cì)成功,並且在搭建開發環境時十分快,不會超過(guò)一個小時(有Vpn 的前提下),安(ān)裝(zhuāng)win10 鏡(jìng)像的方法,注意分配給win0

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

    *後,對hololens 的核心做個簡單介紹:

    語音識別Voice Command

    語音識別同樣是HoloLens重要組成部分,包括我(wǒ)們很熟悉的Cortana,同(tóng)樣能(néng)夠為(wéi)我們帶來更自然高效的(de)輸入體(tǐ)驗。

    HoloLens的語音識別(bié)分為三(sān)個部分:

    • 語音命令 KeywordRecognizer:通過關鍵詞來執行動作

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

    • 聽寫 Diction:即語音轉文(wén)字,用於輸入

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


    通過數組來初始化關鍵(jiàn)詞識(shí)別器:

    keywords.Add(“activate”, () => { // 關鍵詞動作 }); 

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

    keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized; 

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

    在響應事件中做處理,調用識別到的關鍵詞事(shì)件。

    private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args) 

    System.Action keywordAction; //如果(guǒ)關鍵詞在預設列表中,即執行其2動作 

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

    }

    空間映射 Spatial Mapping

    AR技術能實現的關鍵就是能夠識別映射周邊世界,這是全息對象與真實表麵交互的基礎(chǔ),是AR技(jì)術的核心組件。HoloLens借助於微軟特殊研(yán)發的全息處理單元(HPU 1.0)才能(néng)實現空間(jiān)映射特性,幸運的是我們可(kě)以使(shǐ)用空(kōng)間映射API來對(duì)真實世界(jiè)做交互。

    全息處理單元

    我們可以利用SurfaceObserver組件(jiàn)來獲取控件表麵映射信息,下麵是(shì)基本的操作:

    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; 

    }

    每一個空間表麵都需要(yào)注(zhù)冊其Handle事件,用於實時調整空間映射信息和交互。

    private void OnSurfaceChanged(

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

    //處理空間表麵變化

    }

    密桃直播-密桃直播手机版下载-蜜桃直播app下载安装-蜜桃直播官方版下载