《Unity VR 虛擬現實完全自學教程》,作者邵偉,李曄,2019年5月電子工業出版社出版。本書將以Unity為核心,講解製作VR應用程式的方方面面,希望能夠幫助讀者製作出屬於自己的VR應用程式。
基本介紹
- 書名:Unity VR 虛擬現實完全自學教程
- 作者:邵偉 李曄
- ISBN:978-7-121-36377-1
- 頁數:256
- 定價:99
- 出版社:電子工業出版社
- 出版時間:2019-05
- 裝幀:平裝
- 開本:16
內容提要,目錄,作者簡介,
內容提要
《Unity VR 虛擬現實完全自學教程》是 VR 自學愛好者的一本入門書,全書共 16 章,全面講述了在製作 VR 應用程式的過程中所必備的軟/硬體知識。硬體層面以 HTC VIVE 為主要硬體平台,同時介紹了兩款配合其使用的外部設備—— VIVE 追蹤器和 Leap Motion;軟體層面以製作 VR 應用程式的核心工作流程為主線,以 Unity 為遊戲引擎,從 VR 互動原則、材質、UI、編程開發、調試最佳化等方面逐步展開介紹各工作環節的主要內容。同時,本書輔以豐富的案例項目,重點介紹了 SteamVR、InteractionSystem、VRTK 等必備外掛程式在實際項目中的使用方法,幫助讀者快速上手製作屬於自己的 VR 應用程式。
《Unity VR 虛擬現實完全自學教程》適合對製作 VR 應用程式感興趣的人員,以及有志於從事 VR 軟體開發工作的人員閱讀,同時也適合院校及培訓虛擬現實機構相關專業的師生參考
目錄
第 1 章 VR 行業概述 /1
1.1 VR 介紹 /1
1.2 VR 技術套用案例 /1
1.3 VR 技術當前面臨的挑戰 / 5
1.3.1 硬體價格 / 5
1.3.2 運算及顯示能力 /5
1.3.3 互動 / 5
1.3.4 移動性 /6
1.3.5 內容 / 7
1.3.6 小結 / 7
第 2 章 Unity VR 概述 / 8
2.1 Unity VR / 8
2.1.1 圖形渲染 /8
2.1.2 真實物理引擎 / 9
2.1.3 多 VR 平台原生支持 /9
2.1.4 豐富的資源 /10
2.1.5 對開發者友好 /10
2.1.6 不斷更新的 Unity 版本 / 11
2.2 使用 C#腳本進行 VR 互動開發 /12
第 3 章 當前主流 VR 硬體 / 13
3.1 HTC VIVE / 13
3.2 Oculus Rift / 13
3.3 Gear VR / 14
3.4 Cardboard /14
3.5 Daydream 平台 15
3.6 逐漸崛起的 VR 一體機 / 16
3.6.1 Oculus Go 和小米 VR 一體機 /17
3.6.2 HTC VIVE Focus /18
3.7 未來展望 /18
第 4 章 VR 應用程式開發工作流程 /20
4.1 資源準備 /20
4.2 模型最佳化及重拓撲 /23
4.3 展 UV 的過程 / 24
4.4 材質貼圖製作 /25
4.5 將資源導入 Unity / 25
4.6 導入開發工具包 /26
4.7 場景搭建 /26
4.8 設定光照環境 /27
4.9 互動開發 /28
4.10 測試最佳化 / 28
4.11 發布應用程式 / 28
4.12 常用開發工具 /29
第 5 章 VR 互動設計原則 / 36
5.1 設計必要的新手引導 /36
5.2 使用十字線(準星)/36
5.3 避免界面深度引起的疲勞感 /37
5.4 使用恆定的速度 /37
5.5 保持用戶在地面上 /38
5.6 保持頭部的跟蹤 /38
5.7 用光來引導用戶的注意力 /39
5.8 藉助比例 /39
5.9 使用空間音頻 /40
5.10 充分使用反饋 /40
第 6 章 HTC VIVE 硬體 / 41
6.1 簡介 /41
6.2 產品特點 /41
6.3 VIVE PRO / 43
6.4 HTC VIVE 硬體拆解結構 / 44
6.4.1 頭顯 /44
6.4.2 控制器 /45
6.5 HTC VIVE 控制器按鍵名稱 / 46
6.6 HTC VIVE 定位原理/ 47
6.7 Inside-Out 與 Out-Inside 位置跟蹤技術 / 47
6.7.1 Outside-In 跟蹤技術 /48
6.7.2 Inside-Out 跟蹤技術 / 48
6.8 HTC VIVE 的安裝 / 49
第 7 章 VR 中的 UI ./51
7.1 概述 /51
7.2 將 UI 容器轉換為世界空間坐標 / 52
7.3 VR 中的 UI 互動 /53
第 8 章 Unity VR 寫實材質 . 55
8.1 Unity 材質基礎 / 55
8.2 基於物理的渲染理論 /56
8.3 PBR 材質的優勢 / 57
8.3.1 高品質寫實級別材質表現 /58
8.3.2 為實時渲染而生 / 58
8.3.3 標準的材質製作流程 /59
8.4 PBR 材質主要貼圖類型 /59
8.4.1 顏色貼圖(Albedo/Basecolor Map)/59
8.4.2 金屬貼圖(Metallic Map) /60
8.4.3 光滑度貼圖(Roughness Map) /60
8.5 PBR 材質製作軟體 / 61
8.5.1 Substance Designer /61
8.5.2 Substance Painter /65
8.5.3 Quixel Suite /66
8.5.4 Marmoset Toolbag /66
8.6 製作 PBR 椅子材質 /67
8.6.1 在 Substance Painter 中製作貼圖 /67
8.6.2 導出貼圖到 Unity /74
8.7 Substance in Unity 的使用 / 76
第 9 章 SteamVR /81
9.1 SteamVR 簡介 /81
9.1.1 SteamVR Runtime /81
9.1.2 SteamVR Plugin / 81
9.1.3 獲取控制器引用及按鍵輸入 /83
9.2 使用SteamVR Plugin實現與物體的互動 /84
9.3 InteractionSystem /89
9.3.1 InteractionSystem 核心模組 / 89
9.3.2 使用 InteractionSystem 實現傳送 / 91
9.3.3 使用 InteractionSystem 實現與物體的互動 / 93
9.3.4 使用 InteractionSystem 實現與 UI 的互動 /95
9.4 需要注意的問題 . 96
第 10 章 使用 VRTK 進行互動開發 /99
10.1 VRTK 簡介 /99
10.1.1 什麼是 VRTK / 99
10.1.2 VRTK 能做什麼 /99
10.1.3 為什麼選擇 VRTK /100
10.1.4 未來版本 103
10.2 SteamVR Plugin、InteractionSystem 與 VRTK 的關係 /103
10.3 配置 VRTK /103
10.3.1 一般配置過程 /104
10.3.2 快速配置 VRTK/108
10.4 VRTK 中的指針 / 109
10.4.1 指針 /109
10.4.2 指針渲染器 /113
10.5 在 VRTK 中實現傳送 /115
10.5.1 VRTK 中的傳送類型 /115
10.5.2 限定傳送區域 /118
10.5.3 在 VR 場景中實現傳送 /119
10.6 使用 VRTK 實現與物體的互動 /121
10.6.1 概述 / 121
10.6.2 配置方法 / 122
10.6.3 VRTK 的抓取機制 / 127
10.7 VRTK 中的控制器高亮和振動 /129
10.7.1 控制器高亮 /129
10.7.2 控制器振動 /131
10.8 VRTK 中與 UI 的互動 / 132
10.9 實例:開槍射擊效果/ 134
10.10 實例:攀爬效果 / 140
10.11 實例:實現釋放自動吸附功能 / 143
第 11 章 將基於 PC 平台的套用移植到 VR 平台 / 148
11.1 項目移植分析 /148
11.2 初始化 VR 互動 /149
11.3 Player 的移植 / 150
11.4 設定道具為可互動對象 / 152
11.5 實現控制器與道具的互動邏輯 /154
11.6 修改 UI 渲染模式為 World Space / 156
11.7 玩家傷害閃屏效果 /157
11.8 根據報錯信息調整代碼 /158
11.9 遊戲結束及重新開始 / 159
第 12 章 Leap Motion for VR /162
12.1 概述 /162
12.2 硬體準備 /163
12.3 軟體環境 /164
12.4 Leap Motion VR 初始開發環境 /164
12.5 替換 Leap Motion 在 VR 環境中的手部模型 /165
X Unity VR 虛擬現實完全自學教程
12.6 實現與 3D 物體的互動 / 167
12.7 實例:使用 Leap Motion 實現槍械的組裝 /171
第 13 章 VIVE Tracker 的使用 / 175
13.1 外觀結構 /175
13.2 使用場景 /176
13.3 初次使用 Tracker /177
13.4 使用 Tracker 作為控制器 / 178
13.5 使用 Tracker 與現實世界物體進行綁定 179
13.6 小結 /181
第 14 章 Unity VR 遊戲案例——《水果忍者 VR》原型開發 /182
14.1 項目簡介 /182
14.2 初始化項目 / 182
14.3 配置武士刀 / 183
14.4 編寫水果生成邏輯 /185
14.5 實現切割水果的效果 /187
14.6 製作分數和遊戲結束 UI /189
14.7 編寫計分、計時和遊戲結束等邏輯 / 190
第 15 章 Unity VR 案例—— Tilt Brush 原型開發 / 194
15.1 項目分析 /194
15.2 初始化項目並編寫腳本 /195
15.3 實現修改筆刷顏色功能 /197
15.4 擴展內容:將繪製互動修改為 VRTK 版本 / 201
15.5 異常處理 /202
第16 章 Unity VR 性能最佳化工具和方法 / 204
16.1 Unity Profiler / 204
16.2 Memory Profiler / 205
16.3 Frame Debugger / 205
16.4 最佳化原則和措施 /206
16.4.1 LOD 技術 /206
16.4.2 較少 Draw Call 數量 / 207
16.4.3 使用單通道立體渲染 / 208
16.4.4 使用 The Lab Renderer / 209
16.4.5 小結 / 210
作者簡介
邵偉,Unity 價值專家(UVP),現居山東省淄博市,畢業於山東理工大學。
李曄:國內第一批進入AR技術領域的開發者,蠻牛教育講師。