3dwoo大學簡體電腦書店
虛擬現實原理與開發:基于 Unity 的 VR 技術實現
( 簡體 字)
作者:邵偉類別:1. -> 程式設計 -> VR+AR
   2. -> 多媒體 -> 遊戲引擎 -> Unity
出版社:電子工業出版社虛擬現實原理與開發:基于 Unity 的 VR 技術實現 3dWoo書號: 56155
詢問書籍請說出此書號!
缺書
NT售價: 545
出版日:11/1/2022
頁數:272
光碟數:0
站長推薦:
印刷:全彩印刷語系: ( 簡體 字 )
ISBN:9787121444845 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第 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.2 SteamVR Plugin 2.x 新版本的變化 ..................................................... 14
1.3.3 導入 SteamVR 插件 .............................................................................. 15
1.3.4 初次運行 SteamVR 應用程序 ............................................................... 17
1.4 SteamVR 2.x 中的動作 .................................................................................... 19
1.4.1 SteamVR 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.1 Interaction System 的核心模塊 ............................................................. 31
1.6.2 使用 Interaction System 實現位置傳送 ............................................... 32
1.6.3 使用 Interaction System 實現與物體的交互 ....................................... 35
1.7 在 SteamVR 2.x 中使用自定義手部模型 ....................................................... 37
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 模型對接標準 .................................................................................................... 72
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.4 Baked 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.1 Substance 材質的使用 .................................................................................... 115
4.1.1 概述 ...................................................................................................... 115
4.1.2 Substance in Unity 插件的使用 .......................................................... 116
4.1.3 在 Unity 中使用 Substance 材質 ..................................................... 117
4.2 使用 Substance 3D Designer 制作墻面材質 ................................................. 121
4.2.1 Substance 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.1.2 實現在 VR 頭顯中查看場景內容 ...................................................... 138
5.1.3 將必要材質適配 URP ......................................................................... 139
5.1.4 實現位置傳送功能 ............................................................................. 140
5.1.5 優化位置傳送體驗 ............................................................................. 142
5.1.6 整理場景游戲對象 ............................................................................. 144
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
隨著5G、人工智能、云計算等技術的發展,虛擬現實技術將在醫療、教育、工業等場景中發揮重要的作用。同時,它還是通向元宇宙的重要入口和體驗場景之一。 因為Unity是當前業界領先的VR/AR內容制作工具,所以本書基于Unity編輯器對其進行講解。本書主要分為兩大部分:第一部分講解SteamVR 2.x Unity插件的功能,包括新引入的動作機制和Interaction System;第二部分以一個完整的VR項目為例,帶領讀者從零起步,從項目創建開始,到最終導出為可交付的應用程序。各章還會介紹在項目制作過程中涉及的核心技術,包括但不限于場景搭建、制作VR中的UI、使用第三方工具制作材質資源、烘焙場景的光照貼圖、交互開發等。
北京時間 2021 年 10 月 29 日,Facebook 公司的 CEO 扎克伯格在 Connect 2021 大會上宣布,將會注重元宇宙的開發、擴展與應用,并將公司名稱由“Facebook”改為“Meta”。與元宇宙關系密切的虛擬現實技術再次獲得公眾的極高關注。
虛擬現實(Virtual Reality,VR)不是元宇宙的全部,卻是通向元宇宙的重要入口和體驗場景之一。無論是 VR 還是元宇宙,目前都處于行業發展初期,其基礎設施還有非常大的提升空間。VR 技術對于開發者尚存在一定的門檻,零基礎的朋友對于項目制作流程尚存在疑慮,所以本書主旨在于為初學者解答以上問題,并帶領大家從零開始制作一個完整的 VR 項目。
Unity 是當前業界領先的 VR/AR 內容制作工具,全球 60%以上的 VR/AR 內容是基于 Unity進行制作的。Unity 為制作優質 VR 內容提供了一系列先進的解決方案,無論是 VR、AR 還是MR,都可以依靠 Unity 高度優化的渲染流水線和編輯器的快速迭代功能,使項目需求得以完美實現。基于跨平臺的優勢,Unity 支持所有新型主流平臺。本書將以 Unity 為主要創作工具,介紹與其相關的 VR 技術,以典型的 VR 解決方案 SteamVR 為目標平臺,講解 VR 應用程序制作的方方面面。

本書的主要內容
本書內容將圍繞 Unity 2020 LTS 及其配套的通用渲染管線(URP)展開,介紹當前主流的VR 軟件開發平臺——SteamVR,而硬件開發平臺則以 HTC VIVE 為主。本書通過講解完整項目的制作流程,使讀者能夠從設計、開發、策劃等方面對一個 VR 項目的制作流程產生更加深刻的認知。
第 1 章:本章介紹 SteamVR 2.x Unity 插件、SteamVR 動作的概念及使用方法,以及 Interaction System 的主要交互模塊。
第 2 章:本章介紹制作 VR 項目前的準備工作,為后續工作的開展做好準備。
第 3 章:本章介紹如何使用 Unity 光照技術為 VR 項目場景構建光照表現。
第 4 章:本章介紹如何使用材質制作工具為項目場景中的模型制作 PBR 材質。
第 5 章:本章介紹如何使用 SteamVR Unity 插件開發項目的 VR 交互功能。
第 6 章:本章介紹如何制作 VR 環境中使用的 UI 元素,并借助第三方插件設計和制作 VR項目中使用的系統菜單。
第 7 章:本章介紹如何結合 Unity 基礎知識為項目開發綜合交互功能,包括切換場景風格、調節渲染畫質、呈現視頻元素等。
第 8 章:本章介紹如何將制作的 VR 項目導出為可交付的應用程序,同時介紹導出前需要注意的技術細節。
附錄 A:Unity 編輯器推出的新版本通常會帶來功能的添加、API 的變更、性能的提升等變化,而了解每次版本的更新情況有利于為項目選擇合適的 Unity 編輯器,因此附錄 A 介紹了 Unity 2020 版本在歷次更新過程中帶來的與 XR 相關的發行說明。
本書不僅為讀者提供了與實例配套的資源,還可以根據作者在書中提到的文件存儲路徑,從隨書資源中找到對應的素材。
關于 SteamVR 2.x 與 SteamVR 1.x 所共有的部分功能,作者在《Unity VR 虛擬現實完全自學教程》一書中已經做了相關介紹,受限于篇幅,本書將不再贅述.
pagetop