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

汪祥春

  • 出版商: 清華大學
  • 出版日期: 2021-12-01
  • 售價: $654
  • 貴賓價: 9.5$621
  • 語言: 簡體中文
  • 頁數: 368
  • 裝訂: 平裝
  • ISBN: 7302589917
  • ISBN-13: 9787302589914
  • 相關分類: 遊戲引擎 Game-engine
  • 立即出貨 (庫存 < 4)

  • HoloLens 2 開發入門精要 — 基於 Unity 和 MRTK-preview-1
  • HoloLens 2 開發入門精要 — 基於 Unity 和 MRTK-preview-2
HoloLens 2 開發入門精要 — 基於 Unity 和 MRTK-preview-1

買這商品的人也買了...

商品描述

本書主要講述利用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