AR Foundation 增強現實開發實戰 (ARCore版)
汪祥春
買這商品的人也買了...
-
$480$379 -
$940$700 -
$450$356 -
$680$537 -
$1,000$790 -
$714$678 -
$620$490 -
$690$345 -
$620$490 -
$356CKA/CKAD 應試指南 : 從 Docker 到 Kubernetes 完全攻略
-
$540$427 -
$890$703 -
$654$621 -
$500Qt Creator 快速入門, 4/e
-
$454HTML5 + Vue.js 3.x 從入門到精通 (視頻教學版)
-
$413物聯網鴻蒙系統App開發
-
$301邊緣計算
-
$458Unity 3D可視化VR應用開發實戰(零代碼版·微課視頻版)
-
$485VR/AR 應用開發 (Unity 3D)
-
$600$300 -
$1,200$948 -
$1,080$853 -
$880$748 -
$580$406 -
$714$678
商品描述
本書基於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開發人員、程序員、科研人員,也可以作為高校、大專院校相關專業師生的學慣用書,以及培訓學校的培訓教材。
目錄大綱
目 錄
CONTENTS
基 礎 篇
第 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