AR 開發權威指南 : 基於 AR Foundation
內容描述
本書第1章介紹AR技術原理和AR Foundation概況,講述用Unity開發AR應用的環境配置及調試方法,
第2章對AR Foundation體系架構及關鍵組件、核心功能技術進行深入探討,
第3章講述平面檢測識別及參考點相關知識,
第4章介紹2D圖像與3D物體的檢測識別跟蹤知識,
第5章介紹人臉檢測、人臉表情捕捉、人臉特效實現的相關技術,
第6章介紹光照估計、環境光反射、AR陰影生成的相關知識,
第7章討論雲錨點、持久化存儲、AR多人體驗共享的相關知識,
第8章介紹攝像頭圖像獲取及自定義渲染管線的相關知識,
第9章討論2D、3D人體姿態估計及人形遮擋的相關知識,
第10章講述攝像機及手勢操作的相關知識,
第11章討論在AR應用中使用3D音、視頻的相關知識,
第12章講述開發AR應用的設計原則與設計指南,
第13章討論AR開發時的性能問題排查及優化技術。
本書適合AR Foundation初學者、Unity開發人員閱讀,
也可以作為大專院校相關專業師生的學慣用書以及培訓學校的教材。
目錄大綱
目錄
第1章AR Foundation入門1
1.1增強現實技術概述1
1.1.1 AR概述1
1.1.2 AR技術2
1.1.3 AR技術應用4
1.2 AR技術原理4
1. 2.1位置追踪4
1.2.2視覺校準6
1.2.3慣性校準7
1.2.4 3D重建7
1.3 AR Foundation概述8
1.3.1 AR Foundation與ARCore/ARKit 8
1 .3.2 AR Foundation支持的功能9
1.3.3 AR Foundation功能概述10
1.3.4 AR Foundation體系架構概述11
1.3.5基本術語11
1.4開發環境準備13
1.5 Android開發環境配置16
1.5.1插件導入16
1.5.2設置開發環境17
1.5.3搭建基礎框架19
1.5.4 AppController 21
1.5.5運行Helloworld 22
1.6連接設備調試應用24
1.6.1打開手機USB調試24
1.6.2設置手機Wi-Fi調試25
1.6.3調試AR應用26
1.7 iOS開發環境配置27
1.7.1插件導入27
1.7.2設置開發環境29
1.7. 3搭建基礎框架30
1.7.4 AppController 32
1.7.5生成並配置XCode工程34
1.7.6運行Helloworld 36
第2章AR Foundation基礎39
2.1 AR Foundation體系架構39
2.1. 1 AR子系統概念40
2.1.2 AR子系統使用40
2.1.3跟踪子系統41
2.2 AR Session & AR Session Origin 42
2.2.1 AR Session 42
2.2.2 AR Session Origin 44
2.3可跟踪對象46
2.3.1可跟踪對像管理器47
2.3.2可跟踪對象事件47
2.3.3管理可跟踪對象48
2.4 Session管理49
第3章平面檢測與參考點管理51
3.1平面管理51
3.1.1平面檢測51
3.1.2可視化平面52
3.1.3個性化渲染平面52
3.1.4開啟與關閉平面檢測55
3.1.5顯示與隱藏已檢測平面57
3.2射線檢測58
3.2.1射線檢測概念59
3.2.2射線檢測詳解60
3.3點雲與參考點61
3.3.1點雲61
3.3.2參考點63
3.4平面分類66
第4章圖像與物體檢測跟踪69
4.1 2D圖像檢測跟踪69
4.1.1圖像跟踪基本操作69
4.1.2圖像跟踪啟用與禁用71
4.1.3多圖像跟踪72
4.1.4運行時創建參考圖像庫76
4.1.5運行時切換參考圖像庫76
4 .1.6運行時添加參考圖像78
4.2 3D物體檢測跟踪80
4.2.1獲取參考物體空間特徵信息81
4.2.2掃描獲取物體空間特徵信息的注意事項83
4.2.3 AR Tracked Object Manager 84
4.2.4 3D物體識別跟踪基本操作85
4.2.5 3D物體跟踪啟用與禁用86
4.2.6多物體識別跟踪87
第5章人臉檢測跟踪90
5.1人臉檢測基礎90
5.1.1人臉檢測概念90
5.1.2人臉檢測技術基礎91
5.2人臉姿態與網格92
5.2.1人臉姿態92
5.2.2人臉網格94
5.3人臉區域與多人臉檢測97
5.3.1人臉區域97
5.3.2多人臉檢測100
5.4 BlendShapes 101
5.4.1 BlendShapes基礎102
5.4.2 BlendShapes技術原理103
5.4.3 BlendShapes的使用105
第6章光影效果108
6.1光照基礎108
6.1.1光源108
6.1.2光與材質的交互109
6.1.3 3D渲染110
6.2光照估計111
6.2.1 3D光照111
6.2.2光照一致性112
6.2.3光照估計操作112
6.3環境光反射115
6.3.1 Cubemap 115
6.3. 2 PBR渲染116
6.3.3 Reflection Probe 117
6.3.4紋理採樣過濾118
6.3.5使用Environment Probe 119
6.3.6 AR Environment Probe Manager 121
6.3.7性能優化123
6.4使用內置實時陰影124
6.4.1 ShadowMap技術原理124
6.4.2使用實時陰影125
6.4.3陰影參數詳解129
6.5 Projector陰影130
6.5.1 ProjectorShadow 131
6.5.2 BlobShadow 133
6.5.3參數詳解134
6.6 Planar陰影134
6.6.1數學原理135
6.6.2代碼實現136
6.7偽陰影140
6.7.1預先製作陰影141
6.7.2一種精確放置物體的方法142
第7章持久化存儲與多人共享145
7.1錨點145
7.1.1錨點概述145
7.1.2使用錨點146
7.1.3雲錨點146
7.2 ARWorldMap 148
7.2.1 ARWorldMap概述148
7.2.2 ARWorldMap實例149
7.3協作Session 152
7.3.1協作Session概述153
7.3.2協作Session實例156
7.3.3使用協作Session的
注意事項160
第8章攝像機圖像獲取與自定義渲染管線162
8.1獲取GPU圖像162
8.1.1獲取攝像頭原始圖像162
8.1.2獲取屏幕顯示圖像163
8.2獲取CPU圖像165
8.2.1 AR攝像機圖像數據流166
8.2.2從CPU中獲取攝像頭圖像166
8.3邊緣檢測原理173
8.3.1卷積173
8.3. 2 Sobel算子174
8.4 CPU圖像邊緣檢測實例175
8.5可編程渲染管線178
第9章肢體動捕與遮擋181
9.1 2D人體姿態估計181
9.1.1人體骨骼關鍵點檢測181
9.1.2使用2D人體姿態估計182
9.2 3D人體姿態估計185
9.2.1使用3D人體姿態估計的方法185
9.2.2使用3D人體姿態估計實例194
9.3人形遮擋195
9.3.1人形遮擋原理196
9.3.2人形遮擋實現198
第10章攝像機與手勢操作202
10.1場景操作202
10.1.1場景操作方法202
10.1.2場景操作實例203
10.2同時開啟前後攝像頭204
10.3環境交互207
10.3.1射線檢測207
10.3.2手勢檢測208
10. 4手勢控制210
10.4.1單物體操控210
10.4.2多物體場景操控單物體對象212
10.4.3多物體操控215
10.4.4物體操控模塊218
第11章3D音視頻220
11.1 3D音頻220
11.1.1 3D聲場原理221
11.1.2聲波與雙耳間的互動222
11.1.3頭部關聯傳導函數223
11.1.4頭部轉動與聲音位置223
11.1.5早期反射和混音223
11.1.6聲音遮擋224
11.1.7指向性225
11.1.8 Ambisonics 225
11.1.9下載Resonance Audio SDK 226
11.1. 10導入SDK 226
11.1.11 Resonance Audio components 226
11.1.12使用共振音頻227
11.1.13 Room effects 230
11.1.14 Resonance Audio API 231
11.2 3D視頻232
11.2.1 Video Player組件232
11.2.2 3D視頻播放實現234
第12章設計原則238
12. 1移動AR帶來的挑戰238
12.1.1用戶必須移動238
12.1.2要求手持設備239
12.1.3要求必須將手機放在臉前239
12.1.4操作手勢239
12. 1.5用戶必須打開App 240
12.2移動AR設計準則240
12.2.1有用或有趣240
12.2.2虛擬和真實的混合必須有意義240
12.2.3移動限制241
12.2 .4心理預期與維度轉換241
12.2.5環境影響241
12.2.6視覺效果242
12.2.7 UI設計242
12.2.8沉浸式交互243
12.3移動AR設計指南243
12 .3.1環境244
12.3.2用戶細節245
12.3.3虛擬內容247
12.3.4交互252
12.3.5視覺設計256
12.3.6真實感260
第13章性能優化264
13.1移動平台性能優化基礎264
13.1.1影響性能的主要因素264
13.1.2 AR常用調試方法265
13.1.3 Unity Profiler 266
13.1.4 Frame Debugger 270
13.2 Unity Profiler使用271
13.2.1 CPU使用情況分析器272
13.2.2渲染情況分析器274
13.2. 3內存使用情況分析器274
13.2.4物理分析器275
13.2.5音視頻分析器276
13.2.6 UI分析器277
13.2.7全局光照分析器277
13.3性能優化的一般步驟278
13.3.1收集運行數據278
13.3.2分析運行數據279
13.3.3確定問題原因281
13.4移動設備性能優化283
13.5渲染優化284
13.5.1渲染流程284
13.5.2 CPU瓶頸285
13.5.3 GPU瓶頸288
13.6代碼優化289
13.6.1內存管理289
13.6.2垃圾回收290
13.6.3對像池293
13.7 UI優化294
13.7.1 UI Drawcall優化295
13.7.2動靜分離295
13.7.3圖片優化296
參考文獻298
作者介紹
汪祥春
計算機科學與技術專業碩士,全國信息技術標準化技術委員會、
計算機圖形圖像處理及環境數據表示分技術委員會虛擬現實與增強現實標準工作組成員,中國增強現實核心技術產業聯盟成員。
現從事AR技術研發及管理工作。
擁有深厚的軟件工程專業背景和省部級科技項目實施管理經驗,CSDN博客專家。
擁有十餘年軟件開發及項目管理經驗。