本書是一本適合AR開發(fā)者的實戰(zhàn)案頭書,是可快速熟悉各平臺AR 項目開發(fā)的實戰(zhàn)教程,從中可以學習AR在市場營銷、教育、工業(yè)培訓和 游戲等領域的商業(yè)應用。
本書以逐步教學的方式詳解如何使用Unity 3D、Vuforia、ARToolkit、 Microsoft 混合現實 HoloLens、Apple ARKit 和 Google ARCore 在移動智能設 備和可穿戴設備上構建激動人心的AR應用程序,讓你快速掌握各種AR 開發(fā)關鍵技術與知識,助你開發(fā)出自己的實用AR項目。
本書適合想要在各平臺上開發(fā)AR項目的開發(fā)人員、設計人員等從業(yè) 者,AR技術的研究者、相關專業(yè)師生,以及對AR技術感興趣的人員 閱讀。
I關于作者
Jonathan Linowes是沉浸式媒體獨立工作室ParkerhUl現實實驗室的負責人#他是名副其實 的3D圖像愛好者、Unity開發(fā)者,成功的企業(yè)家與老師。他擁有雪城大學的藝術學位與麻省理工 學院媒體實驗室的碩士學位。他參與創(chuàng)辦了包括Autodesk公司在內的幾家成功的公司,并擔任 技術負責人的職務#同時他還是Pakt出版社出版的Uni# Virtual Reality Projects與Cardboard VR Projects for Android 的作者#
Kryshan Babilinski是一位經驗非常豐富的聯合開發(fā)人員,擁有大量豐富的3D設計知識#自 2015年以來,他一直從事開發(fā)專業(yè)的A#VR應用#他領導一個Unity開發(fā)團隊Babilin Applica- tions公司,致力于開源代碼的開發(fā)與從事Unity社區(qū)的工作#現在Krystian帶領著Parkerhtl現實 實驗室研發(fā)了一款名為Power Solitairy VR的多平臺虛擬現實游戲#
I關于審校者
Micheai Lanham是一位擁有petroWEB認證的解決方案架構師,目前居住在加拿大阿爾伯塔 省的卡爾加里#在以往的職業(yè)生涯中,他開發(fā)了集成GIS應用程序,該應用具有高級機器學習與 空間搜索功能。他是一名專業(yè)的游戲開發(fā)愛好者,做桌面游戲與移動游戲已經超過15年了# 2007年Micheai接觸到了 Unity 3D,從那時起,他便成了一名程序發(fā)燒友、顧問,以及多個Unity 游戲和圖形項目的經理# Micheai 編寫的 Augmented Reality Game Development 與 Game Audit Develoj- mens with Unit# 5. p也由P—kt出版社出版#
關于作者
關于審校者
原書前言
第1章增強你的世界
1.1 什么是AR
1.2AR 與 VR
1.3AR如何工作
1.3. 1基于手持移動設備的AR
1.3.2基于光學眼鏡的AR
1.3.3基于標識(Target- based)的
AR
1.3.43D空間建圖(映射)
1.3.5利用空間建圖(映射)開發(fā)
AR
1.3.6可穿戴AR的輸入
1.3.7其他AR顯示技術
1.4AR標識類型
1.4.1 黑白標識(Marker)
1.4. 2 編碼標識
1.4. 3 圖像標識(Image Marker)
1.4. 4 多目標標識(Multi-Targets)
1.4.5文本識別
1.4.6簡單形狀標識
1.4.7物體識別
1.4.8空間地圖
1.4.9基于地理位置追蹤(GPS-Based
Tracking)
1.5關于AR的技術問題
1.5.1 視場角(Field of View)
1.5.2視覺感知18
1.5.3 焦點19
1.5.4分辨率與刷新率 19
1.5.5人體工程學 19
1.6 AR的應用20
1.6.1企業(yè)營銷方向 20
1.6.2教育方向 20
1.6.3工業(yè)培訓方向 20
1.6.4零售方向20
1.6.5游戲方向 21
1.6.6其他方向 21
1.7本書的重點21
1.8 本章小結23
第2章系統(tǒng)設置24
2. 1 安裝 Unity 24
2.1.1安裝要求25
2.1.2下載并安裝25
2.2 Unity 介紹27
2.2. 1 Unity 編輯器28
2.2.2對象與層次 30
2.2.3場景編輯 30
2.2.4游戲開發(fā) 35
2.3 AR中攝像頭的使用38
2.4 獲取與使用Vuforie 40
2. 4. 1 安裝 Vuforie 41
2.4.2VuforiaConfiguration 設置 43
2.4. 3 使用 Vuforia 創(chuàng)建 demo 45
2.5 獲取與使用ARToolkit 51
2.5. 1 安裝 ARToolkit 52
2.5.2導入 ARToolkit 資源包 53
2.5.3ARToolkit 場景設置 54
2.5. 4 快速構建 ARToolkit demo 58
2.6 本章小結61
第3章構建你的應用程序63
3.1識別開發(fā)平臺與工具包63
3.2 Unity構建與運行64
3. 3 針對 Android 平臺 68
3.3.1安裝Java開發(fā)工具包(JDK)……69
3.3.2安裝 Android SDK 71
3. 3. 3安裝USB設備、調試與連接 ……73
3. 3. 4 配置Unity的外部工具 74
3.3. 5 配置Android的Unity環(huán)境與
播放器(Player) 75
3.3.6構建與運行77
3. 3. 7排除問題 78
3.3. 8 使用 Google ARCore for Unity 78
3.4針對iOS平臺82
3. 4. 1獲得 Apple ID 83
3.4.2安裝 Xcode 83
3.4.3配置iOS的Unity播放器 83
3.4.4ARToolkit 播放器設置 86
3.4.5構建與運行 86
3.4.6排除問題 86
3. 4. 7使用 Apple ARKit for Unity 89
3.5針對微軟 HoloLens 94
3. 5.1獲得Microsoft開發(fā)人員賬戶95
3.5.2啟用 Windows 10 Hyper-V 95
3. 5. 3安裝 Visual Studio 96
3.5.4安裝 HoloLens 模擬器 99
3. 5. 5 設置與配對HoloLens設備進行
開發(fā)99
3.5.6配置Unity的外部工具 101
3. 5. 7 配置 UWP holographic 的 Unity 平臺
與播放器1。2
3.5. 8 HoloLens 的 Vuforia 設置104
3.5.9構建與運行106
3.5.10Unity中的全息模擬器 107
3.5.11MixedRealityToolkit for Unity 108
3.6本章小結108
第4章增強名片109
4.1規(guī)劃你的AR開發(fā)109
4.1.1項目目標 110
4.1.2 AR 標識111
4.1.3圖像資源 111
4.1.4目標設備與開發(fā)工具113
4.2創(chuàng)建工程(Vuforia) 114
4.3建立圖像標識115
4.3.1在場景中添加圖像標識預制體•,•115 4.3.2創(chuàng)建標識數據庫 115
4.3.3將數據庫導入Unity 117
4.3.4 激活與運行117
4.3.5是否啟用擴展跟蹤 118
4.4什么是最優(yōu)的標識圖像118
4.5添加對象120
4.6構建與運行122
4.7了解大小比例123
4.7.1現實生活中的大小比例 123
4.7.2虛擬大小比例與Unity 124
4.7.3標識比例與對象比例125
4. 8無人機動畫126
4.8.1飛行葉片是如何旋轉的127
4.8.2添加空閑動畫128
4.8.3添加飛行動畫 131
4. 8.4連接動畫控制器中的片段 134
4.8.5播放、構建與運行 135
4.9 在iOS設備上構建135
4.9. 1創(chuàng)建工程 135
4. 9. 2添加圖像標識135
4.9.3添加對象 136
4.9.4構建設置 136
4. 9.5構建與運行136
4.9.6使用Apple ARKit構建與運行…… 137
4. 10 在HoloLens設備上構建 138
4.10.1創(chuàng)建工程 138
4.10.2添加圖像標識139
4.10.3添加對象139
4.10.4構建設置140
4.10.5構建與運行140
4.11 使用 ARToolkit 構建141
4.11.1創(chuàng)建工程 14
4.11.2準備圖像標識141
4.11.3添加圖像標識 143
4.11.4添加對象144
4.11.5構建與運行145
4.12 本章小結146
第5章AR太陽系147
5.1項目計劃148
5.1.1用戶體驗 148
5.1.2AR 標識148
5.1.3圖像資源 148
5.1.4目標設備與開發(fā)工具149
5.2創(chuàng)建工程150
5. 2.1創(chuàng)建初始工程150
5.2.2設置場景與目錄文件夾 151
5.2.3使用標識目標151
5.2. 4創(chuàng)建一個太陽系(SolarSystem)
容器153
5.3創(chuàng)建地球154
5. 3.1創(chuàng)建地球模型155
5.3.2旋轉地球 156
5.3.3添加音頻 157
5.4場景光照158
5.4.1創(chuàng)建自然光 159
5.4.2 夜晚紋理 159
5.5創(chuàng)建地球■月球系統(tǒng) 160
5.5.1創(chuàng)建容器對象160
5.5.2創(chuàng)建月球模型 160
5.5.3定位月球 161
5.6Unity C#快速入門 163
5.7月球軌道動畫164
5.7.1添加月球軌道164
5. 7. 2添加全球時間表 166
5.8繞太陽旋轉168
5.8.1以太陽為中心,而不是地球 …… 168
5.8.2創(chuàng)建太陽 168
5.8.3地球圍繞太陽168
5.8.4傾斜地球的軸線169
5.9添加其他行星171
5. 9.1使用紋理創(chuàng)造行星 172
5.9.2添加土星環(huán) 173
5.9.3切換視圖 174
5.10 使用 VuMark 標識(Vuforia) …176
5.10.1關聯標識與行星 177
5.11 創(chuàng)建主速率UI 179
5.11.1添加UI畫布與按鈕 179
5.11.2時間事件處理器181
5.11.3觸發(fā)輸入事件 181
5. 12構建與運行182
5. 12. 1 導出 SolarSystem 軟件包 182
5. 12. 2 發(fā)布到 Android 設備-Vuforia …… 183
5. 12. 3 發(fā)布到 iOS 設備-Vuforia 183
5.12.4發(fā)布到 HoloLens 設備-Vuforia , , , 183
5.12.5構建與運行 ARToolkit 184
5. 13無標識構建與運行188
5.13.1 使用ARKit構建與運行iOS …… 188
5.13. 2 使用 MixedRealityToolkit 在 HoloLens
構建與運行192
5. 14 本章小結195
第6章更換漏氣輪胎197
6.1項目計劃197
6.1. 1 項目目標 198
6.1.2用戶體驗 199
6.1.3 AR 標識199
6.1.4圖像資源與數據 200
6.2軟件設計模式201
6.3 創(chuàng)建工程203
6.4創(chuàng)建UI (視圖)204
6.4.1創(chuàng)建說明畫布204
6.4.2創(chuàng)建導航面板205
6.4.3創(chuàng)建內容面板209
6.4.4 添加標題文本211
6.4.5添加正文文本211
6.5創(chuàng)建說明控制器211
6.5.1用UI連接控制器 213
6.6創(chuàng)建說明數據模型213
6.6.1 InstructionStep 類 213
6.6. 2 InstructionModel 類 215
6.6. 3將模型與控制器和U相連216
6. 7加載CSV文件數據 218
6.8抽象UI元素 219
6.8. 1 將 InstructionEvent 添加到
控制器219
6.8. 2 重構 InstructionsController 220
6. 8. 3 定義 InstructionElement 220
6.8.4在Unity中鏈接UI元素 222
6.9添加圖片內容222
6. 9. 1將圖片添加到說明Content
面板223
6. 9. 2 將圖片數據添加到InstructionStep
模型223
6.9.3將圖片文件導入項目 224
6.10添加視頻內容225
6. 10. 1將視頻添加到說明Content
面板225
6.10. 2添加視頻播放器與渲染紋理•••••• 225 6. 10. 3 將視頻數據添加到InstructionStep
模型226
6. 11添加滾動視圖227
6. 12本章小結228
第7章AR使用說明書230
7.1 用 Vuforia 創(chuàng)建 AR 項目 231
7.2 在AR模式之間切換232
7.3使用用戶定義標識234
7.3.1添加用戶定義的標識構建器•••••• 234
7.3.2添加圖像標識235
7.3.3添加捕捉按鈕236
7.3.4將捕捉按鈕連接UDT捕捉事件 …237
7.4向AR提示添加可視助手 239
7.4. 1添加光標 239
7.4.2添加注冊標識240
7.4.3跟蹤期間刪除AR提示 240
7.4.4保證良好跟蹤效果 243
7.5整合增強的內容245
7.5. 1閱讀AR圖像指示 245
7.5.2創(chuàng)建AR的UI元素246
7.5.3 顯示增強圖像247
7.6制作增強圖像247
7.7在AR中包含說明面板252
7.8使用ARKit進行空間錨定253
7.8. 1 創(chuàng)建 ARKit 工程254
7.8.2 準備場景 255
7.8.3全息指導手冊261
7.9 本章小結269
第8章基于AR的室內裝飾271
8.1項目計劃272
8. 1. 1 用戶體驗 272
8.1.2圖像資源 272
8.1. 3用戶界面元素273
8.1.4 圖標按鈕 273
8.2創(chuàng)建工程與場景274
8.2.1創(chuàng)建新的Unity項目 274
8.2. 2 開發(fā) HoloLens 版本275
8.2.3創(chuàng)建默認圖片275
8.3關于混合現實工具包輸入
管理器277
8.3.1凝視管理器277
8.3.2輸入管理器278
8.4創(chuàng)建工具欄框架279
8.4. 1 創(chuàng)建工具欄279
8.4. 2 PictureController 組件 279
8.4. 3 PictureAction 組件 280
8.4.4 設置動作 281
8.5 Move工具進行空間建圖 282
8. 5.1 添加Move按鈕與腳本 282
8.5.2使用空間建圖進行定位 284
8.5.3理解表面平面286
8.6使用手勢識別器縮放工具287
8. 6.1添加縮放按鈕與腳本288
8.6.2縮放圖片 290
8.7支持取消操作292
8.8抽象選擇菜單UI 293
8.9添加相框菜單295
8. 9. 1在 PictureController 中的
SetFrame 296
8. 9. 2Frame Menu 對象與組件 297
8.9.3相框選項對象297
8.9.4激活相框菜單299
8. 9. 5支持在 PictureController 中取消 …299
8. 10添加圖片菜單300
8. 10. 1 在 PictureController 中的
Setimage 300
8. 10. 2Image Menu 對象與組件301
8.10.3圖像選項對象 303
8.10.4激活圖片菜單304
8.10.5調整圖像寬高比 305
8. 11添加與刪除帶相框的圖片306
8. 11. 1 工具欄中的Add與Delete
按鈕306
8. 11.2GameController 307
8. 11. 3 PictureController 中的 Add 與 Delete
命令308
8.11.4處理空場景309
8. 12 UI 反饋309
8. 12. 1單擊音頻反饋 309
8.12.2單擊動畫反饋310
8.13 使用 ARKit 構建 iOS 311
8. 13. 1使用ARKit創(chuàng)建工程與場景…… 312
8.13.2使用觸摸事件代替手勢313
8. 14 使用Vuforia構建移動AR 318
8.14.1使用Vuforia創(chuàng)建工程與場景 …318
8.14.2設置圖像標識319
8. 14. 3 將 DefaultPicture 添加到場
景中319
8.14.4 GameController 320
8.14.5使用觸摸事件代替手勢320
8.15 本章小結322
第9章投球游戲324
9.1 游戲計劃324
9.1.1用戶體驗 325
9.1.2游戲組件 325
9.2創(chuàng)建工程326
9.2.1創(chuàng)建初始工程326
9. 2. 2設置場景與文件夾 327
9.2.3導入 BallGameArt 軟