本書共分11章,主要講解了VR和AR的開發(fā)和應用,主要內容為:增強現(xiàn)實以及AR工具介紹,Unity開發(fā)環(huán)境搭建及Vuforia開發(fā)環(huán)境搭建,Vuforia核心功能,如掃描圖片、圓柱體識別、多目標識別、文字識別、云識別、物體識別和案例等,EasyAR開發(fā)知識,基于Unity開發(fā)VR,Cardboard VR開發(fā),三星Gear VR應用開發(fā),HTC Vive平臺VR開發(fā)。通過兩大綜合案例Gear VR游戲—Breaker和科普類AR&VR應用—星空探索,為讀者全面展示AR/VR案例開發(fā)的過程,使讀者盡快進入實戰(zhàn)角色。
本書適合程序員、AR/VR開發(fā)者、AR/VR愛好者,以及大專院校相關專業(yè)的師生學習用書和培訓學校的教材。
介紹了AR開發(fā)中所廣泛使用的Vuforia與EasyAR引擎的使用,并對Oculus的開發(fā)流程進行了講解
介紹了基于Cardboard VR、Gear VR與HTC Vive設備的開發(fā)步驟
后兩章分別給出了一個完整的VR游戲案例與一個AR、VR相結合的科普類應用案例。幫助讀者學以致用
吳亞峰,畢業(yè)于北京郵電大學,后留學澳大利亞臥龍崗大學取得碩士學位。1998年開始從事Java應用的開發(fā),有10多年的Java開發(fā)與培訓經驗。主要的研究方向為OpenGL ES、手機游戲、Java EE以及搜索引擎。同時為手機游戲、Java EE獨立軟件開發(fā)工程師,現(xiàn)任職于華北理工大學并兼任華北理工大學以升大學生創(chuàng)新實驗中心移動及互聯(lián)網(wǎng)軟件工作室負責人。十多年來不但指導學生多次制作手游作品獲得多項學科競賽大獎,還為數(shù)十家知名企業(yè)培養(yǎng)了上千名高級軟件開發(fā)人員。曾編寫過《OpenGL ES 3.0游戲開發(fā)(上下卷)》、《Unity 5.X 3D游戲開發(fā)技術詳解與典型案例》、《Unity 4 3D開發(fā)實戰(zhàn)詳解》、《Unity游戲案例開發(fā)大全》、《Android應用案例開發(fā)大全》(第1版、第二版及第三版)、《Android游戲開發(fā)大全》(第1版、第二版及第三版)等多本暢銷技術書籍。2008年初開始關注Android平臺下的3D應用開發(fā),并開發(fā)出一系列優(yōu)質的Android應用程序與3D游戲。
第1章 初見增強現(xiàn)實 1
1.1 增強現(xiàn)實簡介 1
1.2 AR工具簡介 1
1.3 Unity開發(fā)環(huán)境搭建 2
1.3.1 Windows平臺下Unity的下載
及安裝 2
1.3.2 Mac OS平臺下Unity的下載及安裝 6
1.3.3 目標平臺的SDK與Unity集成 9
1.4 Vuforia開發(fā)環(huán)境的搭建 12
1.5 本章小結 16
1.6 習題 16
第2章 Vuforia核心功能介紹 17
2.1 掃描圖片—Image Target 17
2.2 圓柱體識別—Cylinder Targets 18
2.2.1 圖片標準 18
2.2.2 如何獲取實際物體的具體
參數(shù) 18
2.2.3 如何制作自定義的商標 19
2.2.4 如何達到最好的效果 20
2.3 多目標識別—MultiTargets 20
2.3.1 多目標識別原理 21
2.3.2 對多目標識別的選擇建議 21
2.4 標記框架—Frame Markers 21
2.5 文字識別—Text Recognition 22
2.5.1 可識別字體格式 22
2.5.2 使用文本識別 22
2.5.3 應用過濾器 23
2.6 用戶自定義目標—User Defined Targets 23
2.6.1 適合被追蹤的場景和物體 24
2.6.2 介紹用戶自定義目標預
制件 24
2.7 虛擬按鈕—Virtual Button 24
2.7.1 按鈕的設計以及布局 24
2.7.2 虛擬按鈕的相關特性 25
2.7.3 虛擬按鈕的擺放 25
2.8 云識別—Cloud Recognition 26
2.8.1 云識別的優(yōu)勢以及注意
事項 26
2.8.2 云識別的兩種管理方式 26
2.9 智能地形—SmartTerrain 28
2.9.1 智能地形子對象 28
2.9.2 使用范圍及設備要求 29
2.9.3 智能地形工作原理 29
2.10 物體識別—Object Recognition 30
2.10.1 可識別物體 30
2.10.2 下載Vuforia掃描儀 31
2.10.3 掃描3D物體步驟 31
2.11 本章小結 33
2.12 習題 33
第3章 Vuforia核心功能官方案例
詳解 35
3.1 官方案例下載及ARCamera參數(shù)
講解 35
3.2 掃描圖片官方案例詳解 37
3.2.1 預制件通用腳本介紹 38
3.2.2 運行效果 39
3.2.3 開發(fā)流程 40
3.3 圓柱識別案例詳解 43
3.3.1 運行效果 43
3.3.2 開發(fā)流程 43
3.4 多目標識別案例詳解 47
3.4.1 運行效果 48
3.4.2 開發(fā)流程 48
3.5 標記框架案例詳解 53
3.5.1 運行效果 53
3.5.2 開發(fā)流程 53
3.6 文字識別案例詳解 54
3.6.1 運行效果 54
3.6.2 開發(fā)流程 55
3.7 自定義目標識別案例詳解 58
3.7.1 運行效果 59
3.7.2 開發(fā)流程 59
3.8 虛擬按鈕案例詳解 63
3.8.1 運行效果 63
3.8.2 開發(fā)流程 63
3.9 云識別案例詳解 69
3.9.1 運行效果 69
3.9.2 開發(fā)流程 69
3.10 智能地形案例 75
3.10.1 基礎案例 75
3.10.2 Penguin案例 78
3.11 3D物體識別案例詳解 80
3.11.1 運行效果 80
3.11.2 開發(fā)流程 81
3.12 本章小結 84
3.13 習題 84
第4章 EasyAR概述 85
4.1 EasyAR基礎知識講解 85
4.1.1 EasyAR基本介紹 85
4.1.2 EasyAR SDK下載及官方案例導入 85
4.2 EasyAR圖片識別功能 89
4.2.1 案例效果 89
4.2.2 案例詳解 89
4.3 EasyAR視頻播放功能 93
4.3.1 案例效果 93
4.3.2 案例詳解 94
4.4 本章小結 99
4.5 習題 99
第5章 基于Unity開發(fā)的VR設備
初探 101
5.1 基于Unity開發(fā)的VR設備 101
5.1.1 Oculus Rift 101
5.1.2 Microsoft HoloLens全息
眼鏡 104
5.1.3 Gear VR 104
5.1.4 PlayStation VR 105
5.1.5 HTC Vive 105
5.2 Oculus Rift環(huán)境配置與簡要介紹 105
5.2.1 Oculus Rift安裝 106
5.2.2 Oculus系統(tǒng)托盤 108
5.2.3 Oculus PC SDK開發(fā)準備 109
5.2.4 游戲手柄的使用 110
5.2.5 Unity整合包簡單介紹 110
5.3 移動控制 113
5.3.1 基礎知識 113
5.3.2 移動控制的案例 115
5.4 準星的開發(fā) 118
5.4.1 基礎知識 119
5.4.2 準星開發(fā)案例 119
5.5 菜單界面的開發(fā) 123
5.5.1 場景的搭建 124
5.5.2 C#腳本的開發(fā) 126
5.6 綜合案例 129
5.6.1 場景的搭建 130
5.6.2 著色器及相關腳本的開發(fā) 132
5.7 本章小結 137
5.8 習題 138
第6章 Cardboard VR開發(fā) 139
6.1 Cardboard SDK基本介紹 139
6.1.1 Cardboard SDK的下載與
導入 140
6.1.2 SDK官方預制件 141
6.1.3 SDK中的腳本文件 143
6.2 Cardboard SDK官方案例 144
6.3 一個綜合案例 148
6.3.1 獲取藍牙手柄鍵值 149
6.3.2 場景一的搭建與開發(fā) 150
6.3.3 場景二的搭建與開發(fā) 153
6.4 本章小結 156
6.5 習題 156
第7章 三星Gear VR應用開發(fā) 157
7.1 Gear VR概覽 157
7.1.1 初識Gear VR 157
7.1.2 Oculus Home 158
7.2 開發(fā)前的準備 159
7.2.1 下載Oculus Mobile SDK 159
7.2.2 獲取Oculus簽名文件 160
7.2.3 相關軟硬件的基本要求 161
7.3 Oculus Mobile SDK概述 162
7.3.1 SDK文件目錄介紹 162
7.3.2 腳本功能介紹 163
7.3.3 OVRCameraRig腳本
介紹 163
7.3.4 外設輸入接口開發(fā) 165
7.3.5 場景加載時的淡入效果
腳本 169
7.4 游戲性能問題 170
7.4.1 硬件介紹以及降低性能的
因素 170
7.4.2 開發(fā)中需要注意的問題 171
7.5 一個簡單的案例 171
7.5.1 案例功能簡介 172
7.5.2 VR場景搭建 172
7.5.3 UGUI事件監(jiān)聽系統(tǒng) 174
7.5.4 追蹤光標的實現(xiàn) 176
7.5.5 觸摸板事件監(jiān)聽 177
7.5.6 部署運行APK的步驟 178
7.6 本章小結 179
7.7 習題 179
第8章 HTC Vive 平臺VR開發(fā)簡介 181
8.1 HTC Vive基本介紹 181
8.1.1 設備的安裝 183
8.1.2 Viveport和手機通知 186
8.2 SDK基本介紹 188
8.2.1 下載Steam VR 188
8.2.2 Vive SDK的下載及導入 189
8.2.3 SDK中的官方預制件 190
8.3 SDK案例講解 192
8.4 SDK腳本講解 194
8.4.1 SteamVR_GazeTracker腳本詳解 194
8.4.2 SteamVR_LaserPointer腳本詳解 196
8.4.3 SteamVR_TestTrackedCamera腳本詳解 198
8.4.4 SteamVR_TrackedController腳本詳解 199
8.5 本章小結 201
8.6 習題 201
第9章 VR與AR創(chuàng)新風口 203
9.1 虛擬現(xiàn)實技術 203
9.2 增強現(xiàn)實技術 206
9.3 混合現(xiàn)實技術 209
9.4 本章小結 211
9.5 習題 211
第10章 GEAR VR游戲—
Breaker 213
10.1 背景以及功能概述 213
10.1.1 游戲背景概述 213
10.1.2 游戲功能簡介 213
10.2 游戲的策劃及準備工作 215
10.2.1 游戲的策劃 215
10.2.2 使用Unity開發(fā)游戲前的
準備工作 216
10.3 游戲的架構 218
10.3.1 各個場景的簡要介紹 218
10.3.2 游戲架構簡介 219
10.4 Gear VR開發(fā)環(huán)境的搭建 219
10.5 游戲菜單場景的開發(fā) 220
10.5.1 場景的搭建及相關設置 221
10.5.2 各對象的腳本開發(fā)及相關
設置 223
10.6 關卡場景的開發(fā) 228
10.6.1 場景的搭建 228
10.6.2 攝像機設置及腳本開發(fā) 230
10.6.3 小球的腳本開發(fā) 234
10.6.4 插件的使用 237
10.6.5 場景機關的開發(fā) 240
10.6.6 提示面板的開發(fā) 243
10.7 游戲的優(yōu)化與改進 245
第11章 科普類AR&VR應用—
星空探索 247
11.1 項目背景以及功能概述 247
11.1.1 項目開發(fā)背景概述 247
11.1.2 軟件功能簡介 248
11.2 軟件的策劃及準備工作 250
11.2.1 軟件的策劃 250
11.2.2 資源的準備工作 251
11.3 軟件的架構 252
11.3.1 功能結構介紹 252
11.3.2 各個腳本簡要介紹 253
11.4 天文學基礎以及相關計算公式 255
11.4.1 重要天文坐標系 255
11.4.2 行星、月球、深空天體
簡介 257
11.4.3 行星運行軌跡計算 258
11.4.4 月球運行軌跡計算 261
11.4.5 儒略日計算 264
11.5 觀察星空模塊的開發(fā) 265
11.5.1 數(shù)據(jù)的存儲與讀取技術的
開發(fā) 265
11.5.2 星座以及深空天體相關內容
的繪制 269
11.5.3 八大行星以及月球的
繪制 272
11.5.4 深空天體介紹場景的
開發(fā) 276
11.5.5 天體及連線著色器的
開發(fā) 278
11.6 太陽系普通模式的開發(fā) 279
11.6.1 太陽系場景的搭建 279
11.6.2 行星及衛(wèi)星腳本開發(fā) 280
11.6.3 太陽特效及小行星帶的
開發(fā) 281
11.7 太陽系增強現(xiàn)實(AR)模式的
開發(fā) 283
11.7.1 AR開發(fā)前期準備 284
11.7.2 場景搭建過程 285
11.7.3 攝像機自動對焦腳本的
開發(fā) 287
11.8 太陽系虛擬現(xiàn)實(VR)模式的
開發(fā) 288
11.8.1 CardBoard SDK使用 288
11.8.2 構建應用并部署到Android
設備 289
11.8.3 將太陽系場景開發(fā)成VR
模式 289
11.9 藍牙搖桿使用及其他設置功能的
實現(xiàn) 290
11.9.1 藍牙搖桿控制腳本開發(fā) 290
11.9.2 VR開關、搖桿靈敏度、
音效及時間縮放因子的
開發(fā) 291
11.9.3 主菜單腳本的開發(fā) 291
11.9.4 陀螺儀腳本開發(fā) 294
11.10 本章小結 295
參考文獻 296