Hololens開發環境搭建
伴隨著數(shù)月的期待,終(zhōng)於拿到了預訂的HoloLens開發(fā)者版本套件。隨(suí)著VR/AR/MR技術的熱潮,國內外(wài)均對它(tā)們的應用與盈利前景持有積很的預期,這(zhè)也直接導致了國內外當前投資VR/AR/MR技術的熱潮。無論是融資(zī)數十億美元的Magic Leap,還是Facebook、微軟等科(kē)技巨頭布局VR/AR市場,這股熱潮不僅(jǐn)出現在風險投資領域,還席卷(juàn)了消費者市場和智能硬(yìng)件市場,這無疑引領了下一波互聯網產業(yè)的(de)爆發(fā),而我們作為技術核心(xīn)的開發(fā)者(zhě)更不能落下。正(zhèng)如喬幫主所說:“Stay foolish,Stay Hungry”,今天(tiān)我們就來了解下AR/MR技術的開發(fā)特性,本文以微軟出品的HoloLens為目標設備(bèi)。
AR/MR是什麽?
VR大家都已經很清楚了,VR即是虛擬現實技術,這意味著沉浸式(shì)全(quán)虛擬(nǐ)的使用體驗。全虛擬沉浸式的(de)體驗帶了獨特(tè)的視覺效果,但是由於遮蓋現實(shí)內容,仍導致了(le)頭暈、運動不友好等難以解(jiě)決的問題。與之相對的則是AR/MR技術,這(zhè)意味虛擬世界與真實世界交織的視覺體驗。從用(yòng)戶使用體驗來看,AR/MR無疑是更符合人類自然交互模式,代表了未來更偉大的發(fā)展方向。同時在(zài)筆者看來,由Magic Leap提出(chū)的MR(Mixed Reality)技術其本質(zhì)與AR(Augmented Reality)技術並無區別,微軟目前也(yě)在HoloLens文(wén)檔中大量使用MR技術(shù)的說法,故此本文將AR/MR技術視為一體。
AR核心特性
正(zhèng)如上麵所說,AR具(jù)備與VR截然不同的視覺體驗,所以(yǐ)其開發體驗(yàn)也與VR區別較(jiào)大,下麵(miàn)我們來一起探討HoloLens的(de)部分核心開發特性。本(běn)文使用的開發環境為Unity HoloLens preview beta 14以及(jí)Unity Universal Windows Platform Runtime組件
開發(fā)環(huán)境(jìng)
.安裝清單
1.升級win10
2.Visual Studio 2015 Update 2(https://developer.microsoft.com/zh-cn/windows/downloads),請確認是*新版本(安裝時采用自定義安裝,電腦的內存一定(dìng)要多,若安裝VS 的所有配(pèi)件,大約需要54GB,一(yī)定要有VPN,否則下載速度會很慢。)
3.hololens 模擬器(https://pan.baidu.com/s/1dEGXC2l)大家自行(háng)下載,十分方(fāng)便,適合買不(bú)起設(shè)備的人
4.Unity HoloLens Technical Preview,推薦用Unity。
首先:
-
首先安裝Unity引擎
-
然後安裝UWP Runtime
-
*後可以根據需要(yào)安裝離線文檔工具
大家注(zhù)意:設備要求--
-
64位Windows 10 Pro, Enterprise, or Education係統(家庭版不支持(chí)Hyper-V)
-
64位CPU
-
8G或更多內存
-
小編有個技巧(僅(jǐn)適合Mac 的用戶)安裝win10 十分簡單,一次成功,並且在搭建開發環境時十分快,不會超過一個小時(有Vpn 的前提下(xià)),安裝win10 鏡像的(de)方法,注意分配給win0
的內存一定要多(https://www.macx.cn/forum.PHP?mod=viewthread&tid=2182916&extra=page%3D1%26filter%3Ddigest%26digest%3D1%26digest%3D1)
*後,對hololens 的(de)核心做個簡單(dān)介紹:
語音識別Voice Command
語音識別同樣是(shì)HoloLens重要組(zǔ)成部(bù)分,包括我們很熟悉的Cortana,同(tóng)樣能夠為我們帶來更自然高效的輸入體(tǐ)驗。
HoloLens的語音識別分為三(sān)個部分:
-
語音命令 KeywordRecognizer:通過關鍵詞來執行動作
-
語法識別GrammarRecognizer:通過預設的語法來(lái)模糊(hú)匹配動作
-
聽寫 Diction:即語音轉文字,用於輸(shū)入
三個組件中語音命(mìng)令特性*為常用,配合凝視能夠完成絕大部分場景的需求。為了使用語音命令,首先要啟用KeywordRecognizer實例,同時要預設好
通(tōng)過
keywords.Add(“activate”, () => { // 關鍵詞動作 });
keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());
keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized;
//開始識別 keywordRecognizer.Start();
在響應事件中做處理,調用識別(bié)到的關鍵詞事件。
private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
System.Action keywordAction; //如果關(guān)鍵(jiàn)詞在(zài)預設列表中,即執行其(qí)2動作
if (keywords.TryGetValue(args.text, out keywordAction)) { keywordAction.Invoke(); }
}
空間映射 Spatial Mapping
AR技術(shù)能實現的關鍵就是能夠識別(bié)映射周邊世(shì)界,這是(shì)全息對象與真實表麵交互(hù)的基礎,是AR技術的核心(xīn)組件。HoloLens借助(zhù)於微軟特殊研發的全息處理單(dān)元(yuán)(HPU 1.0)才能實(shí)現空間映射特性,幸運的是我們可以使用空間映射API來對真實世界做交互。
全息處理單元
我們(men)可(kě)以利用SurfaceObserver組件來獲(huò)取控件表麵映射信息,下麵是基本的操作:
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;
}
}
每一個空間表麵都需要注冊其Handle事件,用於實時調整空間映射信息和交互。
private void OnSurfaceChanged(
SurfaceId surfaceId, SurfaceChange changeType, Bounds bounds, System.DateTime updateTime)
{
//處(chù)理空間表麵變化
}
- 上一篇:UE4實現簡單的插件(jiàn)開發VS2015 2017/8/8
- 下(xià)一篇:Microsoft HoloLens正式進入中國市場 2017/7/31