《虛擬現實原理與開發:基於 Unity 的 VR 技術實現》是電子工業出版社出版圖書,作者是邵偉。
本書基於Unity編輯器對其進行講解。
基本介紹
- 中文名:虛擬現實原理與開發:基於 Unity 的 VR 技術實現
- 作者:邵偉
- 出版時間:2023年1月
- 出版社:電子工業出版社
- 頁數:272 頁
- ISBN:9787121444845
- 定價:109 元
- 開本:16 開
圖書目錄
第 1 章 SteamVR基礎互動開發 .................................................................................. 1
1.1 SteamVR 與相關VR硬體 .................................................................................. 1
1.1.1 HTC VIVE 硬體介紹 .............................................................................. 1
1.1.2 VR手柄控制器按鍵介紹........................................................................ 3
1.1.3 HTC VIVE 開發推薦 PC 端規格 ........................................................... 4
1.2 OpenVR、SteamVR、OpenXR 相關概念 ........................................................ 5
1.2.1 OpenVR .................................................................................................... 6
1.2.2 OpenVR Desktop ..................................................................................... 6
1.2.3 OpenVR XR Plugin .................................................................................. 7
1.2.4 SteamVR 客戶端 ..................................................................................... 8
1.2.5 SteamVR Plugin ....................................................................................... 9
1.2.6 OpenXR .................................................................................................. 10
1.2.7 OpenXR Plugin ...................................................................................... 11
1.3 在 Unity 中使用 SteamVR 外掛程式 ....................................................................... 12
1.3.1 SteamVR 外掛程式的獲取 .......................................................................... 12
1.3.2SteamVR Plugin 2.x 新版本的變化 ..................................................... 14
1.3.3 導入 SteamVR 外掛程式 .............................................................................. 15
1.3.4 初次運行 SteamVR 應用程式 ............................................................... 17
1.4SteamVR 2.x 中的動作 .................................................................................... 19
1.4.1SteamVR Input 視窗 ............................................................................. 19
1.4.2 創建動作 ................................................................................................ 22
1.4.3 動作與按鍵的綁定 ................................................................................ 22
1.5 通過腳本獲取動作的輸入 ................................................................................ 26
1.5.1 聲明和引用動作 .................................................................................... 26
1.5.2 獲取動作輸入 ........................................................................................ 27
1.6 Interaction System .............................................................................................. 30
1.6.1Interaction System 的核心模組 ............................................................. 31
1.6.2 使用 Interaction System 實現位置傳送 ............................................... 32
1.6.3 使用 Interaction System 實現與物體的互動 ....................................... 35
1.7.1 骨骼輸入原理概述 ............................................................................... 37
1.7.2 自製模型設定 ....................................................................................... 39
1.7.3 SteamVR_Behaviour_Skeleton 組件設定 ............................................ 40
1.8 使用Oculus Quest 學習 SteamVR 開發 ....................................................... 41
1.8.1 Oculus Link 簡介 .................................................................................. 41
1.8.2 具體步驟及常見問題............................................................................ 42
1.8.3 建議使用的開發軟體版本 .................................................................... 45
1.8.4 測試 ....................................................................................................... 47
1.9 SteamVR 開發常用腳本匯總 .......................................................................... 47
1.9.1 獲取 Touchpad 鍵上觸摸點的位置 ...................................................... 47
1.9.2 獲取體驗者位置 ................................................................................... 48
1.9.3 獲取體驗者某一個 Hand 的引用 ......................................................... 49
1.9.4 獲取與當前遊戲對象互動的手柄控制器 ............................................ 49
1.9.5 獲取被互動遊戲對象的信息 ................................................................ 50
1.9.6 手部在進入某區域時切換姿態 ............................................................ 50
第 2 章 VR博物館項目實戰準備 ................................................................................ 52
2.1 項目軟硬體準備 ............................................................................................... 52
2.1.1 項目硬體準備 ....................................................................................... 52
2.1.2 項目軟體準備 ....................................................................................... 53
2.1.3 Unity 外掛程式準備 .................................................................................... 55
2.1.4 為什麼建議使用約定的軟體版本 ........................................................ 55
2.2 URP 概述 ........................................................................................................... 56
2.2.1 URP簡介 ............................................................................................... 56
2.2.2 使用模板創建基於 URP 的 Unity 項目 ............................................... 57
2.2.3 將現有項目的渲染管線轉換為 URP ................................................... 60
2.2.4 為什麼沒有使用 HDRP ........................................................................ 62
2.2.5 URP學習建議 ....................................................................................... 63
2.3 材質、貼圖與 UV ............................................................................................. 63
2.3.1 什麼是材質 ........................................................................................... 63
2.3.2 基於物理的渲染:PBR理論 ............................................................... 64
2.3.3 URP中的材質 ....................................................................................... 65
2.3.4 什麼是貼圖 ........................................................................................... 67
2.3.5 PBR常用貼圖類型 ............................................................................... 67
2.3.6 什麼是 UV ............................................................................................. 71
2.4.1 Unity 結合 Blender 進行模型處理的工作流程.................................... 72
2.4.2 模型UV準備 ........................................................................................ 75
2.4.3 模型對象的命名 .................................................................................... 77
2.4.4 確保模型使用的單位與 Unity 一致 ..................................................... 77
2.4.5 對模型設定合理的中心點 .................................................................... 78
2.4.6 使用布線合理且面數較低的模型 ........................................................ 79
第 3 章 烘焙光照貼圖技術 ......................................................................................... 81
3.1 光照貼圖 ............................................................................................................ 81
3.1.1 什麼是光照信息 .................................................................................... 81
3.1.2 為什麼要烘焙光照貼圖 ........................................................................ 82
3.1.3 直接光照和間接光照 ............................................................................ 83
3.1.4 烘焙光照貼圖的基本原理 .................................................................... 84
3.2 Lighting 視窗的參數介紹 ................................................................................. 85
3.2.1 視窗概覽 ................................................................................................ 85
3.2.2 Scene 選項卡中的參數 ......................................................................... 86
3.2.3 Environment 選項卡中的參數 .............................................................. 95
3.2.4Baked Lightmaps 選項卡 ....................................................................... 98
3.3 項目基礎布光設定 ............................................................................................ 99
3.3.1 場景光照來源分析 ................................................................................ 99
3.3.2 製作玻璃材質 ...................................................................................... 100
3.3.3 調整URP 配置檔案的相關參數 ........................................................ 102
3.4 烘焙光照貼圖 .................................................................................................. 105
3.4.1 套用臨時材質 ...................................................................................... 105
3.4.2 設定遊戲對象參與烘焙光照貼圖 ...................................................... 106
3.4.3 設定 Lighting Settings 參數 .............................................................. 107
3.4.4 面光源的使用 ...................................................................................... 110
3.4.5 切換天空盒 .......................................................................................... 112
第 4 章 VR寫實材質技術 ......................................................................................... 115
4.1Substance 材質的使用 .................................................................................... 115
4.1.1 概述 ...................................................................................................... 115
4.1.2Substance in Unity 外掛程式的使用 .......................................................... 116
4.1.3 在 Unity 中使用 Substance 材質 ..................................................... 117
4.2 使用 Substance 3D Designer 製作牆面材質 ................................................. 121
4.2.1Substance 3D Designer 簡介 .............................................................. 121
4.2.2 在 Substance 3D Designer 中製作牆面材質 .................................... 122
4.2.3 在場景中使用牆面材質 ...................................................................... 128
4.3 製作並套用木地板材質 .................................................................................. 129
4.3.1 在 Substance 3D Sampler 中製作木地板材質 ................................. 130
4.3.2 將材質導出為 Substance ................................................................... 134
4.3.3 將木地板材質套用到項目場景中 ...................................................... 135
4.4 下一步行動 ..................................................................................................... 136
第 5 章 實現項目的基本互動功能 ............................................................................ 137
5.1 實現基礎VR互動 .......................................................................................... 137
5.1.1 導入 SteamVR 外掛程式 .......................................................................... 137
5.2 實現對象的抓取 ............................................................................................. 144
5.2.1 為遊戲對象添加合適的碰撞體組件 .................................................. 144
5.2.2 為遊戲對象添加 Throwable 組件 ...................................................... 145
5.3 解決高亮輪廓在 URP 下的顯示問題 ............................................................ 147
5.3.1 SteamVR 實現高亮效果的機制 ........................................................ 147
5.3.2 Quick Outline 外掛程式的使用 ................................................................. 149
5.3.3 使用 Quick Outline 外掛程式替換 SteamVR 的高亮效果 ....................... 150
5.4 使用 Skeleton Poser 組件設計抓取手形 ........................................................ 153
5.4.1 為可互動遊戲對象添加 Skeleton Poser 組件 .................................. 154
5.4.2 編輯左手手形 ..................................................................................... 155
5.4.3 編輯右手手形 ..................................................................................... 157
5.5 使用 DOTween 外掛程式實現佛像的浮動特效 ................................................. 158
5.5.1 獲取 DOTween 外掛程式 ......................................................................... 158
5.5.2 導入 DoTween 外掛程式 ............................................................................ 159
5.5.3 編寫腳本實現浮動特效 ...................................................................... 160
5.5.4 調整附加光源的陰影解析度 .............................................................. 162
第 6 章 VR中的 UI 技術 ........................................................................................... 163
6.1 製作文字介紹 UI ............................................................................................. 163
6.1.1 製作VR中的 UI 的一般流程 ............................................................ 163
6.1.2 為《蒙娜麗莎》畫像添加文字介紹 .................................................. 165
6.2 使用 Prefab Variant 技術製作雕塑介紹 UI .................................................... 168
6.2.1 準備製作 Original Prefab 的遊戲對象 ............................................... 169
6.2.2 創建 Prefab Variant .............................................................................. 169
6.2.3 編輯 Prefab Variant .............................................................................. 170
6.3 開發 UI 與體驗者移動的動態互動 ................................................................ 172
6.3.1 編寫 IntroTxtBasic 父類實現 UI 的自動顯示和隱藏 ........................ 173
6.3.2 編寫 IntroTxtRotate 子類實現 UI 永遠朝向體驗者 .......................... 176
6.4 使用 Curved UI 外掛程式進行 UI 互動開發 ......................................................... 178
6.4.1 Curved UI 外掛程式簡介 ............................................................................ 179
6.4.2 Curved UI 外掛程式與 SteamVR 2.x 的集成 ............................................ 180
6.5 解決 UI 互動與位置傳送互動衝突的問題 .................................................... 184
6.5.1 存在現象 .............................................................................................. 184
6.5.2 解決思路 .............................................................................................. 184
6.5.3 實現方法 .............................................................................................. 185
6.6 使用Modern UI Pack 外掛程式製作項目 UI 界面 ............................................... 188
6.6.1 Modern UI Pack 外掛程式概述 .................................................................. 188
6.6.2 Window Manager 簡介 ........................................................................ 189
6.6.3 使用 Modern UI Pack 外掛程式創建 UI 控制項 ........................................... 191
6.6.4 為視窗添加 UI 控制項 ............................................................................ 193
6.6.5 使用 TextMeshPro 在 VR 環境中顯示中文 .................................... 200
6.6.6 製作 SettingWindow中的內容 ........................................................... 207
6.7 開發系統選單的互動功能 .............................................................................. 210
第 7 章 場景互動功能開發 ....................................................................................... 217
7.1 實現切換場景風格的功能 .............................................................................. 217
7.1.1 導入材質資源 ...................................................................................... 217
7.1.2 編寫腳本來實現材質切換 .................................................................. 218
7.2 實現調節場景畫質表現功能 .......................................................................... 222
7.2.1 實現原理 .............................................................................................. 222
7.2.2 獲取 Slider 控制項的數值....................................................................... 222
7.2.3 動態修改特效參數 ............................................................................. 228
7.3 開發繪畫作品介紹的互動功能 ...................................................................... 234
7.3.1 互動設計思路分析 ............................................................................. 234
7.3.2 創建文字介紹 UI 並實現互動功能 ................................................. 234
7.4 開發作品的視頻播放功能 .............................................................................. 240
7.4.1 Video Player 組件簡介 ........................................................................ 240
7.4.2 創建視頻播放載體 ............................................................................. 241
7.4.3 設定 Video Player 組件 ....................................................................... 242
7.4.4 實現視頻播放控制功能 ...................................................................... 243
第 8 章 項目的導出 .................................................................................................. 248
8.1 提高照明參數烘焙光照貼圖 .......................................................................... 248
8.2 UI 界面最佳化 .................................................................................................... 249
8.3 解決材質導出後不顯示的問題 ...................................................................... 250
8.4 項目導出設定 ................................................................................................. 252
附錄 A:Unity 2020 發行說明(XR相關) ................................................................ 255