在这一节,我介绍的主要内容有
- 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的工作原理。