本書以Unity為基礎(chǔ)平臺(tái),以實(shí)戰(zhàn)為導(dǎo)向,以案例的形式分別介紹虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)與混合現(xiàn)實(shí)技術(shù)的項(xiàng)目開發(fā)。
本書內(nèi)容可以分為4部分。其中,第1~3章講述Unity的基礎(chǔ)知識(shí),從零開始引導(dǎo)讀者了解Unity編輯器及其中的燈光、材質(zhì)球,并以案例的形式介紹UGUI以及2D游戲的開發(fā)流程;第4~6章講述虛擬現(xiàn)實(shí)技術(shù),從什么是虛擬現(xiàn)實(shí)到臺(tái)式機(jī)中虛擬現(xiàn)實(shí)的應(yīng)用,再到HTC Vive中虛擬現(xiàn)實(shí)的應(yīng)用,以案例講解典型虛擬現(xiàn)實(shí)技術(shù)的項(xiàng)目開發(fā);第7~9章講述增強(qiáng)現(xiàn)實(shí)技術(shù)與如何在Unity中發(fā)布安卓程序,從EasyAR到Vuforia,對(duì)這兩種較為流行的AR SDK進(jìn)行學(xué)習(xí),達(dá)成基本的圖片識(shí)別到文字識(shí)別、云識(shí)別,以及接入百度翻譯和有道詞典等功能;第10、11章講述混合現(xiàn)實(shí)技術(shù),從現(xiàn)階段的混合現(xiàn)實(shí)技術(shù)的實(shí)現(xiàn)方式到實(shí)際項(xiàng)目開發(fā)的全過程,學(xué)習(xí)三星Gear VR頭盔的接入以及如何在Gear VR中利用Vuforia技術(shù)實(shí)現(xiàn)混合現(xiàn)實(shí)。
本書適合虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、混合現(xiàn)實(shí)技術(shù)的從業(yè)人員和對(duì)虛擬現(xiàn)實(shí)等技術(shù)感興趣的讀者閱讀參考,也可作為培訓(xùn)機(jī)構(gòu)以及大中專院校相關(guān)專業(yè)學(xué)生的實(shí)訓(xùn)教材。
本書是目前市場(chǎng)上針對(duì)虛擬現(xiàn)實(shí)(VR)、增強(qiáng)現(xiàn)實(shí)(AR)與混合現(xiàn)實(shí)(MR)技術(shù)講解得較為全面的書籍,亦是一本以實(shí)戰(zhàn)為導(dǎo)向的書籍。本書以Unity為基礎(chǔ)平臺(tái),涉及當(dāng)前流行的HTC VIVE與三星的Gear VR頭盔等硬件設(shè)備,主流的SDK有EasyAR與Vuforia,以及Itween、The Lab Renderer、Virtual Reality Toolkit等插件。通過實(shí)際案例的學(xué)習(xí),讓讀者快速掌握VR/AR/MR三大技術(shù)的開發(fā)。
前 言近幾年來,以虛擬現(xiàn)實(shí)技術(shù)為代表的黑科技得以迅猛發(fā)展,增強(qiáng)現(xiàn)實(shí)與混合現(xiàn)實(shí)技術(shù)也日益被大眾所熟知。這些新興技術(shù)使得人們的生活方式正在慢慢地發(fā)生改變。小到生活中支付寶推出的AR紅包,大到國(guó)家性的虛擬仿真系統(tǒng),均體現(xiàn)出這些技術(shù)變得越來越重要且運(yùn)用的場(chǎng)景越來越廣泛。本書的緣起有三,其一是對(duì)自己日常積累的知識(shí)進(jìn)行總結(jié)歸納,方便日后的復(fù)習(xí)鞏固;其二是由于圈中好友胡良云先生等人與清華大學(xué)出版社編輯誠(chéng)邀編寫一本關(guān)于虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)與混合現(xiàn)實(shí)實(shí)戰(zhàn)類的由淺入深的書籍,以幫助廣大的愛好者進(jìn)行學(xué)習(xí),我覺得這是一件很有意義的事情,于是應(yīng)承了下來;其三是近年來虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)與混合現(xiàn)實(shí)日益火爆,希望了解進(jìn)而學(xué)習(xí)這些技術(shù)的人越來越多。正是基于以上三點(diǎn)原因,本人開始嘗試寫作本書。本書以淺顯易懂的思想貫穿始終,盡量將一些專業(yè)知識(shí)用簡(jiǎn)單、貼近生活的語言進(jìn)行描述。對(duì)于知識(shí)點(diǎn),先介紹其含義及用法,再以案例的形式加以鞏固,達(dá)到融會(huì)貫通的效果,從而使讀者可以舉一反三,將知識(shí)點(diǎn)運(yùn)用到其他案例中。由于本類技術(shù)的特殊性,因此書中配備了大量的圖片,以圖片輔助文字的方式讓讀者更好地掌握知識(shí)點(diǎn),逐步跟著案例進(jìn)行練習(xí)。傳統(tǒng)的本類書籍一般只有少量的代碼注釋,更加注重實(shí)現(xiàn)的理論而輕視代碼講解,使得讀者往往不能真正地理解。而本書中涉及的大量代碼均有非常詳盡的解釋,從代碼中的每一行注釋到每一個(gè)新函數(shù)的功能介紹,務(wù)求讓讀者在理解實(shí)現(xiàn)理論的基礎(chǔ)上清晰明了地理解代碼。由于本書是從初學(xué)者的角度來講解知識(shí)點(diǎn)的,因此無論讀者是否有相關(guān)經(jīng)驗(yàn),都較為容易理解。在項(xiàng)目中負(fù)責(zé)各個(gè)環(huán)節(jié)的人員都可以從本書中獲取需要的知識(shí)。美工人員可以從本書中學(xué)習(xí)Unity編輯器的基礎(chǔ)知識(shí)及如何在Unity編輯器中調(diào)制出更好的效果,程序員可以從本書中學(xué)習(xí)虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)與混合現(xiàn)實(shí)的制作方法,在校的學(xué)生可以通過本書進(jìn)行系統(tǒng)學(xué)習(xí)。在學(xué)習(xí)的道路上永遠(yuǎn)不遲,Better late than never,三四十歲才開始學(xué)習(xí)并取得成功的案例比比皆是,只要付諸行動(dòng),就一定會(huì)有所收獲,或早或晚。在學(xué)習(xí)本書的過程中,可能一些軟件的版本已經(jīng)更新,但是軟件本身的使用方式與核心功能不會(huì)有大的變化。學(xué)習(xí)本書時(shí),不僅要學(xué)會(huì)書中的內(nèi)容,更重要的是學(xué)會(huì)思維方法,建議先學(xué)習(xí)前3章,掌握Unity的基礎(chǔ)知識(shí)后,再學(xué)習(xí)VR、AR、MR三大部分。本書中的腳本是由C#語言編寫的,若在學(xué)習(xí)過程中感覺理解C#代碼比較吃力,建議先學(xué)習(xí)C#語法基礎(chǔ)。南懷瑾先生在其書中提到一種思想,即先把自己變成一個(gè)空杯子、空的寶瓶,接受人家的清水也好,牛奶也好,甘露也好,先裝滿,再回來進(jìn)行制作。學(xué)習(xí)本書也一樣,希望讀者先把杯子倒干凈,變成空杯子,然后跟著案例一起制作,在制作完成后多想想為什么這么做、在做的過程中使用了哪些技術(shù)與知識(shí)點(diǎn)、這些知識(shí)點(diǎn)還能做其他的什么功能、這個(gè)案例是否還有其他的實(shí)現(xiàn)方法。如此這般才能將知識(shí)學(xué)習(xí)扎實(shí)。從本書開始構(gòu)思到完成花費(fèi)了大半年光陰,從開始計(jì)劃的6章寫到了最終的11章。雖已竭盡全力,但由于水平有限,其中難免有疏漏之處,還望各位讀者批評(píng)指正。若在學(xué)習(xí)本書的過程中遇到問題或有建議,可以通過電子郵件聯(lián)系我(tjdonald@163.com)。本書配套素材及源代碼下載地址:https://pan.baidu.com/s/1JoMxsnsnbv4_vd4DRO_NkA(注意區(qū)分?jǐn)?shù)字與字母大小寫),還可以掃描下面的二維碼進(jìn)行下載。若下載有問題,請(qǐng)電子郵件聯(lián)系booksaga@126.com,郵件標(biāo)題為求代碼,VR、AR與MR項(xiàng)目開發(fā)實(shí)戰(zhàn)。最后,感謝父母的支持與理解、對(duì)小女生活的悉心照料,讓我沒有了后顧之憂,能全身心地投入工作中。感謝妻子王一茹對(duì)我寫作本書的全力支持,在我低迷的時(shí)候,為我加油吶喊,在我迷茫的時(shí)候,讓我堅(jiān)持本心。如今我的女兒已經(jīng)兩歲了,希望她能健康快樂的成長(zhǎng)。感謝公司(重慶威視真科技)對(duì)我的大力支持,同時(shí)還要感謝公司中一起奮斗的好同事、好朋友。
向春宇2018年5月
向春宇多年一線開發(fā)經(jīng)驗(yàn),國(guó)內(nèi)最早一批使用Virtools、Unity、Unreal的人員,在虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、混合現(xiàn)實(shí)等前沿領(lǐng)域有深入研究。先后參與四川、安徽、新疆、江西、浙江、福建、重慶、陜西、青海等國(guó)家電網(wǎng)計(jì)量中心生產(chǎn)調(diào)度平臺(tái)三維監(jiān)控系統(tǒng)開發(fā),海豚進(jìn)家庭、恐龍進(jìn)家庭、昆蟲進(jìn)家庭、小貝安全、小貝蛋糕等AR小貝系列開發(fā),其中使用VIVE開發(fā)的交通事故現(xiàn)場(chǎng)勘查VR訓(xùn)練系統(tǒng)榮獲HTC VIVE的最佳非游戲類應(yīng)用與最佳創(chuàng)意獎(jiǎng)提名。
目 錄
第1章 Unity快速入門 1
1.1 關(guān)于Unity 1
1.2 安裝與激活 2
1.2.1
Unity的下載與安裝 2
1.2.2
Unity的激活 6
1.2.3
Unity的好搭檔Visual Studio 10
1.3
Unity編輯器 11
1.3.1
項(xiàng)目工程 11
1.3.2
Hierarchy面板 12
1.3.3
Scene面板 13
1.3.4
Inspector面板 14
1.3.5
Project面板 15
1.3.6
Game面板 17
1.4 創(chuàng)建第一個(gè)程序 18
1.4.1
設(shè)置默認(rèn)的腳本編輯器 18
1.4.2
Hello Unity 18
1.5 了解Unity 2017的新特性 21
第2章 Unity基礎(chǔ)知識(shí) 22
2.1 官方案例 22
2.1.1
打開官方案例 22
2.1.2
運(yùn)行案例 23
2.1.3
平臺(tái)設(shè)置與發(fā)布 24
2.2
Asset Store資源商店 26
2.2.1
Asset Store簡(jiǎn)介 26
2.2.2
資源的下載與導(dǎo)入 28
2.3 模型文件準(zhǔn)備 29
2.3.1
建模軟件中模型的導(dǎo)出設(shè)置 29
2.3.2
Unity中模型的導(dǎo)入設(shè)置 33
2.4
Unity材質(zhì)介紹 36
2.4.1
材質(zhì)球、著色器之間的關(guān)系 36
2.4.2
Unity標(biāo)準(zhǔn)著色器 36
2.5
Unity的光照 38
2.5.1
燈光的類型 38
2.5.2
環(huán)境光與天空盒 41
第3章 UGUI入門 47
3.1
UGUI控件 47
3.1.1
基礎(chǔ)控件Text 47
3.1.2
基礎(chǔ)控件Image 49
3.1.3
基礎(chǔ)控件Button 51
3.1.4
基礎(chǔ)控件Toggle 56
3.1.5
基礎(chǔ)控件Slider 60
3.1.6
基礎(chǔ)控件InputField 63
3.2
UGUI開發(fā)登錄界面 66
3.2.1
登錄界面介紹 66
3.2.2
創(chuàng)建登錄界面背景 67
3.2.3
創(chuàng)建用戶名與密碼界面 68
3.2.4
驗(yàn)證用戶名與密碼 74
3.2.5
游客登錄設(shè)置 79
3.2.6
創(chuàng)建二維碼登錄界面 83
3.2.7
二維碼登錄與密碼登錄切換 86
3.3
Unity 2D開發(fā)FlappyBird案例 88
3.3.1
FlappyBird簡(jiǎn)介及設(shè)計(jì) 88
3.3.2
背景圖片的UV運(yùn)動(dòng) 90
3.3.3
完成小鳥飛行功能 94
3.3.4
動(dòng)態(tài)添加管道障礙物 96
3.3.5
完成小鳥得分及死亡功能 100
3.3.6
制作游戲開始和結(jié)束界面 105
第4章 虛擬現(xiàn)實(shí)入門 112
4.1 虛擬現(xiàn)實(shí)簡(jiǎn)介 112
4.2 虛擬現(xiàn)實(shí)的應(yīng)用場(chǎng)景 113
4.3 關(guān)于虛擬現(xiàn)實(shí)開發(fā)的建議
116
第5章 基于PC的VR全景圖片、視頻 117
5.1 全景簡(jiǎn)介 117
5.2
Gear 360全景相機(jī) 118
5.2.1
Gear 360全景相機(jī)簡(jiǎn)介 118
5.2.2
全景圖片、視頻的拍攝 119
5.3
PC端全景圖片與視頻 121
5.3.1
項(xiàng)目簡(jiǎn)介 121
5.3.2
項(xiàng)目準(zhǔn)備 122
5.4 全景圖片的實(shí)現(xiàn) 125
5.4.1
創(chuàng)建天空盒 125
5.4.2
查看全景圖片 126
5.4.3
切換全景圖片 130
5.4.4
添加景點(diǎn)介紹功能 133
5.5 全景視頻的實(shí)現(xiàn) 140
5.5.1
創(chuàng)建控制視頻的UI 140
5.5.2
控制視頻的播放、暫停和停止 141
5.5.3
切換全景視頻 146
5.6 場(chǎng)景控制器 147
5.6.1
創(chuàng)建初始場(chǎng)景 147
5.6.2
場(chǎng)景之間的切換 149
5.7 項(xiàng)目發(fā)布 151
第6章 基于HTC VIVE的VR開發(fā) 153
6.1
HTC VIVE簡(jiǎn)介 153
6.1.1
VIVE設(shè)備介紹 153
6.1.2
VIVE設(shè)備安裝 157
6.1.3
VIVE開發(fā)環(huán)境配置 160
6.2 開發(fā)準(zhǔn)備 162
6.2.1
SteamVR Plugin 162
6.2.2
The Lab Renderer入門 165
6.2.3
The Lab渲染器重要元素介紹 168
6.2.4
Virtual Reality Toolkit簡(jiǎn)介 172
6.3
VIVE版室內(nèi)開發(fā) 176
6.3.1
案例概述 176
6.3.2
資源導(dǎo)入 177
6.3.3
場(chǎng)景的烘焙與優(yōu)化 178
6.3.4
人物的自由行走 180
6.3.5
人物穿墻設(shè)置 183
6.3.6
物體的拾取 185
6.3.7
手柄開關(guān)門設(shè)置 190
6.3.8
手柄開關(guān)燈設(shè)置 193
6.3.9
UI的交互 197
第7章 增強(qiáng)現(xiàn)實(shí)入門 202
7.1 增強(qiáng)現(xiàn)實(shí)簡(jiǎn)介 202
7.2 增強(qiáng)現(xiàn)實(shí)的應(yīng)用場(chǎng)景 203
7.3 關(guān)于增強(qiáng)現(xiàn)實(shí)開發(fā)的建議
206
第8章 基于Vuforia的AR開發(fā) 210
8.1
Vuforia概述 210
8.1.1
Vuforia簡(jiǎn)介 210
8.1.2
安卓發(fā)布設(shè)置 211
8.1.3
Vuforia開發(fā)準(zhǔn)備 217
8.2 智慧翻譯 220
8.2.1
案例概述 220
8.2.2
資源設(shè)置 221
8.2.3
文字識(shí)別 223
8.2.4
接入百度翻譯 226
8.2.5
MD5加密及Post請(qǐng)求 228
8.2.6
解析JSON 232
8.2.7
獲取文字讀音 235
8.2.8
UI制作 239
8.2.9
功能關(guān)聯(lián) 242
8.2.10
多平臺(tái)輸出Debug信息 248
8.2.11
項(xiàng)目發(fā)布 251
第9章 基于EasyAR的AR開發(fā) 253
9.1
EasyAR簡(jiǎn)介 253
9.2
EasyAR開發(fā)準(zhǔn)備 254
9.3
EasyAR入門 256
9.4 多圖識(shí)別 262
9.5 云識(shí)別 266
9.6
AR房地產(chǎn) 274
9.6.1
案例概述 274
9.6.2
交互設(shè)計(jì) 275
9.6.3
資源設(shè)置 276
9.6.4
識(shí)別設(shè)置 277
9.6.5
視頻識(shí)別 280
9.6.6
操作設(shè)置 283
9.6.7
脫卡模式 289
9.6.8
手勢(shì)控制 293
9.6.9
拍照與錄屏 299
9.6.10
項(xiàng)目發(fā)布 311
第10章 混合現(xiàn)實(shí)入門 313
10.1
混合現(xiàn)實(shí)簡(jiǎn)介 313
10.2
現(xiàn)階段的混合現(xiàn)實(shí) 314
第11章 基于Gear VR的MR開發(fā) 317
11.1
Gear VR簡(jiǎn)介 317
11.2
開發(fā)準(zhǔn)備 320
11.3
Vuforia數(shù)字眼鏡案例學(xué)習(xí) 322
11.3.1
案例準(zhǔn)備 322
11.3.2
數(shù)字眼鏡模式 324
11.3.3
視選功能 326
11.4
MR房地產(chǎn) 330
11.4.1
案例概述 330
11.4.2
設(shè)置Gear VR的MR模式 332
11.4.3
識(shí)別圖設(shè)置 336
11.4.4
設(shè)置戶型 340
11.4.5
Gear VR觸摸板控制戶型 345
11.4.6
進(jìn)入VR模式 350
11.4.7
點(diǎn)位選擇 355
11.4.8
返回MR模式 359
11.4.9
項(xiàng)目發(fā)布 362