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

    2017/7/31      點擊:

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

    AR/MR是什麽?

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

    AR核心特(tè)性

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

    開發環境

    .安裝清單

    1.升級(jí)win10

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

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

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

    首(shǒu)先:

    1. 首先安裝Unity引擎

    2. 然後安裝UWP Runtime

    3. *後可以根據需要(yào)安裝離(lí)線文檔工具(jù)

    大家注意:設備要求--

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

    • 64位CPU

    • 8G或更多(duō)內存

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

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

    *後,對hololens 的核心做個簡單(dān)介紹:

    語音識別Voice Command

    語音識別同樣是HoloLens重要組成部(bù)分,包括我們很熟悉的Cortana,同樣能夠為我們帶來更自然高(gāo)效的輸(shū)入體驗。

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

    • 語音(yīn)命令 KeywordRecognizer:通過(guò)關鍵(jiàn)詞來執行(háng)動(dòng)作

    • 語法識別GrammarRecognizer:通過預(yù)設的語法來模糊(hú)匹配動作

    • 聽寫 Diction:即語音轉文字,用於輸入(rù)

    三個(gè)組件(jiàn)中語音命(mìng)令特性*為常用,配合(hé)凝視能夠(gòu)完成絕大部分場景的需求。為了使(shǐ)用語音命令,首先要啟(qǐ)用KeywordRecognizer實例,同時要預設好來源。


    通過數組來初始化關鍵詞識別器:

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

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

    keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized; 

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

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

    private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args) 

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

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

    }

    空間(jiān)映射 Spatial Mapping

    AR技術能實現的關鍵就是能夠(gòu)識別映射周邊世(shì)界,這是全息(xī)對象(xiàng)與真實表麵交互的基礎,是AR技術的核心組件。HoloLens借助(zhù)於微軟特殊研發的全息處理單元(HPU 1.0)才能(néng)實現空間映射特性,幸運的(de)是我們可以使用空間映射API來對真實(shí)世界做交互。

    全息處理單元

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

    SurfaceObserver surfaceObserver; 

    void Start () { 

    //初(chū)始化 

    surfaceObserver = new SurfaceObserver(); 

    StartCoroutine(UpdateLoop()); 

    IEnumerator UpdateLoop() { 

    var wait = new WaitForSeconds(2.5f); 

    while(true) { 

    surfaceObserver.Update(OnSurfaceChanged); 

    yield return wait; 

    }

    每一(yī)個空間表麵都需要注冊其Handle事件,用於實時(shí)調整空間映射信息(xī)和(hé)交互。

    private void OnSurfaceChanged(

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

    //處理空間表麵變化(huà)

    }

    91影视免费版下载-91麻豆国产福利精品-91麻豆精品一二三区在线-国产91系列视频在线观看