HTC VIVE開發教程(一)
阿新 • • 發佈:2019-01-02
在這一節,我介紹的主要內容有
- HTC VIVE的安裝與入門
- VIVE外掛的結構目錄
學習VR有一段時間了,在這段時間裡我對HTC的vive還有Oculcus都進行過一定的研究,也開發出了幾款VR專案,算是基本完成了從Android客戶端到VR開發的技術轉型。在開發VR的時候我感覺相關的技術文件還非常的少,查詢資料實在頭疼。因此打算將我對vive的相關研究記錄下來,讓正在進行VR開發的同學能夠快速上手,也希望能和VR研究的牛人一起探索,共同進步。
vive的安裝與入門
vive是使用Steam的技術開發的,所以要開發vive,首先要下載Steam VR外掛,在assert store上面就可以直接搜尋SteamVR後直接匯入就行
這裡選擇要匯入的程式碼,選擇all,然後出現setting選擇的介面,同樣選擇Accept all
Steam VR外掛使用起來也非常簡單,直接將專案的camera替換成prefabs中的CameraRig就可以了
Steam VR目錄結構
我們現在再來看看外掛的目錄結構
Plugins
/*這個資料夾存放一些Steam VR的資訊*/
——penvr_api.bundle
——Contents
/*Steam VR底層的c++檔案*/
——x86
/*SteamVR C#呼叫底層c++的介面*/
openvr_api.cs
SteamVR
/*這個目錄下的指令碼都是用來定製SteamVR外掛中某些指令碼在Unity中的Inspector介面及功能的*/
——Editor
/*定製SteamVR_Camera.cs這個指令碼在Inspector中的顯示效果*/
SteamVR_Editor.cs
/*定製SteamVR_RenderModel.cs指令碼在Inspector中的功能*/
SteamVR_RenderModelEditor.cs
/*上面提到的彈出的SteamVR_Settings對話方塊裡面的選項就在這兒定製*/
SteamVR_Settings.cs
/*定製SteamVR_SkyBox.cs在Inspector中顯示的屬性*/
SteamVR_SkyboxEditor.cs
/*用來檢查外掛的更新*/
SteamVR_Update.cs
/*這個資料夾下面放著一些工具指令碼*/
——Extras
/*這個指令碼用來檢測物體是否被使用者所凝視*/
SteamVR_GazeTracker.cs
/*通過手柄指向來產生一條鐳射束*/
SteamVR_LeaserPointer.cs
/*用來瞬移的指令碼*/
SteamVR_Teleporter.cs
/*示例場景中扔物體的指令碼*/
SteamVR_TestThrow.cs
/*示例場景中跟蹤相機的指令碼*/
SteamVR_TestTrackedCamera.cs
/*控制器(手柄)整合指令碼*/
SteamVR_trackedController.cs
/*存放示例demo的材質體*/
——Materials
/*存放SteamVR預製體*/
——Prefabs
/*相機預製體*/
[CameraRig]
/*狀態相關的overlay顯示預製體*/
[Status]
/*SteamVR_Render預製體*/
[SteamVR]
/*一些自帶的shader*/
——Resources
——Scenes
/*SteamVR核心指令碼*/
——Scripts
/*SteamVR的封裝類*/
SteamVR.cs
/*SteamVR的核心相機類*/
SteamVR_Camera.cs
/*SteamVR相機翻轉*/
SteamVR_CameraFlip.cs
/*SteamVR相機網格隱藏*/
SteamVR_CameraMask.cs
/*控制器封裝類*/
SteamVR_Controller.cs
/*控制器管理類*/
SteamVR_ControllerManager.cs
/*聲音控制類*/
SteamVR_Ears.cs
/*外部相機*/
SteamVR_ExternalCamera.cs
/*場景進行漸顯或者漸隱的類*/
SteamVR_Fade.cs
/*跟蹤裝置的掃描範圍*/
SteamVR_Frustum.cs
/*繪製pc上的伴隨視窗*/
SteamVR_GameView.cs
/*關節反身運動*/
SteamVR_IK.cs
/*場景切換類*/
SteamVR_LoadLevel.cs
/*選單類*/
SteamVR_Menu.cs
/*overly封裝類*/
SteamVR_Overlay.cs
/*運動區域*/
SteamVR_PlayArea.cs
/*Vive渲染流程控制的核心類*/
SteamVR_Render.cs
/*設定天空盒*/
SteamVR_Skybox.cs
/*做球形投影的類*/
SteamVR_SphericalProjection.cs
/*通過overlay顯示統計資訊*/
SteamVR_Stats.cs
/*根據不同狀態漸變顯示不同的資訊*/
SteamVR_Status.cs
/*根據不同狀態漸變顯示不同文字資訊*/
SteamVR_StatusText.cs
/*控制器測試指令碼*/
SteamVR_TestController.cs
/*頭盔上的前置相機*/
SteamVR_TrackedCamera.cs
/*跟蹤裝置管理類*/
SteamVR_TrackedObject.cs
/*5.x版本以前更新裝置位置的指令碼*/
SteamVR_UpdatePoses.cs
/*工具類,包括事件系統,Transform等等*/
SteamVR_Utils.cs
/*常用的紋理*/
——Textures
瞭解了SteamVR的基本知識之後,我們就可以深入的開始研究了。後面的幾節我會詳細的介紹每一個指令碼中的程式碼,以及SteamVR的工作原理。