HoloLens 2 開發入門精要 — 基於 Unity 和 MRTK

HoloLens 2 開發入門精要 — 基於 Unity 和 MRTK

作者: 汪祥春
出版社: 清華大學
出版在: 2021-12-01
ISBN-13: 9787302589914
ISBN-10: 7302589917
裝訂格式: 平裝
總頁數: 368 頁





內容描述


本書主要講述利用Unity和MRTK進行HoloLens2設備上的MR應用開發,
對MR應用開發中涉及的技術進行了全方位的講述,用語通俗易懂,闡述深入淺出。
 本書共分4個部分:
第一部分為基礎篇,包括第1章和第2章,本篇從混合現實概念入手,簡述HoloLens2設備的技術特性、
基本開發步驟及調試部署、MRTK體系架構、配置文件使用等基礎知識,立意高屋建瓴,
通過對HoloLens2設備和MRTK的介紹,希望讀者對在HoloLens2設備上進行MR應用開發有一個初步的印象;
第二部分為操作組件篇,包括第3~5章,
本篇主要闡述對HoloLens2設備功能特性的基本開發及操作、系統講解MRTK提供的各類功能組件和UX控件操作使用;
第三部分為功能技術篇,包括第6~12章,本篇針對HoloLens2設備上的MR應用開發進行深入全面闡述、剖析講解,
力圖從原理到實踐,全方位覆蓋MR應用開發技術方方面面,每章節都配有詳盡的可執行代碼及代碼的詳細說明;
第四部分為提高篇,包括第13章和第14章,本篇不僅討論MR應用與普通應用的區別,
也指出在MR應用開發中應該註意的事項,提出了在MR應用開發中應該遵循的基本原則,
並對如何排查MR應用性能問題及基本性能優化原則進行了比較深入的探究。
本書面向MR應用開發初學者與Unity工程師,也可以作為高校、
大專院校相關專業師生的學慣用書,以及培訓學校的培訓教材。


目錄大綱


目 錄 
CONTENTS
基礎篇
第 1章 HoloLens 2基礎 ………………………………………………………………………… 3 
1.1 混合現實技術概述 ……………………………………………………………………… 3 
1.1.1 MR概念 ………………………………………………………………………… 3 
1.1.2 全息圖 …………………………………………………………………………… 
5 1.2 HoloLens 2設備 ………………………………………………………………………… 5 
1.3 MR技術原理 …………………………………………………………………………… 8 
1.3.1 傳感器數據 ……………………………………………………………………… 8 
1.3.2 前端里程計 …………………………………………………………………… 10 
1.3.3 後端優化 ……………………………………………………………………… 10 
1.3.4 回環檢測 ……………………………………………………………………… 11 
1.3.5 建圖 …………………………………………………………………………… 11 
1.4 開發環境準備 ………………………………………………………………………… 12 
1.4.1 所需硬件和軟件 ……………………………………………………………… 12 
1.4.2 軟件安裝 ……………………………………………………………………… 13 
1.4.3 軟件配置 ……………………………………………………………………… 15 
1.5 MR應用開發初體驗 ………………………………………………………………… 16 
1.5.1 創建工程 ……………………………………………………………………… 16 
1.5.2 直接導入 MRTK工具包 ……………………………………………………… 17 
1.5.3 使用 UPM導入 MRTK工具包 ……………………………………………… 18 
1.5.4 使用 MRFT導入 MRTK工具包 ……………………………………………… 20 
1.5.5 導入 TextMeshPro工具包 …………………………………………………… 20 
1.5.6 配置 Unity項目 ……………………………………………………………… 21 
1.5.7 創建和設置場景 ……………………………………………………………… 23 
1.5.8 導出 Unity工程 ……………………………………………………………… 23 
1.5.9 部署到 HoloLens 2設備 ……………………………………………………… 23
 
HoloLens 2開發入門精要——基於 Unity和 MRTK 
1.5.10 發布 MR應用 ………………………………………………………………… 26 
1.6 使用模擬器 …………………………………………………………………………… 27 
1.7 MRTK輸入模擬 ……………………………………………………………………… 29 
1.8 設備能力檢查 ………………………………………………………………………… 31
第 2章 MRTK基礎 …………………………………………………………………………… 33 
2.1 MRTK概述 …………………………………………………………………………… 33 
2.2 MRTK體系架構 ……………………………………………………………………… 34 
2.2.1 配置文件 ……………………………………………………………………… 36 
2.2.2 運行時 ………………………………………………………………………… 36 
2.2.3 服務 …………………………………………………………………………… 36 
2.2.4 擴展服務 ……………………………………………………………………… 39 
2.2.5 數據提供者 …………………………………………………………………… 41 
2.3 配置文件 ……………………………………………………………………………… 43 
2.3.1 配置文件概述 ………………………………………………………………… 44 
2.3.2 配置指南 ……………………………………………………………………… 46
操作組件篇
第 3章基本特性操作與開發…………………………………………………………………… 61 
3.1 HoloLens 2設備門戶 ………………………………………………………………… 61 
3.1.1 連接設備門戶 ………………………………………………………………… 61 
3.1.2 功能簡介 ……………………………………………………………………… 62 
3.2 研究模式 ……………………………………………………………………………… 67 
3.3 圖像與視頻捕獲 ……………………………………………………………………… 68 
3.3.1 在設備中直接操作 …………………………………………………………… 68 
3.3.2 在設備門戶中操作 …………………………………………………………… 68 
3.3.3 代碼操作 ……………………………………………………………………… 69 
3.4 全息遠端呈現 ………………………………………………………………………… 81 
3.4.1 在 Unity編輯器中使用全息遠端呈現 ……………………………………… 81 
3.4.2 MR應用程序使用全息遠端呈現 …………………………………………… 82 
3.5 診斷系統 ……………………………………………………………………………… 84 
3.6 動態 GLTF格式模型加載 …………………………………………………………… 86 
3.7 多場景管理 …………………………………………………………………………… 88 
 
3.7.1 場景系統配置 ………………………………………………………………… 88 
3.7.2 場景加載與卸載 ……………………………………………………………… 90 
3.7.3 場景加載進度與事件 ………………………………………………………… 91
第 4章交互與事件……………………………………………………………………………… 95 
4.1 Bounds Control ………………………………………………………………………… 95 
4.1.1 基本操作 ……………………………………………………………………… 96 
4.1.2 HoloLens 2風格 ……………………………………………………………… 101 
4.1.3 事件 …………………………………………………………………………… 103 
4.1.4 使用代碼操作 ………………………………………………………………… 103 
4.2 Object Manipulator …………………………………………………………………… 105 
4.2.1 基本操作 ……………………………………………………………………… 105 
4.2.2 事件 …………………………………………………………………………… 108 
4.3 Constraint Manager …………………………………………………………………… 108 
4.3.1 基本操作 ……………………………………………………………………… 108 
4.3.2 約束組件 ……………………………………………………………………… 109 
4.4 Interactable……………………………………………………………………………… 111 
4.4.1 基本操作 ……………………………………………………………………… 111 
4.4.2 Interactable 配置節 …………………………………………………………… 114 
4.4.3 事件 …………………………………………………………………………… 115 
4.4.4 視覺主題 ……………………………………………………………………… 116 
4.4.5 代碼操作 ……………………………………………………………………… 122 
4.5 Solvers ………………………………………………………………………………… 124 
4.5.1 解算器基礎 …………………………………………………………………… 124 
4.5.2 標準解算器 …………………………………………………………………… 126 
4.6 手指手掌可視化 ……………………………………………………………………… 130 
4.6.1 Fingertip Visualization ………………………………………………………… 130 
4.6.2 RiggedHandVisualizer ………………………………………………………… 131 
4.6.3 ArticulatedHandMeshPulse …………………………………………………… 132 
4.7 Elastic System ………………………………………………………………………… 133 
4.8 Dock …………………………………………………………………………………… 134
第 5章 UX控件 ………………………………………………………………………………… 136 
5.1 按鈕 …………………………………………………………………………………… 136 
5.1.1 按鈕的使用 …………………………………………………………………… 138 
5.1.2 自定義按鈕 …………………………………………………………………… 141 
 
HoloLens 2開發入門精要——基於 Unity和 MRTK 
5.2 Slate面板 ……………………………………………………………………………… 143 
5.3 系統鍵盤 ……………………………………………………………………………… 144 
5.4 ToolTips ………………………………………………………………………………… 144 
5.5 Sliders ………………………………………………………………………………… 145 
5.6 近身菜單 ……………………………………………………………………………… 146 
5.7 應用程序欄 …………………………………………………………………………… 148 
5.8 進度指示器 …………………………………………………………………………… 148 
5.9 對話框 ………………………………………………………………………………… 150 
5.10 手勢引導 ……………………………………………………………………………… 151 
5.10.1 HandInteractionhint組件 …………………………………………………… 152 
5.10.2 MoveToTarget組件 ………………………………………………………… 153 
5.10.3 RotateAroundPoint組件 …………………………………………………… 154
功能技術篇
第 6章空間感知和映射………………………………………………………………………… 157 
6.1 運動跟蹤 ……………………………………………………………………………… 157 
6.2 空間感知 ……………………………………………………………………………… 161 
6.3 空間感知代碼操作 …………………………………………………………………… 164 
6.4 開發環境中測試空間感知 …………………………………………………………… 168 
6.5 射線檢測 ……………………………………………………………………………… 169 
6.6 場景理解和語義 ……………………………………………………………………… 172 
6.6.1 場景理解基礎 ………………………………………………………………… 172 
6.6.2 場景理解使用 ………………………………………………………………… 175 
6.7 空間感知和場景理解的應用 ………………………………………………………… 178 
6.7.1 虛擬物體放置 ………………………………………………………………… 179 
6.7.2 遮擋 …………………………………………………………………………… 180 
6.7.3 物理模擬 ……………………………………………………………………… 181 
6.7.4 導航和路徑規劃 ……………………………………………………………… 181
第 7章手勢操作與交互………………………………………………………………………… 182 
7.1 手勢輸入配置 ………………………………………………………………………… 182 
7.1.1 輸入數據提供者 ……………………………………………………………… 183 
7.1.2 手部跟蹤 ……………………………………………………………………… 183 
 
7.1.3 手部指針 ……………………………………………………………………… 184 
7.2 指針概述 ……………………………………………………………………………… 185 
7.3 指針基本操作 ………………………………………………………………………… 187 
7.4 手勢操作 ……………………………………………………………………………… 192 
7.4.1 近端操作 ……………………………………………………………………… 192 
7.4.2 遠端操作 ……………………………………………………………………… 195 
7.5 手部跟蹤 ……………………………………………………………………………… 196 
7.5.1 獲取手部姿態 ………………………………………………………………… 197 
7.5.2 獲取手部關節 ………………………………………………………………… 198 
7.5.3 獲取手部網格 ………………………………………………………………… 199 
7.5.4 手部關節使用演示 …………………………………………………………… 200 
7.6 手勢錄制和回放 ……………………………………………………………………… 201 
7.6.1 手勢錄制 ……………………………………………………………………… 202 
7.6.2 手勢回放 ……………………………………………………………………… 204 
7.7 手部菜單 ……………………………………………………………………………… 204
第 8章語音與交互……………………………………………………………………………… 208 
8.1 語音命令 ……………………………………………………………………………… 208 
8.1.1 打開話筒功能特性 …………………………………………………………… 208 
8.1.2 設置語音命令關鍵詞 ………………………………………………………… 209 
8.1.3 監聽並處理事件 ……………………………………………………………… 209 
8.1.4 自定義語音命令處理邏輯 …………………………………………………… 210 
8.2 語音識別 ……………………………………………………………………………… 211 
8.2.1 添加語音識別數據提供者 …………………………………………………… 212 
8.2.2 監聽並處理事件 ……………………………………………………………… 212 
8.2.3 自定義語音命令處理 ………………………………………………………… 213
第 9章眼動跟蹤與凝視交互…………………………………………………………………… 215 
9.1 眼動校準 ……………………………………………………………………………… 215 
9.2 眼動跟蹤配置 ………………………………………………………………………… 217 
9.2.1 啟用凝視輸入功能特性 ……………………………………………………… 217 
9.2.2 添加凝視數據提供者 ………………………………………………………… 218 
9.2.3 設置眼動跟蹤參數 …………………………………………………………… 218 
9.3 凝視功能使用 ………………………………………………………………………… 220 
9.4 獲取凝視數據 ………………………………………………………………………… 220 
 
HoloLens 2開發入門精要——基於 Unity和 MRTK
第 10章光影與特效 …………………………………………………………………………… 223 
10.1 光照 …………………………………………………………………………………… 223 
10.1.1 光源 ………………………………………………………………………… 224 
10.1.2 光與材質的交互 …………………………………………………………… 224 
10.1.3 光照模型 …………………………………………………………………… 225 
10.1.4 懸浮燈光 …………………………………………………………………… 226 
10.1.5 接近燈光 …………………………………………………………………… 228 
10.2 MRTK標準著色器 …………………………………………………………………… 228 
10.2.1 模型切割 …………………………………………………………………… 230 
10.2.2 輪廓線 ……………………………………………………………………… 232 
10.2.3 擠出與模板測試 …………………………………………………………… 234 
10.3 環境反射 ……………………………………………………………………………… 235 
10.3.1 立方體貼圖 ………………………………………………………………… 235 
10.3.2 環境反射與光照估計 ……………………………………………………… 236 
10.4 陰影 …………………………………………………………………………………… 237
第 11章 3D文字與音視頻……………………………………………………………………… 241 
11.1 3D文字 ……………………………………………………………………………… 241 
11.1.1 文字單位換算 ……………………………………………………………… 241 
11.1.2 中文字體製作 ……………………………………………………………… 242 
11.2 3D聲頻 ……………………………………………………………………………… 243 
11.2.1 3D聲場原理 ………………………………………………………………… 244 
11.2.2 3D空間音效簡單使用 ……………………………………………………… 244 
11.2.3 運行時啟用和禁用 3D音效………………………………………………… 248 
11.2.4 UX元素音效 3D化 ………………………………………………………… 249 
11.2.5 使用回響營造空間感 ……………………………………………………… 250 
11.2.6 3D音效設計原則 …………………………………………………………… 252 
11.3 3D視頻 ……………………………………………………………………………… 254 
11.3.1 VideoPlayer組件 …………………………………………………………… 254 
11.3.2 視頻音效空間化 …………………………………………………………… 258
第 12章空間錨點與 Azure雲服務 …………………………………………………………… 259 
12.1 Azure雲服務概述 …………………………………………………………………… 259 
12.2 空間錨點 ……………………………………………………………………………… 260 
12.2.1 錨點概述 …………………………………………………………………… 260 
 
12.2.2 本地錨點 …………………………………………………………………… 262 
12.2.3 本地錨點持久化與傳輸 …………………………………………………… 266 
12.2.4 雲錨點 ……………………………………………………………………… 268 
12.3 遠程渲染 ……………………………………………………………………………… 278 
12.4 小結 …………………………………………………………………………………… 287
提高篇
第 13章設計指南 ……………………………………………………………………………… 291 
13.1 MR應用設計挑戰 …………………………………………………………………… 291 
13.2 MR應用設計的一般原則 …………………………………………………………… 294 
13.2.1 舒適性 ……………………………………………………………………… 295 
13.2.2 顯示呈現 …………………………………………………………………… 299 
13.2.3 UX設計 …………………………………………………………………… 302 
13.2.4 3D音效 ……………………………………………………………………… 305 
13.2.5 視覺效果 …………………………………………………………………… 306 
13.2.6 真實感 ……………………………………………………………………… 308 
13.2.7 跟蹤丟失 …………………………………………………………………… 313 
13.3 MR應用交互設計指南 ……………………………………………………………… 313 
13.3.1 指示光標 …………………………………………………………………… 313 
13.3.2 可交互對象 ………………………………………………………………… 315 
13.3.3 本能交互 …………………………………………………………………… 318 
13.3.4 手勢交互 …………………………………………………………………… 319 
13.3.5 語音交互 …………………………………………………………………… 325 
13.3.6 凝視交互 …………………………………………………………………… 328
第 14章性能優化 ……………………………………………………………………………… 331 
14.1 性能優化基礎 ………………………………………………………………………… 331 
14.1.1 影響性能的主要因素 ……………………………………………………… 331 
14.1.2 MR應用常用調試方法 …………………………………………………… 333 
14.1.3 MR應用性能優化的一般原則 …………………………………………… 334 
14.2 MR應用性能調試工具 ……………………………………………………………… 335 
14.2.1 Unity分析器 ………………………………………………………………… 335 
14.2.2 幀調試器 …………………………………………………………………… 338 
14.3 Unity分析器使用 …………………………………………………………………… 340 
 
HoloLens 2開發入門精要——基於 Unity和 MRTK 
14.3.1 CPU使用情況分析器 ……………………………………………………… 340 
14.3.2 渲染情況分析器 …………………………………………………………… 341 
14.3.3 內存使用情況分析器 ……………………………………………………… 342 
14.3.4 物理分析器 ………………………………………………………………… 342 
14.3.5 聲頻視頻分析器 …………………………………………………………… 343 
14.4 性能優化的一般步驟 ………………………………………………………………… 344 
14.4.1 收集運行數據 ……………………………………………………………… 345 
14.4.2 分析運行數據 ……………………………………………………………… 346 
14.4.3 確定問題的原因 …………………………………………………………… 348 
14.5 渲染優化 ……………………………………………………………………………… 350 
14.5.1 渲染流程 …………………………………………………………………… 351 
14.5.2 CPU瓶頸 …………………………………………………………………… 351 
14.5.3 GPU瓶頸 …………………………………………………………………… 354 
14.6 代碼優化 ……………………………………………………………………………… 356 
14.6.1 內存管理 …………………………………………………………………… 356 
14.6.2 垃圾回收 …………………………………………………………………… 357 
14.6.3 對象池 ……………………………………………………………………… 362 
14.6.4 常見影響性能的代碼優化策略 …………………………………………… 363 
14.7 MRTK優化設置……………………………………………………………………… 365 
14.7.1 UI/UX優化 ………………………………………………………………… 365 
14.7.2 常用優化設置 ……………………………………………………………… 366 
14.7.3 MR應用開發一般註意事項 ……………………………………………… 368
附錄 A 更多資源………………………………………………………………………………… 369
參考文獻…………………………………………………………………………………………… 370




相關書籍

Unity3D虛擬現實技術開發

作者 王海嬰 王趙依楠主編吳亞莉副主編

2021-12-01

DirectX 12 3D 游戲開發實戰 (Introduction to 3D Game Programming with DirectX 12)

作者 [美] 弗蘭克·D.盧娜

2021-12-01

Building an RPG with Unity 2018 - Second Edition

作者 Vahe Karamian

2021-12-01