AR Foundation增強現實開發實戰(ARCore版)

《AR Foundation增強現實開發實戰(ARCore版)》是2022年清華大學出版社出版的圖書,作者是汪祥春。

基本介紹

  • 中文名:AR Foundation增強現實開發實戰(ARCore版)
  • 作者:汪祥春
  • 出版社:清華大學出版社
  • 出版時間:2022年9月1日
  • 定價:109 元
  • ISBN:9787302612186
內容簡介,圖書目錄,

內容簡介

本書基於AR Foundation框架,採用URP渲染管線,講述利用ARCore進行Android平台的AR套用開發,從AR技術概念、原理、理論脈絡到各功能技術點、Android與Unity互動通信、設計原則、性能最佳化,對ARCore套用開發中涉及的技術進行了全方位的講述,用語通俗易懂,闡述深入淺出。
本書共分三個部分:第一部分為基礎篇,包括第1章至第3章,從最基礎的增強現實概念入手,通過一個實例闡述了AR開發從軟硬體準備、開發環境搭建、工程設定、發布部署全流程,探討了AR Foundation框架的技術基礎、常用組件,並著重探索了ARCore功能特性和運動跟蹤原理;第二部分為功能技術篇,包括第4章至第12章,對ARCore功能特性各方面進行了詳細探索討論,從平面檢測、圖像檢測、人臉檢測到雲錨點、光影特效等,全方位的進行了技術剖析、講解、演示。並對AR場景管理、圖像信息處理、3D文字聲頻視頻等實用功能進行了闡述和使用操作講解;第三部分為高級篇,包括第13章至第15章,主要闡述了Android與Unity互動通信、AR套用設計、性能最佳化相關主題,著力提升開發人員在AR套用開發時的實際套用能力和整體把握能力。
本書結構清晰、循序漸進、深淺兼顧,實例豐富,每個技術點都有案例,特別注重對技術原理和實際運用的講述,力圖解決讀者在項目開發中面臨的難點問題。
本書適合AR初學者、Unity開發人員、程式設計師、科研人員,也可以作為高校、大專院校相關專業師生的學習用書,以及培訓學校的培訓教材。

圖書目錄

基 礎 篇
第 1章 AR開發入門 ……………………………………………………………………………… 1
1.1 增強現實技術概述 ……………………………………………………………………… 3
1.1.1 AR概念 …………………………………………………………………………… 3
1.1.2 AR技術套用……………………………………………………………………… 5
1.2 AR技術原理……………………………………………………………………………… 6
1.2.1 感測器數據 ……………………………………………………………………… 6
1.2.2 前端里程計 ……………………………………………………………………… 8
1.2.3 後端最佳化 ………………………………………………………………………… 8
1.2.4 迴環檢測 ………………………………………………………………………… 8
1.2.5 建圖 ……………………………………………………………………………… 9
1.3 AR Foundation概述 …………………………………………………………………… 10
1.3.1 AR Foundation與 ARCore …………………………………………………… 11
1.3.2 AR Foundation支持的功能 …………………………………………………… 11
1.3.3 AR Foundation功能概述 ……………………………………………………… 12
1.3.4 AR Foundation體系架構概述 ………………………………………………… 13
1.3.5 基本術語 ……………………………………………………………………… 13
1.4 支持的設備 …………………………………………………………………………… 15
1.5 開發環境準備 ………………………………………………………………………… 16
1.5.1 所需硬體和軟體 ……………………………………………………………… 17
1.5.2 軟體安裝 ……………………………………………………………………… 17
1.6 ARCore初體驗 ………………………………………………………………………… 19
1.6.1 工程創建 ……………………………………………………………………… 19
1.6.2 工具包導入 …………………………………………………………………… 21
1.6.3 工程設定 ……………………………………………………………………… 22
1.6.4 環境搭建 ……………………………………………………………………… 24
1.6.5 代碼編寫 ……………………………………………………………………… 27
1.6.6 調試準備 ……………………………………………………………………… 29
1.6.7 打包測試 ……………………………………………………………………… 30
1.7 AR套用調試…………………………………………………………………………… 31
第 2章 AR Foundation基礎 …………………………………………………………………… 36
2.1 AR Foundation體系架構 ……………………………………………………………… 36
2.1.1 AR子系統概念………………………………………………………………… 37
2.1.2 AR子系統使用………………………………………………………………… 38
2.1.3 跟蹤子系統 …………………………………………………………………… 39
2.2 AR Session & AR Session Origin ……………………………………………………… 40
2.2.1 AR Session……………………………………………………………………… 40
2.2.2  AR Session Origin……………………………………………………………… 43
2.3 可跟蹤對象 …………………………………………………………………………… 45
2.3.1 可跟蹤對象管理器 …………………………………………………………… 46
2.3.2 可跟蹤對象事件 ……………………………………………………………… 47
2.3.3 管理可跟蹤對象 ……………………………………………………………… 48
2.4 會話管理 ……………………………………………………………………………… 49
第 3章 ARCore功能特性與開發基礎 ………………………………………………………… 52
3.1 ARCore概述及主要功能 ……………………………………………………………… 52
3.1.1 運動跟蹤 ……………………………………………………………………… 53
3.1.2 環境理解 ……………………………………………………………………… 53
3.1.3 光照估計 ……………………………………………………………………… 54
3.1.4 ARCore的不足 ………………………………………………………………… 54
3.2 運動跟蹤原理 ………………………………………………………………………… 56
3.2.1 ARCore坐標系 ………………………………………………………………… 56
3.2.2 ARCore運動跟蹤分類 ………………………………………………………… 56
3.2.3 ARCore運動跟蹤 ……………………………………………………………… 58
3.2.4 ARCore使用運動跟蹤的注意事項 …………………………………………… 60
3.3 設備可用性檢查 ……………………………………………………………………… 61
3.4 AR會話生命周期管理與跟蹤質量…………………………………………………… 62
3.5 ARCore擴展包………………………………………………………………………… 65
3.6 相機配置 ……………………………………………………………………………… 66
3.7 會話錄製與回放 ……………………………………………………………………… 68
3.7.1 AR Foundation錄製與回放 …………………………………………………… 69
3.7.2 ARCore擴展錄製與回放 ……………………………………………………… 72
3.8 即時放置 ……………………………………………………………………………… 78
功能技術篇
第 4章平面檢測與錨點管理…………………………………………………………………… 85
4.1 平面檢測引導 ………………………………………………………………………… 85
4.2 平面管理 ……………………………………………………………………………… 88
4.2.1 平面檢測 ……………………………………………………………………… 88
4.2.2 可視化平面 …………………………………………………………………… 89
4.2.3 個性化渲染平面 ……………………………………………………………… 90
4.2.4 開啟與關閉平面檢測功能 …………………………………………………… 95
4.2.5 顯示與隱藏已檢測平面 ……………………………………………………… 97
4.2.6 平面遮擋 ……………………………………………………………………… 99
4.3 射線檢測 ……………………………………………………………………………… 100
4.3.1 射線檢測概念 ………………………………………………………………… 100
4.3.2 射線檢測詳細講解 …………………………………………………………… 102
4.4 可視化放置點 ………………………………………………………………………… 104
4.5 特徵點與點雲 ………………………………………………………………………… 106
4.5.1 特徵點 ………………………………………………………………………… 107
4.5.2 點雲 …………………………………………………………………………… 108
4.5.3 點雲數據採集 ………………………………………………………………… 109
4.6 錨點 …………………………………………………………………………………… 113
第 5章圖像檢測跟蹤…………………………………………………………………………… 118
5.1 圖像檢測跟蹤基本操作 ……………………………………………………………… 118
5.2 圖像跟蹤功能啟用與禁用 …………………………………………………………… 123
5.3 多圖像跟蹤 …………………………………………………………………………… 124
5.4 運行時創建參考圖像庫 ……………………………………………………………… 129
5.5 運行時切換參考圖像庫 ……………………………………………………………… 130
5.6 運行時添加參考圖像 ………………………………………………………………… 132
5.7 脫卡 …………………………………………………………………………………… 136
5.8 圖像跟蹤最佳化 ………………………………………………………………………… 137
第 6章人臉檢測跟蹤…………………………………………………………………………… 140
6.1 人臉檢測基礎 ………………………………………………………………………… 140
6.1.1 人臉檢測概念 ………………………………………………………………… 140
6.1.2 人臉檢測技術基礎 …………………………………………………………… 141
6.2 人臉姿態與格線 ……………………………………………………………………… 143
6.2.1 人臉姿態 ……………………………………………………………………… 143
6.2.2 人臉格線 ……………………………………………………………………… 145
6.3 人臉區域與多人臉檢測 ……………………………………………………………… 151
6.3.1 人臉區域 ……………………………………………………………………… 151
6.3.2 多人臉檢測 …………………………………………………………………… 155
第 7章光影效果………………………………………………………………………………… 159
7.1 光照基礎 ……………………………………………………………………………… 159
7.1.1 光源 …………………………………………………………………………… 160
7.1.2 光與材質的互動 ……………………………………………………………… 160
7.1.3 光照模型 ……………………………………………………………………… 161
7.1.4 三維渲染 ……………………………………………………………………… 162
7.2 光照估計 ……………………………………………………………………………… 163
7.2.1 光照一致性 …………………………………………………………………… 163
7.2.2 光照估計實例 ………………………………………………………………… 163
7.3 環境反射 ……………………………………………………………………………… 167
7.3.1 立方體貼圖 …………………………………………………………………… 167
7.3.2 紋理採樣過濾 ………………………………………………………………… 168
7.3.3 AR Environment Probe Manager組件 ………………………………………… 169
7.3.4 使用環境反射 ………………………………………………………………… 170
7.4 內置實時陰影 ………………………………………………………………………… 171
7.4.1 ShadowMap技術原理 ………………………………………………………… 172
7.4.2 使用實時陰影 ………………………………………………………………… 173
7.5 Planar陰影 …………………………………………………………………………… 178
7.5.1 數學原理 ……………………………………………………………………… 178
7.5.2 代碼實現 ……………………………………………………………………… 179
7.6 偽陰影 ………………………………………………………………………………… 185
第 8章持久化存儲與多人共享………………………………………………………………… 187
8.1 雲錨點 ………………………………………………………………………………… 187
8.2 ARCore雲錨點使用實例 ……………………………………………………………… 188
8.3 ARCore雲錨點使用注意事項 ………………………………………………………… 195
8.4 Azure雲服務概述……………………………………………………………………… 196
8.5 Azure空間定位點使用實例…………………………………………………………… 197
第 9章場景圖像獲取與場景深度……………………………………………………………… 206
9.1 獲取 GPU圖像 ………………………………………………………………………… 206
9.1.1 獲取攝像頭原始圖像 ………………………………………………………… 206
9.1.2 獲取螢幕顯示圖像 …………………………………………………………… 208
9.2 獲取 CPU圖像 ………………………………………………………………………… 212
9.2.1 AR攝像頭圖像數據流………………………………………………………… 212
9.2.2 從 CPU中獲取攝像頭圖像 …………………………………………………… 213
9.3 邊緣檢測原理 ………………………………………………………………………… 222
9.3.1 卷積 …………………………………………………………………………… 223
9.3.2 Sobel運算元 ……………………………………………………………………… 224
9.4 CPU圖像邊緣檢測實例 ……………………………………………………………… 226
9.5 Depth API概述 ………………………………………………………………………… 229
9.6 Depth API實例 ………………………………………………………………………… 232
9.7 場景深度套用場景 …………………………………………………………………… 237
第 10章相機與手勢操作 ……………………………………………………………………… 239
10.1 AR場景操作 ………………………………………………………………………… 239
10.1.1 場景操作方法 ……………………………………………………………… 239
10.1.2 場景操作實例 ……………………………………………………………… 240
10.2 手勢操作互動 ………………………………………………………………………… 242
10.2.1 手勢檢測 …………………………………………………………………… 242
10.2.2 手勢操作控制 ……………………………………………………………… 244
10.3 XR Interaction Toolkit ………………………………………………………………… 247
10.3.1 對象放置 …………………………………………………………………… 248
10.3.2 對象選擇 …………………………………………………………………… 252
10.3.3 對象操作 …………………………………………………………………… 254
第 11章三維文字與音視頻 …………………………………………………………………… 256
11.1 三維文字 ……………………………………………………………………………… 256
11.1.1 文字單位換算 ……………………………………………………………… 256
11.1.2 中文字型製作 ……………………………………………………………… 257
11.2 三維聲頻 ……………………………………………………………………………… 258
11.2.1 三維聲場原理 ……………………………………………………………… 259
11.2.2 RA聲頻使用………………………………………………………………… 260
11.2.3 RA組件……………………………………………………………………… 260
11.2.4 使用 RA聲頻 ……………………………………………………………… 262
11.2.5 聲頻效果設定 ……………………………………………………………… 266
11.2.6 RA聲頻 API ………………………………………………………………… 268
11.2.7 運行時啟用和禁用三維音效 ……………………………………………… 268
11.2.8 使用迴響營造空間感 ……………………………………………………… 269
11.2.9 三維音效設計原則 ………………………………………………………… 272
11.3 三維視頻 ……………………………………………………………………………… 273
11.3.1 VideoPlayer組件 …………………………………………………………… 274
11.3.2 三維視頻播放實現 ………………………………………………………… 277
11.3.3 視頻音效空間化 …………………………………………………………… 280
第 12章 glTF與 Model Viewer………………………………………………………………… 281
12.1 glTF概述……………………………………………………………………………… 281
12.2 Model Viewer ………………………………………………………………………… 284
12.2.1 Model Viewer使用實例 …………………………………………………… 285
12.2.2 Model Viewer詳解 ………………………………………………………… 288
12.2.3 使用 Model Viewer的注意事項 …………………………………………… 294
高 級 篇
第 13章 Android與 Unity互動通信 ………………………………………………………… 299
13.1 Android與 Unity通信原理 ………………………………………………………… 299
13.2 Unity直接調用 Java代碼 …………………………………………………………… 302
13.3 模組調用 ……………………………………………………………………………… 312
13.4 繼承 UnityPlayerActivity類 ………………………………………………………… 317
13.5 AndroidJavaProxy類詳細講解 ……………………………………………………… 320
13.6 訂閱 Android廣播 …………………………………………………………………… 323
13.7 調用 so庫檔案 ……………………………………………………………………… 328
13.8 Android與 Unity互動注意事項 …………………………………………………… 330
第 14章設計原則 ……………………………………………………………………………… 334
14.1 移動 AR帶來的挑戰 ………………………………………………………………… 334
14.1.1 三維化思維 ………………………………………………………………… 334
14.1.2 用戶必須移動 ……………………………………………………………… 335
14.1.3 要求手持設備 ……………………………………………………………… 335
14.1.4 近臉使用 …………………………………………………………………… 336
14.1.5 操作手勢 …………………………………………………………………… 336
14.1.6 啟動套用 …………………………………………………………………… 337
14.1.7 色彩運用 …………………………………………………………………… 337
14.2 移動 AR設計準則 …………………………………………………………………… 337
14.2.1 有用或有趣 ………………………………………………………………… 338
14.2.2 虛實融合必須有意義 ……………………………………………………… 338
14.2.3 移動限制 …………………………………………………………………… 338
14.2.4 心理預期與維度轉換 ……………………………………………………… 338
14.2.5 環境影響 …………………………………………………………………… 339
14.2.6 視覺效果 …………………………………………………………………… 340
14.2.7 UI設計 ……………………………………………………………………… 340
14.2.8 沉浸式互動 ………………………………………………………………… 340
14.3 移動 AR設計指南 …………………………………………………………………… 341
14.3.1 環境 ………………………………………………………………………… 342
14.3.2 用戶細節 …………………………………………………………………… 343
14.3.3 虛擬內容 …………………………………………………………………… 346
14.3.4 互動 ………………………………………………………………………… 352
14.3.5 視覺設計 …………………………………………………………………… 357
14.3.6 真實感 ……………………………………………………………………… 362
14.3.7 三維音效 …………………………………………………………………… 367
第 15章性能最佳化 ……………………………………………………………………………… 369
15.1 性能最佳化基礎 ………………………………………………………………………… 369
15.1.1 影響性能的主要因素 ……………………………………………………… 369
15.1.2 AR套用常用調試方法……………………………………………………… 371
15.1.3 AR套用性能最佳化的一般原則……………………………………………… 372
15.2 AR套用性能調試工具 ……………………………………………………………… 373
15.2.1 ARCore性能調試功能 ……………………………………………………… 373
15.2.2 Unity分析器 ………………………………………………………………… 375
15.2.3 幀調試器 …………………………………………………………………… 379
15.2.4 UPR分析器 ………………………………………………………………… 380
15.3 Unity分析器使用 …………………………………………………………………… 382
15.3.1 CPU使用情況分析器 ……………………………………………………… 382
15.3.2 渲染情況分析器 …………………………………………………………… 383
15.3.3 記憶體使用情況分析器 ……………………………………………………… 383
15.3.4 物理分析器 ………………………………………………………………… 384
15.3.5 音視頻分析器 ……………………………………………………………… 385
15.4 性能最佳化流程 ………………………………………………………………………… 385
15.4.1 收集運行數據 ……………………………………………………………… 387
15.4.2 分析運行數據 ……………………………………………………………… 388
15.4.3 確定問題原因 ……………………………………………………………… 390
15.5 渲染最佳化 ……………………………………………………………………………… 392
15.5.1 渲染流程 …………………………………………………………………… 392
15.5.2 CPU瓶頸 …………………………………………………………………… 393
15.5.3 GPU瓶頸 …………………………………………………………………… 396
15.6 代碼最佳化 ……………………………………………………………………………… 398
15.6.1 記憶體管理 …………………………………………………………………… 398
15.6.2 垃圾回收 …………………………………………………………………… 399
15.6.3 對象池 ……………………………………………………………………… 404
15.6.4 常見影響性能的代碼最佳化策略 …………………………………………… 405
15.7 ARCore最佳化設定 …………………………………………………………………… 407
15.7.1 UI/UX最佳化 ………………………………………………………………… 407
15.7.2 常用最佳化設定 ……………………………………………………………… 407
15.7.3 AR套用開發的一般注意事項 …………………………………………… 408
參考文獻…………………………………………………………………………………………… 410

相關詞條

熱門詞條

聯絡我們