1. 程式人生 > >HTC VIVE開發教程(一)

HTC VIVE開發教程(一)

在這一節,我介紹的主要內容有

  • 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的工作原理。