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