Unity 2017虛擬現(xiàn)實開發(fā)標(biāo)準(zhǔn)教程
Unity是一款虛擬現(xiàn)實開發(fā)軟件,功能強大,操作簡單,界面友好。使用Unity可以輕松實現(xiàn)各種虛擬現(xiàn)實素材的整合,如材質(zhì)、UI、光照、模型、貼圖、動畫特效、音頻等,結(jié)合Unity完美的引擎和友好的程序開發(fā)平臺,可以很容易制作出適合各種平臺發(fā)布的虛擬現(xiàn)實應(yīng)用產(chǎn)品。本書共設(shè)計了20 章內(nèi)容,包含虛擬現(xiàn)實基礎(chǔ)知識、Unity 軟件編輯器基礎(chǔ)知識、材質(zhì)技術(shù)、UI技術(shù)、光照技術(shù)、動畫/電影內(nèi)容創(chuàng)作技術(shù)、濾鏡效果技術(shù)、音頻技術(shù)、主流硬件平臺設(shè)備介紹,以及Unity虛擬現(xiàn)實開發(fā)參考案例、開發(fā)流程、注意原則、官方項目學(xué)習(xí)示例、全景視頻技術(shù)和在各硬件平臺上的開發(fā)示范案例和項目性能優(yōu)化等。在本書的第20章還剖析了一個目前使用較廣的地產(chǎn)室內(nèi)項目,以便讀者能綜合書中所學(xué)知識,實際應(yīng)用在具體項目中。
這是一本專為虛擬現(xiàn)實開發(fā)初中級讀者打造的教程,也是經(jīng)Unity公司審定的官方教程。
《Unity 2017虛擬現(xiàn)實開發(fā)標(biāo)準(zhǔn)教程》作者邵偉是Unity官方認(rèn)證的優(yōu)秀老師,不論是項目開發(fā)還是虛擬現(xiàn)實教學(xué),經(jīng)驗都非常豐富,書中案例的講解和開發(fā)思路的介紹深入淺出,不論是初級學(xué)習(xí)者還是有一定經(jīng)驗的Unity用戶,都能學(xué)到有益的知識。
另外,為了讓讀者學(xué)習(xí)更加有效,特單獨提供了本書案例資源。讀者可以掃描封面勒口出的二維碼,按照說明步驟進行下載。
邵偉,淄博木子信息科技有限公司創(chuàng)始人,淄博文正軟件科技有限公司聯(lián)合創(chuàng)始人兼技術(shù)總監(jiān),蠻牛教育認(rèn)證VR技術(shù)講師。參與國家電網(wǎng)基于全息投影交互技術(shù)實訓(xùn)平臺、國網(wǎng)技術(shù)學(xué)院配網(wǎng)三維仿真培訓(xùn)系統(tǒng)、國家電網(wǎng)李家站3D操作演示程序、HTC VIVE房產(chǎn)項目實戰(zhàn)教程、VR瓷磚展廳等多個項目的開發(fā),經(jīng)驗豐富。
第1章 虛擬現(xiàn)實基礎(chǔ)知識
1.1 什么是虛擬現(xiàn)實 2
1.2 虛擬現(xiàn)實的發(fā)展歷史 2
1.3 虛擬現(xiàn)實的現(xiàn)狀 3
1.4 虛擬現(xiàn)實的未來 4
1.5 虛擬現(xiàn)實技術(shù)基礎(chǔ)知識 4
1.5.1 虛擬現(xiàn)實技術(shù)原理 4
1.5.2 虛擬現(xiàn)實常見術(shù)語 5
1.5.3 體驗虛擬現(xiàn)實過程中會遇到的挑戰(zhàn) 5
1.5.4 虛擬現(xiàn)實(VR)與增強現(xiàn)實(AR)的區(qū)別 6
第2章 Unity編輯器基礎(chǔ)知識
2.1 Unity產(chǎn)品介紹 8
2.1.1 Unity簡介 8
2.1.2 獲取Unity 9
2.2 Unity 編輯器學(xué)習(xí)頁 12
2.3 視圖 15
2.3.1 項目(Project)面板 15
2.3.2 場景(Scene)面板 16
2.3.3 游戲(Game)面板 16
2.3.4 屬性(Inspector)面板 17
2.3.5 層級(Hierarchy)面板 17
2.4 Unity開發(fā)的常用工具 17
2.4.1 Visual Studio 18
2.4.2 Visual Studio Code 20
2.4.3 Git 22
2.4.4 Unity Collaborate 23
2.5 Unity 腳本基礎(chǔ) 26
2.5.1 概述 26
2.5.2 Unity 事件函數(shù)執(zhí)行順序 26
2.5.3 Unity 事件系統(tǒng) 29
第3章 Unity在 VR 中的材質(zhì)技術(shù)
3.1 基于物理的渲染理論(PBR) 32
3.1.1 PBR / PBS 概述 33
3.1.2 PBR 主要貼圖類型 34
3.2 Unity 材質(zhì)基礎(chǔ)知識 36
3.2.1 概述 36
3.2.2 Standard Shader 36
3.3 使用 PBR 材質(zhì)的環(huán)境設(shè)置 38
3.3.1 色彩空間(Color Space):Linear 與 Gamma 38
3.3.2 開啟攝像機HDR模式 39
3.4 Look Dev 和 PBR Material Validator 工具 39
3.4.1 Look Dev 39
3.4.2 PBR Material Validator 41
第4章 Unity 在 VR 中的 UI 技術(shù)
4.1 UGUI 系統(tǒng)簡介 43
4.2 VR 中的 UI 46
4.2.1 World Space UI 46
4.2.2 VR 中的 UI 交互 48
第5章 Unity 在 VR 中的光照技術(shù)
5.1 Unity 2017 的光照系統(tǒng)概述 50
5.2 主要光照管理工具 50
5.2.1 Lighting 面板 50
5.2.2 Light Explorer 51
5.3 全局照明(Global Illumination ) 51
5.4 光照模式(Lighting Modes) 52
5.4.1 實時模式和實時全局照明 53
5.4.2 混合模式和混合照明(Mixed Lighting) 54
5.4.3 Baked 模式和烘焙光照貼圖(Baked Lightmaps) 55
5.5 光照探頭(Light Probes) 58
5.6 VR 中的全局照明策略 59
5.7 The Lab Renderer 簡介 60
5.7.1 來自The Lab 的渲染器 60
5.7.2 The Lab Renderer 應(yīng)用步驟 60
第6章 動畫/電影內(nèi)容創(chuàng)作技術(shù):Timeline
6.1 Timeline簡介 63
6.2 Timeline Asset 與 Timeline Instance 64
6.3 Timeline編輯器窗口 64
6.3.1 預(yù)覽和選擇Timeline 65
6.3.2 播放控制 66
6.3.3 軌道列表(Track List) 67
6.4 錄制動畫片段 68
6.4.1 錄制 68
6.4.2 轉(zhuǎn)換為動畫片段 69
6.4.3 使用曲線視圖 70
6.5 使用現(xiàn)存動畫片段 71
6.6 Playable Director組件 71
6.6.1 Playable Director 簡介 71
6.6.2 通過腳本控制Timeline 72
6.7 實例制作 72
6.7.1 為紅色坦克制作動畫 73
6.7.2 為綠色坦克制作動畫 74
6.7.3 使用腳本實現(xiàn)動畫邏輯 75
第7章 濾鏡效果技術(shù)集合:Post Processing Stack
7.1 概述 78
7.2 在項目中應(yīng)用 Post Processing Stack 79
7.3 在 VR 中可用的 Post-Processing Stack 80
7.3.1 Anti-aliasing(抗鋸齒) 80
7.3.2 Ambient Occlusion(環(huán)境光遮蔽) 81
7.3.3 Depth of Field(景深) 81
7.3.4 Eye Adaptation(人眼調(diào)節(jié)/自動曝光) 81
7.3.5 Bloom(泛光) 82
7.3.6 Color Grading(顏色分級) 83
7.3.7 Chromatic Aberration(色差) 83
7.3.8 Grain (膠片顆粒) 84
7.3.9 Vignette(暈影) 84
7.3.10 User LUT (用戶自定義 LUT) 85
第8章 Unity 在 VR 中的音頻技術(shù)
8.1 概述 87
8.2 Unity Audio 基本元素 87
8.3 在 Unity 中使用空間音頻 89
8.4 環(huán)繞立體聲音頻 89
8.5 VR 空間化音頻開發(fā)工具 90
8.5.1 Google Resonance Audio 90
8.5.2 Oculus Spatializer Unity 91
第9章 主流 VR 硬件平臺設(shè)備介紹
9.1 概述 94
9.2 HTC VIVE 94
9.3 Oculus Rift 95
9.4 PS VR 95
9.5 Windows Mixed Reality 96
9.6 Gear VR 96
9.7 Cardboard 97
9.8 Daydream 97
9.9 Oculus Go 和小米 VR 一體機 98
9.10 Unity 2017 對 VR 硬件平臺的支持 99
第10章 用Unity 制作的 VR 參考案例
10.1 The Lab 101
10.2 Tilt Brush 101
10.3 Blocks 101
10.4 Job Simulator 102
第11章 用Unity 制作 VR 內(nèi)容的工作流程
11.1 概述 104
11.2 資源準(zhǔn)備 104
11.3 將資源導(dǎo)入Unity 106
11.4 場景構(gòu)建 108
11.5 在 Unity 中啟用 VR 支持 109
11.6 導(dǎo)入VR開發(fā)工具包 110
11.7 交互開發(fā) 110
11.8 測試及優(yōu)化 110
11.9 導(dǎo)出項目 111
第12章 VR 交互設(shè)計需要注意的原則
12.1 聲音相關(guān) 113
12.2 移動相關(guān) 113
12.3 互動相關(guān) 115
12.4 控制器相關(guān) 116
12.5 環(huán)境相關(guān) 117
12.6 UI相關(guān) 118
12.7 用戶定位和位置追蹤相關(guān) 118
第13章 示例項目學(xué)習(xí):VR Samples解析
13.1 概述 120
13.2 交互的實現(xiàn) 120
13.3 VR中的UI 126
13.4 交互體驗:基于時間進度的點擊 127
13.5 交互體驗:在VR場景中引導(dǎo)用戶視線 129
13.6 交互體驗:切換場景時的黑屏效果 130
第14章 Unity 中的全景視頻技術(shù)
14.1 全景視頻 134
全景視頻的制作方式 134
14.2 Video Player組件 135
14.3 實例:在 VR 中觀看全景視屏 136
14.3.1 在場景中播放全景視頻 136
14.3.2 在 VR 中觀看全景視頻 138
14.3.3 添加 CG 內(nèi)容 138
第15章 HTC VIVE開發(fā)
15.1 HTC VIVE硬件介紹 141
15.1.1 頭顯硬件規(guī)格 142
15.1.2 VIVE實現(xiàn)跟蹤的原理 142
15.1.3 控制器按鍵介紹 143
15.1.4 HTC VIVE 開發(fā)推薦 PC 規(guī)格 144
15.2 OpenVR 145
15.3 SteamVR 145
15.3.1 安裝SteamVR 145
15.3.2 SteamVR Unity Plugin 146
15.3.3 鍵值映射及獲取按鍵輸入 151
15.3.4 使用SteamVR Plugin實現(xiàn)與物體交互 152
15.3.5 SteamVR交互系統(tǒng)——Interaction System 156
15.4 VRTK使用指南 174
15.4.1 VRTK插件簡介 174
15.4.2 獲取VRTK 176
15.4.3 VRTK的配置 177
15.4.4 VRTK中的指針 181
15.4.5 VRTK中的傳送 184
15.4.6 使用VRTK實現(xiàn)與物體的交互 192
15.4.7 VRTK中的高亮和振動 202
15.4.8 VRTK中與UI的交互 205
15.4.9 實例:實現(xiàn)攀爬功能 209
15.4.10 實例:實現(xiàn)開關(guān)門操作 210
15.4.11 頭顯穿透模型的用戶體驗優(yōu)化 213
第16章 Gear VR開發(fā)
16.1 Gear VR硬件環(huán)境準(zhǔn)備 216
Gear VR 手柄控制器介紹 216
16.2 Gear VR開發(fā)環(huán)境配置 217
16.2.1 軟件準(zhǔn)備 217
16.2.2 Unity編輯器設(shè)置 221
16.2.3 Oculus Utilities for Unity 223
16.3 Gear VR的輸入 225
16.3.1 手柄輸入 225
16.3.2 頭顯輸入 226
16.4 第一個 Gear VR 應(yīng)用 227
16.4.1 概述 227
16.4.2 初始化項目 227
16.4.3 構(gòu)建場景 228
16.4.4 控制物體移動 230
16.4.5 發(fā)布Gear VR項目 231
16.5 Gear VR 開發(fā)優(yōu)化原則 231
第17章 Cardboard開發(fā)
17.1 Cardboard硬件準(zhǔn)備 233
17.2 Cardboard開發(fā)環(huán)境配置 233
17.2.1 設(shè)置 Player Settings 參數(shù) 233
17.2.2 下載并導(dǎo)入Google VR SDK for Unity 234
17.2.3 在Unity編輯器中預(yù)覽應(yīng)用程序 234
17.3 第一個Cardboard應(yīng)用 235
第18章 VR社交
18.1 Unity 網(wǎng)絡(luò)引擎 243
18.1.1 概述 243
18.1.2 High Level API 243
18.1.3 Unity Multiplayer服務(wù) 243
18.1.4 HLAPI 組件 244
18.2 多人聯(lián)網(wǎng)VR開發(fā)(基于Cardboard平臺) 248
18.2.1 概述 248
18.2.2 初始化環(huán)境 248
18.2.3 添加網(wǎng)絡(luò)管理組件 249
18.2.4 制作玩家預(yù)制體并注冊 250
18.2.5 自定義網(wǎng)絡(luò)連接邏輯 251
18.2.6 處理用戶輸入 253
18.2.7 同步用戶狀態(tài) 254
18.2.8 使用百度語音接口實現(xiàn)語音轉(zhuǎn)文字功能 255
第19章 VR 項目性能優(yōu)化
19.1 VR 性能優(yōu)化最佳實踐 264
19.1.1 概述 264
19.1.2 Unity VR 性能優(yōu)化建議 264
19.1.3 Unity VR 性能優(yōu)化技術(shù) 267
19.2 Unity性能分析工具 272
19.2.1 Profiler 272
19.2.2 Frame Debugger 275
19.2.3 Memory Profiler 276
19.3 其他 VR 硬件平臺調(diào)試工具 277
第20章 綜合項目分析——以地產(chǎn)室內(nèi)項目為例
20.1 項目簡介 280
20.2 初始化VR場景設(shè)置 280
20.3 添加按鍵提示 281
20.4 顯示家具提示信息 282
20.5 查看戶型圖 283
20.6 切換家具 286
20.7 切換地面材質(zhì) 288