VR與AR開(kāi)發(fā)高級(jí)教程 基于Unity 第2版
定 價(jià):89 元
- 作者:吳亞峰 于復(fù)興
- 出版時(shí)間:2020/10/1
- ISBN:9787115542878
- 出 版 社:人民郵電出版社
- 中圖法分類:TP317.6
- 頁(yè)碼:396
- 紙張:
- 版次:02
- 開(kāi)本:16開(kāi)
本書(shū)主要介紹AR與VR應(yīng)用的開(kāi)發(fā)流程。本書(shū)共11章。第1章主要介紹了AR應(yīng)用開(kāi)發(fā)的基礎(chǔ)知識(shí),第2~4章介紹了AR開(kāi)發(fā)中所廣泛使用的Vuforia與ARCore引擎,第5章介紹基于小米VR的應(yīng)用開(kāi)發(fā),第6~8章分別介紹了基于HTC VIVE與Leap Motion設(shè)備的應(yīng)用開(kāi)發(fā)步驟,第9章介紹了當(dāng)前VR與AR的創(chuàng)新風(fēng)口,最后兩章分別給出了一個(gè)完整的VR游戲案例與一個(gè)結(jié)合AR、VR的科普類應(yīng)用案例。
本書(shū)適合VR、AR應(yīng)用開(kāi)發(fā)方面的專業(yè)人士閱讀。
1.內(nèi)容豐富,由淺入深。
本書(shū)在內(nèi)容的組織上本著“起點(diǎn)低,終點(diǎn)高”的原則,覆蓋了AR/VR開(kāi)發(fā)的相關(guān)知識(shí)、各種軟件開(kāi)發(fā)工具包(Software Development Kit,SDK),以及案例。為了讓讀者掌握基礎(chǔ)知識(shí),并學(xué)習(xí)一些實(shí)際項(xiàng)目的開(kāi)發(fā)經(jīng)驗(yàn),本書(shū)最后給出兩個(gè)完整的案例。
2.結(jié)合經(jīng)典案例展開(kāi)討論并展示大量編程技巧。
為了講解知識(shí)點(diǎn),書(shū)中給出了豐富的案例。書(shū)中所有的案例均是根據(jù)作者多年的開(kāi)發(fā)心得進(jìn)行設(shè)計(jì)的。同時(shí),書(shū)中還給出了作者多年來(lái)積累的很多編程技巧與心得,具有一定的參考價(jià)值。
3.即可作為教材,也可作為自學(xué)讀物。
本書(shū)既適合作為高等院校相關(guān)專業(yè)的教材,也適合作為自學(xué)參考書(shū)。前9章末尾有配套的習(xí)題,便于教師安排學(xué)生課下的復(fù)習(xí)與實(shí)踐。后兩章分別給出了一個(gè)完整的VR游戲案例與一個(gè)AR、VR相結(jié)合的科普類應(yīng)用案例。幫助讀者學(xué)以致用,也可以作為課程設(shè)計(jì)的內(nèi)容。
隨著VR與AR技術(shù)逐步走向產(chǎn)品化、產(chǎn)業(yè)化,在VR與AR應(yīng)用的開(kāi)發(fā)中,若要使用戶體驗(yàn)從能用提升到易用,從不適提升到舒適,再提升到沉浸式,既要提升技術(shù),又要優(yōu)化解決方案。本書(shū)循序漸進(jìn)地介紹了開(kāi)發(fā)VR與AR應(yīng)用的基礎(chǔ)知識(shí)、核心工具,并結(jié)合具體的項(xiàng)目展示了開(kāi)發(fā)流程,有助于讀者系統(tǒng)地掌握VR與AR應(yīng)用開(kāi)發(fā)的精髓,進(jìn)一步提升開(kāi)發(fā)技能。
本書(shū)主要內(nèi)容:
·AR插件的相關(guān)知識(shí)、Unity開(kāi)發(fā)環(huán)境的搭建以及Vuforia開(kāi)發(fā)環(huán)境的搭建;
·Vuforia的幾項(xiàng)核心功能;
·關(guān)于Vuforia核心功能的官方案例;
·谷歌的增強(qiáng)現(xiàn)實(shí)引擎ARCore;
·小米VR SDK的基本知識(shí);
·HTC VIVE的基本知識(shí)與官方案例;
·Unity開(kāi)源插件VRTK;
·在Unity中使用Leap Motion提供的SDK開(kāi)發(fā)VR應(yīng)用的方法。
吳亞峰,本科畢業(yè)于北京郵電大學(xué),碩士畢業(yè)于澳大利亞臥龍崗大學(xué),1998年開(kāi)始從事Java應(yīng)用的開(kāi)發(fā),有10多年的Java開(kāi)發(fā)與培訓(xùn)經(jīng)驗(yàn),主要的研究方向?yàn)閂ulkan、OpenGL ES、手機(jī)游戲以及VR/AR。他同時(shí)為3D游戲開(kāi)發(fā)人員、VR/AR軟件工程師,并兼任百納科技軟件培訓(xùn)中心首席培訓(xùn)師,近十年來(lái)為數(shù)十家著名企業(yè)培養(yǎng)了上千名高級(jí)軟件開(kāi)發(fā)人員,曾編寫(xiě)過(guò)《OpenGL ES 3x游戲開(kāi)發(fā)》(上下卷)、《Unity 案例開(kāi)發(fā)大全》(第1版~第2版)、《VR與AR開(kāi)發(fā)高級(jí)教程:基于Unity》《H5和WebGL 3D開(kāi)發(fā)實(shí)戰(zhàn)詳解》《Android應(yīng)用案例開(kāi)發(fā)大全》(第1版~第4版)、《Android游戲開(kāi)發(fā)大全》(第1版~第4版)等多本暢銷技術(shù)圖書(shū),2008年開(kāi)始關(guān)注Android平臺(tái)下的3D應(yīng)用開(kāi)發(fā),并開(kāi)發(fā)了一系列優(yōu)秀的Android應(yīng)用程序與3D游戲。
于復(fù)興,任職于華北理工大學(xué)信息工程學(xué)院,唐山市優(yōu)秀教師,從事計(jì)算機(jī)方面的工作16年,在軟件開(kāi)發(fā)和計(jì)算機(jī)教學(xué)方面有著豐富的經(jīng)驗(yàn)。他主持過(guò)省市級(jí)項(xiàng)目5項(xiàng),獲得過(guò)11項(xiàng)國(guó)家專利,曾為多家單位設(shè)計(jì)并開(kāi)發(fā)了管理信息系統(tǒng),并在各種科技刊物上發(fā)表多篇相關(guān)論文。2014年開(kāi)始關(guān)注VR/AR應(yīng)用的開(kāi)發(fā),參與開(kāi)發(fā)了多款手機(jī)娛樂(lè)、游戲應(yīng)用。
第 1章 AR應(yīng)用開(kāi)發(fā)的基礎(chǔ)知識(shí) 1
1.1 引言 1
1.2 AR插件 2
1.3 Unity開(kāi)發(fā)環(huán)境的搭建 2
1.3.1 Windows平臺(tái)下Unity的
下載與安裝 3
1.3.2 macOS平臺(tái)下Unity的下載與
安裝 6
1.3.3 把目標(biāo)平臺(tái)的SDK集成到
Unity中 9
1.4 Vuforia開(kāi)發(fā)環(huán)境的搭建 13
1.5 本章小結(jié) 16
1.6 習(xí)題 17
第 2章 Vuforia的核心功能 18
2.1 圖片掃描 18
2.2 圓柱體識(shí)別 19
2.2.1 圖片規(guī)格 19
2.2.2 如何獲取實(shí)際物體的
具體參數(shù) 19
2.2.3 制作商標(biāo)圖片的注意事項(xiàng) 20
2.2.4 如何達(dá)到最好的效果 23
2.3 多目標(biāo)識(shí)別 23
2.3.1 多目標(biāo)識(shí)別的原理 23
2.3.2 對(duì)多目標(biāo)識(shí)別對(duì)象的選擇 24
2.4 下一代條形碼識(shí)別——VuMark 25
2.5 用戶自定義目標(biāo) 26
2.5.1 適合追蹤的場(chǎng)景和物體 26
2.5.2 用戶自定義目標(biāo)預(yù)制件 26
2.6 虛擬按鈕 27
2.6.1 按鈕的設(shè)計(jì)以及布局 27
2.6.2 虛擬按鈕的相關(guān)特性 27
2.6.3 虛擬按鈕的擺放 28
2.7 物體識(shí)別 29
2.7.1 可識(shí)別物體 29
2.7.2 下載Vuforia對(duì)象掃描儀 29
2.7.3 掃描3D物體的步驟 30
2.8 云識(shí)別 32
2.8.1 云識(shí)別的優(yōu)勢(shì)以及注意
事項(xiàng) 32
2.8.2 云識(shí)別數(shù)據(jù)庫(kù)與目標(biāo)的
創(chuàng)建 32
2.9 模型識(shí)別 35
2.9.1 模型識(shí)別的注意事項(xiàng) 35
2.9.2 模型目標(biāo)的制作 35
2.9.3 創(chuàng)建模型目標(biāo)的注意事項(xiàng) 37
2.10 水平面識(shí)別 37
2.11 本章小結(jié) 38
2.12 習(xí)題 38
第3章 關(guān)于Vuforia核心功能的
官方案例 39
3.1 官方案例下載與AR Camera參數(shù)
詳解 39
3.2 圖片識(shí)別案例詳解 43
3.2.1 預(yù)制件的通用腳本 43
3.2.2 運(yùn)行結(jié)果 50
3.2.3 開(kāi)發(fā)流程 50
3.3 圓柱識(shí)別案例詳解 54
3.3.1 運(yùn)行結(jié)果 54
3.3.2 開(kāi)發(fā)流程 55
3.4 多目標(biāo)識(shí)別案例詳解 58
3.4.1 運(yùn)行結(jié)果 59
3.4.2 開(kāi)發(fā)流程 59
3.5 VuMark案例詳解 63
3.5.1 運(yùn)行結(jié)果 64
3.5.2 開(kāi)發(fā)流程 64
3.6 自定義目標(biāo)識(shí)別案例詳解 67
3.6.1 運(yùn)行結(jié)果 67
3.6.2 開(kāi)發(fā)流程 68
3.7 虛擬按鈕案例詳解 74
3.7.1 運(yùn)行結(jié)果 74
3.7.2 開(kāi)發(fā)流程 74
3.8 3D物體識(shí)別案例詳解 79
3.8.1 運(yùn)行結(jié)果 79
3.8.2 開(kāi)發(fā)流程 80
3.9 云識(shí)別案例詳解 82
3.9.1 運(yùn)行結(jié)果 83
3.9.2 開(kāi)發(fā)流程 83
3.10 模型目標(biāo)識(shí)別案例詳解 91
3.10.1 運(yùn)行結(jié)果 91
3.10.2 開(kāi)發(fā)流程 92
3.11 水平面識(shí)別案例詳解 93
3.11.1 主要腳本 93
3.11.2 運(yùn)行結(jié)果 97
3.11.3 開(kāi)發(fā)流程 97
3.12 本章小結(jié) 98
3.13 習(xí)題 98
第4章 ARCore 99
4.1 ARCore基礎(chǔ)知識(shí) 99
4.2 ARCore 圖片識(shí)別功能 102
4.2.1 運(yùn)行結(jié)果 103
4.2.2 注意事項(xiàng) 103
4.2.3 案例詳解 104
4.3 ARCore平面識(shí)別功能 108
4.3.1 運(yùn)行結(jié)果 109
4.3.2 案例詳解 109
4.4 ARCore云錨點(diǎn)功能 115
4.4.1 運(yùn)行結(jié)果 115
4.4.2 案例詳解 116
4.5 本章小結(jié) 123
4.6 習(xí)題 123
第5章 小米VR應(yīng)用開(kāi)發(fā) 124
5.1 小米VR SDK 124
5.1.1 下載與導(dǎo)入小米VR SDK并
運(yùn)行官方案例 125
5.1.2 SDK官方預(yù)制件 128
5.1.3 SDK中的腳本文件 129
5.2 小米VR SDK官方案例 130
5.3 一個(gè)綜合案例 132
5.3.1 案例策劃與準(zhǔn)備工作 133
5.3.2 創(chuàng)建項(xiàng)目與搭建場(chǎng)景 134
5.3.3 GameManager.cs腳本的
編寫(xiě) 137
5.3.4 moveController.cs腳本的
編寫(xiě) 139
5.4 本章小結(jié) 140
5.5 習(xí)題 140
第6章 HTC VIVE平臺(tái)下的VR開(kāi)發(fā)
基礎(chǔ) 141
6.1 HTC VIVE基礎(chǔ)知識(shí) 142
6.1.1 HTC VIVE設(shè)備的安裝 144
6.1.2 VIVEPORT和手機(jī)通知 148
6.2 SteamVR SDK基礎(chǔ)知識(shí) 151
6.2.1 SteamVR SDK的下載與
導(dǎo)入 151
6.2.2 SteamVR SDK的目錄
結(jié)構(gòu) 152
6.3 第 一個(gè)HTC VIVE項(xiàng)目 154
6.3.1 項(xiàng)目的搭建 154
6.3.2 [CameraRig]預(yù)制件 156
6.4 控制手柄的按鈕監(jiān)聽(tīng) 158
6.4.1 SteamVR_Controller.cs
腳本 159
6.4.2 MyControllerEvent.cs腳本 162
6.5 SteamVR SDK案例 164
6.5.1 場(chǎng)景功能 164
6.5.2 代碼 165
6.6 SteamVR SDK的關(guān)鍵腳本 166
6.6.1 凝視處理 167
6.6.2 激光射線 169
6.6.3 追蹤渲染 172
6.6.4 按鈕監(jiān)聽(tīng) 173
6.7 本章小結(jié) 176
6.8 習(xí)題 176
第7章 HTC VIVE平臺(tái)下的VR開(kāi)發(fā)
進(jìn)階 177
7.1 VRTK的安裝與使用 177
7.2 控制手柄的按鈕監(jiān)聽(tīng) 178
7.2.1 按鈕監(jiān)聽(tīng)接口 179
7.2.2 按鈕監(jiān)聽(tīng)接口的調(diào)用 183
7.3 光線的創(chuàng)建 185
7.3.1 光線開(kāi)發(fā)的基本知識(shí) 186
7.3.2 光線案例的開(kāi)發(fā) 190
7.4 光線UI交互拾取 193
7.4.1 光線UI交互拾取開(kāi)發(fā)的
基本知識(shí) 193
7.4.2 光線UI交互拾取案例的
開(kāi)發(fā) 194
7.5 基礎(chǔ)傳送 199
7.5.1 傳送技術(shù) 199
7.5.2 傳送案例的開(kāi)發(fā) 204
7.6 物體的抓取與使用 207
7.6.1 基本知識(shí) 207
7.6.2 抓取案例 212
7.7 設(shè)置控制器上按鈕的標(biāo)簽 215
7.7.1 按鈕的標(biāo)簽 215
7.7.2 案例詳解 215
7.8 綜合案例 218
7.8.1 運(yùn)行結(jié)果 219
7.8.2 場(chǎng)景的搭建 219
7.8.3 動(dòng)畫(huà)的制作 223
7.8.4 腳本的開(kāi)發(fā) 224
7.9 本章小結(jié) 232
7.10 習(xí)題 232
第8章 Leap Motion在開(kāi)發(fā)中的
應(yīng)用 233
8.1 Leap Motion開(kāi)發(fā)環(huán)境配置 233
8.1.1 Leap Motion驅(qū)動(dòng)的下載與
安裝 234
8.1.2 官方SDK與Example
下載 235
8.2 Leap_Motion_Core_Assets_
4.4.0.unitypackage模塊 236
8.2.1 使用預(yù)制件獲取模擬手 236
8.2.2 Leap的手模型 239
8.2.3 Leap Motion的服務(wù)提供者
腳本 242
8.2.4 Leap Motion與Vive頭盔的
結(jié)合 244
8.3 Leap Motion中擴(kuò)展的交互
功能 245
8.3.1 交互案例的導(dǎo)入及相關(guān)
設(shè)置 245
8.3.2 Leap Motion交互案例 247
8.4 Leap Motion圖形渲染器的
功能 271
8.4.1 Leap Motion圖形渲染器的
主要腳本 271
8.4.2 烘焙渲染器官方案例 272
8.4.3 扭曲空間官方案例 274
8.4.4 動(dòng)態(tài)渲染器官方案例 276
8.4.5 大型對(duì)象官方案例 278
8.4.6 表面著色器官方案例 280
8.5 手模塊 282
8.6 本章小結(jié) 286
8.7 習(xí)題 286
第9章 VR與AR創(chuàng)新風(fēng)口 287
9.1 虛擬現(xiàn)實(shí)技術(shù) 287
9.2 增強(qiáng)現(xiàn)實(shí)技術(shù) 291
9.3 混合現(xiàn)實(shí)技術(shù) 295
9.4 本章小結(jié) 297
9.5 習(xí)題 297
第 10章 HTC VIVE游戲——VR化的
《俄羅斯方塊》 298
10.1 背景與操作過(guò)程概述 298
10.1.1 游戲背景概述 298
10.1.2 游戲的操作過(guò)程 299
10.2 游戲的策劃與開(kāi)發(fā)前的準(zhǔn)備
工作 300
10.2.1 游戲的策劃 301
10.2.2 使用Unity開(kāi)發(fā)游戲前的
準(zhǔn)備工作 301
10.3 游戲的架構(gòu) 302
10.3.1 主場(chǎng)景 302
10.3.2 游戲架構(gòu) 303
10.4 HTC VIVE開(kāi)發(fā)環(huán)境的搭建 304
10.5 游戲主場(chǎng)景的開(kāi)發(fā) 305
10.5.1 場(chǎng)景的搭建 305
10.5.2 UI的搭建 308
10.5.3 游戲攝像機(jī)和控制器 313
10.5.4 不同形狀方塊的實(shí)現(xiàn) 317
10.5.5 排行榜的實(shí)現(xiàn) 323
10.5.6 核心腳本的開(kāi)發(fā) 325
10.5.7 其他功能的實(shí)現(xiàn) 330
10.6 游戲的優(yōu)化與改進(jìn) 334
第 11章 科普類AR&VR應(yīng)用——星空
探索 335
11.1 開(kāi)發(fā)背景以及應(yīng)用的功能 335
11.1.1 開(kāi)發(fā)背景 335
11.1.2 應(yīng)用的功能 336
11.2 應(yīng)用的策劃與準(zhǔn)備工作 339
11.2.1 應(yīng)用的策劃 339
11.2.2 資源的準(zhǔn)備 340
11.3 應(yīng)用的架構(gòu) 341
11.3.1 應(yīng)用的結(jié)構(gòu) 341
11.3.2 各個(gè)腳本的簡(jiǎn)要介紹 342
11.4 天文學(xué)基礎(chǔ)以及相關(guān)計(jì)算
公式 345
11.4.1 重要天文坐標(biāo)系 345
11.4.2 行星、月球、深空天體
簡(jiǎn)介 347
11.4.3 行星位置的計(jì)算 348
11.4.4 月球位置的計(jì)算 352
11.4.5 儒略日等的計(jì)算 355
11.5 星空觀察模塊的開(kāi)發(fā) 356
11.5.1 天體數(shù)據(jù)的存儲(chǔ)與讀取 357
11.5.2 星座以及深空天體相關(guān)內(nèi)容
的繪制 362
11.5.3 八大行星以及月球的
繪制 366
11.5.4 深空天體介紹場(chǎng)景的
開(kāi)發(fā) 371
11.5.5 天體與連線著色器的
開(kāi)發(fā) 373
11.6 太陽(yáng)系普通模式的開(kāi)發(fā) 375
11.6.1 太陽(yáng)系場(chǎng)景的搭建 375
11.6.2 行星與衛(wèi)星運(yùn)行腳本的
開(kāi)發(fā) 376
11.6.3 太陽(yáng)特效的實(shí)現(xiàn)與小行星帶的
開(kāi)發(fā) 378
11.7 太陽(yáng)系增強(qiáng)現(xiàn)實(shí)模塊的開(kāi)發(fā) 380
11.7.1 AR開(kāi)發(fā)前期準(zhǔn)備 380
11.7.2 場(chǎng)景搭建過(guò)程 381
11.7.3 攝像機(jī)自動(dòng)對(duì)焦腳本的
開(kāi)發(fā) 383
11.8 太陽(yáng)系虛擬現(xiàn)實(shí)模塊的開(kāi)發(fā) 384
11.8.1 使用CardBoard SDK 384
11.8.2 構(gòu)建應(yīng)用并部署到Android
設(shè)備 385
11.8.3 將太陽(yáng)系場(chǎng)景開(kāi)發(fā)成VR
模式 386
11.9 藍(lán)牙搖桿的使用與其他設(shè)置功能
的實(shí)現(xiàn) 390
11.9.1 YaoGanControl.cs腳本的
開(kāi)發(fā) 390
11.9.2 VR開(kāi)關(guān)、藍(lán)牙搖桿靈敏度、
音效與時(shí)間縮放因子的
設(shè)置 391
11.9.3 實(shí)現(xiàn)主界面的腳本 391
11.9.4 MobileGyro.cs腳本的
開(kāi)發(fā) 395
11.10 本章小結(jié) 396