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后直接导入就行

HTC VIVE开发教程(一)_第1张图片

这里选择要导入的代码,选择all,然后出现setting选择的界面,同样选择Accept all

HTC VIVE开发教程(一)_第2张图片 HTC VIVE开发教程(一)_第3张图片

Steam VR插件使用起来也非常简单,直接将项目的camera替换成prefabs中的CameraRig就可以了

Steam VR目录结构

我们现在再来看看插件的目录结构

HTC VIVE开发教程(一)_第4张图片

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

你可能感兴趣的:(VR开发专栏)