SteamVR简介(Yanlz+Steam+VR+Unity+AR+MR+XR+立钻哥哥+==)

SteamVR简介

版本

作者

参与者

完成日期

备注

SteamVR_Intro_V01_1.0

严立钻

 

2019.01.14

 

 

 

 

 

 

 

 

##《SteamVR简介》发布说明:

++++“SteamVR简介”:是对SteamVR的一个介绍;(昨天,我们发布了一个“OpenVR&OpenXR”简介,得知SteamVR是依赖于OpenVR的,所以我们今天开始探索一下“SteamVR”,OpenVR是C++接口,通过SteamVR的集成兼容可以得到我们想要的Unity使用的C#接口,这样更有利于Unity项目开发,所以我们将2019年度的重点技术突破点确立为:“SteamVR”,这个主题将会贯穿2019年!)

++++“SteamVR简介”:定位在一个介绍类知识,对于没有SteamVR知识的一个探索总结

++++OpenVR的Github:https://github.com/ValveSoftware/openvr

++++OpenXR官网:https://www.khronos.org/openxr

++++SteamVR的Github:https://github.com/ValveSoftware/steamvr_unity_plugin

 

 

 

##《SteamVR简介》目录

#第一篇:网络杂谈

#第二篇:视频杂谈

#第三篇:文档杂谈

#第四篇:项目杂谈

 

 

 

 

 

#第一篇:网络杂谈篇

#第一篇:网络杂谈篇

#第一篇:网络杂谈篇

++++立钻哥哥:“网络杂谈篇”是对SteamVR知识的全网搜索,利用“SteamVR”

++++A.1、SteamVR百度百科

++++A.2、SteamVR插件简介

++++A.3、Unity3D导入SteamVR Plugin错误汇总及原理解析

++++A.4、SteamVR SDK学习笔记

++++A.5、SteamVR2.0插件使用指南

++++A.6、

++++A.7、

 

 

 

 

 

##A.1、SteamVR百度百科

##A.1、SteamVR百度百科

++A.1、SteamVR百度百科

++++立钻哥哥:OpenVR是SteamVR API:开发免费使用

++++OpenVR为VR游戏提供统一的数据接口,从而使得VR游戏不用直接与厂商的SDK打交道

++++OpenVR可以独立于游戏来添加扩展新外设

++++OpenVR的Github:https://github.com/ValveSoftware/openvr

 

++SteamVR是依赖OpenVR的

++++立钻哥哥:SteamVR是一个Runtime
++++SteamVR是通过Steam安装在电脑上的,OpenVR是提供API

++++通过SteamVR,不同的VR系统(UnityUE等)调用OpenVRAPI来开发应用程序,还可在OpenVR中添加驱动来对接VR硬件

++++SteamVR平台主要是为VIVE服务的,但是它也兼容了OSVRRiftTouch的驱动

 

++OpenVR的API都是以C++接口类方式呈现

++++立钻哥哥:OpenVRAPI都是以C++接口类方式呈现的,而且都是纯虚函数

++++当应用程序初始化系统时,OpenVR会返回该应用程序所使用到的SDK头文件内相匹配的接口

++++OpenVR新发布的接口版本会兼容以前的接口版本,因此,应用程序不必更新到最新的SDK也可正常使用

 

++SteamVR变得越来越开放

++++立钻哥哥:SteamVR变得越来越开放;越来越多的VR头显将“支持Steam”作为卖点之一

++++HTC最早拉上了Valve作为合作伙伴,不仅由于SteamVR本来就是个现成的内容池,Valve对于VR软硬件的固有经验,也成为第三方开发商相继入驻的标杆

++++雷蛇OSVR最大的意义在于为第三方硬件商提供了捷径,新生产品能够迅速接入最具竞争力的平台

++++微软宣布Windows VR头显将全部接入SteamVR,这意味着与其合作的联想、宏碁、戴尔等老牌电子产品制造商也快速加入

++++Oculus RiftPSVR的封闭平台一直为人诟病;(Oculus几乎将钱都花在了游戏内容打造和独占签约上)

 

 

 

 

 

 

 

##A.2、SteamVR插件简介

##A.2、SteamVR插件简介

++A.2、SteamVR插件简介

++++立钻哥哥:SteamVR可以在Unity Store下载插件

 

++SteamVR的GitHub

++++立钻哥哥:SteamVR的GitHub:https://github.com/ValveSoftware/steamvr_unity_plugin

 

++SteamVR的目录结构

++++立钻哥哥:SteamVR的目录结构

++++[SteamVR/Plugins/]:主要是一些API相关

 

++制作VR Camera(VR视角)

++++立钻哥哥:如果需要做一款VR游戏,需要把摄像机调成VR视角

++++[方法1]:使用预制的VR摄像机

++++[方法2]:将普通的摄像机修改成VR摄像机

 

 

 

 

 

 

 

##A.3、Unity3D导入SteamVR Plugin错误汇总及原理解析

##A.3、Unity3D导入SteamVR Plugin错误汇总及原理解析

++A.3、Unity3D导入SteamVR Plugin错误汇总及原理解析

++++立钻哥哥:汇总Unity3D中导入SteamVR Plugin资源包报错;

错误码

报错内容

0

HmdError_None

1

HmdError_Unknown

100

HmdError_Init_InstallationNotFound

101

HmdError_Init_InstallationCorrupt

102

HmdError_Init_VRClientDLLNotFound

103

HmdError_Init_FileNotFound

104

HmdError_Init_FactoryNotFound

105

HmdError_Init_InterfaceNotFound

106

HmdError_Init_InvalidInterface

107

HmdError_Init_UserConfigDirectoryInvalid

108

HmdError_Init_HmdNotFound

109

HmdError_Init_NotInitialized

110

HmdError_Init_PathRegistryNotFound

111

HmdError_Init_NotConfigPath

112

HmdError_Init_NoLogPath

113

HmdError_Init_PathRegistryNotWritable

200

HmdError_Driver_Failed

201

HmdError_Driver_Unknown

202

HmdError_Driver_HmdUnKnown

203

HmdError_Driver_NotLoaded

204

HmdError_Driver_RuntimeOutOfDate

205

HmdError_Driver_HmdInUse

300

HmdError_IPC_ServerInitFailed

301

HmdError_IPC_ConnectFailed

302

HmdError_IPC_SharedStateInitFailed

303

HmdError_IPC_CompositorInitFailed

304

HmdError_IPC_MutexInitFailed

1000

HmdError_VendorSpecific_UnableToConnectToOculusRuntime

2000

HmdError_Steam_SteamInstallationNotFound

Tips

立钻哥哥带您分析[SteamVR Plugin]导入报错;

++++[0 :HmdError_None]:无错误

++++[1 :HmdError_Unknown]:未知错误

++++[100 :HmdError_Init_InstallationNotFound]:在路径注册表中指定的安装文件夹不存在

++++[101 :HmdError_Init_InstallationCorrupt]:在路径注册表中指定的安装文件夹没有bin文件

++++[102 :HmdError_Init_VRClientDLLNotFound]:bin文件夹中没有vrclient.dll或系统对应的动态库

++++[103 :HmdError_Init_FileNotFound]:驱动不能加载

++++[104 :HmdError_Init_FactoryNotFound]:vrclient.dll中的工厂方法找不到,是vrclient.dll出现异常吗?

++++[105 :HmdError_Init_InterfaceNotFound]:VR_Init或VR_GetGenericInterface请求的接口不存在,是使用的SDK版本比安装的runtime版本更新吗?

++++[106 :HmdError_Init_InvalidInterface]:错误码当前没有被使用

++++[107 :HmdError_Init_UserConfigDirectoryInvalid]:路径注册表中的配置目录不可写

++++[108 :HmdError_Init_HmdNotFound]:HMD没有添加到系统或者HMD没有初始化

++++[109 :HmdError_Init_NotInitialized]:如果VR_GetGenericInterface在VR_Init之前或者在VR_Shutdown之后被调用会返回这个错误

++++[110 :HmdError_Init_PathRegistryNotFound]:VR路径注册文件不能被读;重新安装OpenVR runtime或Steam上的SteamVR应用程序

++++[111 :HmdError_Init_NoConfigPath]:配置路径没有在路径注册表中指定

++++[112 :HmdError_Init_NoLogPath]:log路径没有在路径注册表中指定

++++[113 :HmdError_Init_PathRegistryNotWritable]:VR路径注册表不可写

++++[200 :HmdError_Driver_Failed]:驱动初始化失败,内部错误

++++[201 :HmdError_Driver_Unknown]:驱动由于位置原因失败,内部错误

++++[202 :HmdError_Driver_HmdUnknown]:驱动未检测到HMD,内部错误

++++[203 :HmdError_Driver_NotLoaded]:在该驱动发出请求前,还没有加载,内部错误

++++[204 :HmdError_Driver_RuntimeOutOfDate]:如果一个驱动自带runtime,那么需要更新它的runtime

++++[205 :HmdError_Driver_HmdInUse]:另外一个非OpenVR的应用程序正在使用HMD

++++[300 :HmdError_IPC_ServerInitFailed]:OpenVR不能够启动vrserver

++++[301 :HmdError_IPC_ConnectFailed]:多次尝试后,OpenVR不能链接到vrserver或vrcompositor

++++[302 :HmdError_IPC_SharedStateInitFailed]:vrserver或vrcompositor的共享内存不能够打开

++++[303 :HmdError_IPC_CompositorInitFailed]:OpenVR不能够启动vrcompositor

++++[304 :HmdError_IPC_MutexInitFailed]:OpenVR不能够创建互斥量来与vrcompositor通信

++++[1000 :HmdError_VendorSpecific_UnableToConnectToOculusRuntime]:由于未知原因导致到Oculus runtime的连接失败

++++[2000 :HmdError_Steam_SteamInstallationNotFound]:当前没有使用的错误码;(报错原因:Unity3D中内置的OpenVR和SteamVR驱动版本不对应导致)

 

 

 

 

 

 

 

##A.4、SteamVR SDK学习笔记

##A.4、SteamVR SDK学习笔记

++A.4、SteamVR SDK学习笔记

++++立钻哥哥:分析SteamVR中各脚本的功能

 

 

 

 

 

 

 

 

 

##A.5、SteamVR2.0插件使用指南

##A.5、SteamVR2.0插件使用指南

++A.5、SteamVR2.0插件使用指南

++++立钻哥哥:随着VR生态的日益增长,以及Valve Knuckles控制器的逐渐完善,SteamVR未来能够提供给用户更多的交互方式,比如手指跟踪和力反馈

++++近期,Valve在Unity资源商店中将SteamVR插件更新到了2.0版:

 

++概述

++++立钻哥哥:三年前(2015年),SteamVR SDK for Unity插件的第一个版本在Unity资源商店发布,在以后的时间里,VR生态发生了很多变化,比较显著的是出现了很多不同类型的控制器,如下图:

++++随着越来越多的VR设备推出,控制器类型逐渐趋向于碎片化;每当有新的控制器发布,都会给开发者带来一些额外的工作量:游戏项目需要修改交互代码以适配新的设备
++++从开发层面上来看,不同的控制器具有不同的键值映射,所以,当现有VR应用程序移植到另外一个VR平台的时候,需要针对目标平台进行交互适配;鉴于此,Valve为Unity开发者推出了SteamVR Unity Plugin.0(简称SteamVR2.0),能够使开发者在编程中专注于用户的动作,而不是具体的控制器按键

 

++重要更新:Input System

++++立钻哥哥:SteamVR2.0的重要更新是加入了[Input System]

++++推出[Input System]的目的,是为了更加符合OpenXR标准,以及配合即将正式推出的Knuckles控制器

++++目前多数主流VR平台均加入了OpenXR开放标准:

 

++++[Input System]与之前处理用户输入有显著的不同,使用[SteamVR Input System],开发人员可以在应用程序之外定义默认的动作并与按键进行绑定,而不需要将输入视为某一特定设备的特定按键;这样新的设备可以快速适配应用程序,无需更改代码

++++比如:当开发者检测玩家是否抓取某个物体的时候,不是检测Vive等控制器的Trigger键或Oculus Touch控制器的Grip键是否被按下,而是检测预定义的“Grab”动作是否为True即可;(作为开发者,可以在SteamVR中为Grab动作设置默认按键和阈值,当程序运行时,也可修改这些数值以满足玩家的个人偏好);基于这种机制,不光能够解决控制器碎片化的问题,也可以快速适配未来发布的设备

 

 

++动作(Actions)

++++立钻哥哥:[Input System]的核心概念是动作(Action),基于动作的输入系统对于游戏引擎来说更有意义,Unreal一直在沿用这种方案,而Unity目前在开发中的输入系统也将遵循这一原则

++++开发中需要放弃之前关于“按下某个按键发生什么事情”的思想,取而代之的是使用“做出某个动作发生什么事情”的思想

++++SteamVR2.0将动作抽象为以下6种类型:BooleanSingleVector2Vector3PoseSkeleton等类型

++++[Boolean]类型的动作代表只有两种状态的动作:TrueFalse,比如抓取(Grab)动作,只有抓取或未抓取两种状态,不存在中间状态;(在Unity中对应类为:SteamVR_Action_Boolean

++++[Single]类型的动作能够返回0~1之间的数值,比如Trigger键按下到松开的过程;(在Unity中对应类为:SteamVR_Action_Single

++++[Vector2]类型动作能够返回二维数,比如Touchpad上的触摸或手柄摇杆;使用这样的数值能够控制物体在四个方向的运动,典型的应用是使用Touchpad控制无人机或小车的运动;(在Unity中对应类为:SteamVR_Action_Vector2

++++[Vector3]类型的动作能够返回三维数值;(在Unity中对应类为SteamVR_Action_Vector3)

++++[Pose]类型的动作表示三维空间中的位置和旋转,一般用于跟踪VR控制器;(在Unity中对应类为SteamVR_Action_Pose;

++++[Skeleton]类型的动作能够获取用户在持握手柄控制器时的手指关节数据,通过返回数据,结合手部渲染模型,能够更加真实的呈现手部在虚拟世界的姿态,虽然不及像Leap Motion等设备获取手指输入那样精确,但是足以获得良好的沉浸感;(在Unity中对应类为:SteamVR_Action_Skeleton

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

++立钻哥哥推荐的拓展学习链接(Link_Url)

立钻哥哥推荐的拓展学习链接(Link_Url)

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

++++HTC_VIVE开发基础https://blog.csdn.net/VRunSoftYanlz/article/details/81989970

++++Oculus杂谈https://blog.csdn.net/VRunSoftYanlz/article/details/82469850

++++Oculus安装使用https://blog.csdn.net/VRunSoftYanlz/article/details/82718982

++++SteamVR简介https://blog.csdn.net/VRunSoftYanlz/article/details/86484254

++++OpenXR简介https://blog.csdn.net/VRunSoftYanlz/article/details/85726365

++++VRTK杂谈https://blog.csdn.net/VRunSoftYanlz/article/details/82562993

++++VRTK快速入门(杂谈)https://blog.csdn.net/VRunSoftYanlz/article/details/82955267

++++VRTK官方示例(目录)https://blog.csdn.net/VRunSoftYanlz/article/details/82955410

++++VRTK代码结构(目录)https://blog.csdn.net/VRunSoftYanlz/article/details/82780085

++++VRTK(SceneResources)https://blog.csdn.net/VRunSoftYanlz/article/details/82795400

++++VRTK_ControllerEventshttps://blog.csdn.net/VRunSoftYanlz/article/details/83099512

++++VRTK_InteractTouchhttps://blog.csdn.net/VRunSoftYanlz/article/details/83120220

++++VR实验:以太网帧的构成https://blog.csdn.net/VRunSoftYanlz/article/details/82598140

++++FrameVR示例V0913https://blog.csdn.net/VRunSoftYanlz/article/details/82808498

++++FrameVR示例V1003https://blog.csdn.net/VRunSoftYanlz/article/details/83066516

++++SwitchMachineV1022https://blog.csdn.net/VRunSoftYanlz/article/details/83280886

++++PlaySceneManagerV1022https://blog.csdn.net/VRunSoftYanlz/article/details/83280886

++++Unity5.x用户手册https://blog.csdn.net/VRunSoftYanlz/article/details/81712741

++++Unity面试题ABChttps://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++Unity面试题Dhttps://blog.csdn.net/VRunSoftYanlz/article/details/78630838

++++Unity面试题Ehttps://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity面试题Fhttps://blog.csdn.net/VRunSoftYanlz/article/details/78630945

++++Cocos2dx面试题https://blog.csdn.net/VRunSoftYanlz/article/details/78630967

++++禅道[zentao]https://blog.csdn.net/VRunSoftYanlz/article/details/83964057

++++Lua快速入门篇(Xlua拓展):https://blog.csdn.net/VRunSoftYanlz/article/details/81173818

++++Lua快速入门篇(XLua教程):https://blog.csdn.net/VRunSoftYanlz/article/details/81141502

++++Lua快速入门篇(基础概述)https://blog.csdn.net/VRunSoftYanlz/article/details/81041359

++++框架知识点https://blog.csdn.net/VRunSoftYanlz/article/details/80862879

++++游戏框架(UI框架夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80781140

++++游戏框架(初探篇)https://blog.csdn.net/VRunSoftYanlz/article/details/80630325

++++设计模式简单整理https://blog.csdn.net/vrunsoftyanlz/article/details/79839641

++++专题:设计模式(精华篇)https://blog.csdn.net/VRunSoftYanlz/article/details/81322678

++++U3D小项目参考https://blog.csdn.net/vrunsoftyanlz/article/details/80141811

++++Unity案例(Vehicle)https://blog.csdn.net/VRunSoftYanlz/article/details/82355876

++++UML类图https://blog.csdn.net/vrunsoftyanlz/article/details/80289461

++++Unity知识点0001https://blog.csdn.net/vrunsoftyanlz/article/details/80302012

++++Unity知识点0008https://blog.csdn.net/VRunSoftYanlz/article/details/81153606

++++U3D_Shader编程(第一篇:快速入门篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372071

++++U3D_Shader编程(第二篇:基础夯实篇)https://blog.csdn.net/vrunsoftyanlz/article/details/80372628

++++Unity引擎基础https://blog.csdn.net/vrunsoftyanlz/article/details/78881685

++++Unity面向组件开发https://blog.csdn.net/vrunsoftyanlz/article/details/78881752

++++Unity物理系统https://blog.csdn.net/vrunsoftyanlz/article/details/78881879

++++Unity2D平台开发https://blog.csdn.net/vrunsoftyanlz/article/details/78882034

++++UGUI基础https://blog.csdn.net/vrunsoftyanlz/article/details/78884693

++++UGUI进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78884882

++++UGUI综合https://blog.csdn.net/vrunsoftyanlz/article/details/78885013

++++Unity动画系统基础https://blog.csdn.net/vrunsoftyanlz/article/details/78886068

++++Unity动画系统进阶https://blog.csdn.net/vrunsoftyanlz/article/details/78886198

++++Navigation导航系统https://blog.csdn.net/vrunsoftyanlz/article/details/78886281

++++Unity特效渲染https://blog.csdn.net/vrunsoftyanlz/article/details/78886403

++++Unity数据存储https://blog.csdn.net/vrunsoftyanlz/article/details/79251273

++++Unity中Sqlite数据库https://blog.csdn.net/vrunsoftyanlz/article/details/79254162

++++WWW类和协程https://blog.csdn.net/vrunsoftyanlz/article/details/79254559

++++Unity网络https://blog.csdn.net/vrunsoftyanlz/article/details/79254902

++++C#事件https://blog.csdn.net/vrunsoftyanlz/article/details/78631267

++++C#委托https://blog.csdn.net/vrunsoftyanlz/article/details/78631183

++++C#集合https://blog.csdn.net/vrunsoftyanlz/article/details/78631175

++++C#泛型https://blog.csdn.net/vrunsoftyanlz/article/details/78631141

++++C#接口https://blog.csdn.net/vrunsoftyanlz/article/details/78631122

++++C#静态类https://blog.csdn.net/vrunsoftyanlz/article/details/78630979

++++C#中System.String类https://blog.csdn.net/vrunsoftyanlz/article/details/78630945

++++C#数据类型https://blog.csdn.net/vrunsoftyanlz/article/details/78630913

++++Unity3D默认的快捷键https://blog.csdn.net/vrunsoftyanlz/article/details/78630838

++++游戏相关缩写https://blog.csdn.net/vrunsoftyanlz/article/details/78630687

++++UnityAPI.Rigidbody刚体https://blog.csdn.net/VRunSoftYanlz/article/details/81784053

++++UnityAPI.Material材质https://blog.csdn.net/VRunSoftYanlz/article/details/81814303

++++UnityAPI.Android安卓https://blog.csdn.net/VRunSoftYanlz/article/details/81843193

++++UnityAPI.AndroidJNI安卓JNIhttps://blog.csdn.net/VRunSoftYanlz/article/details/81879345

++++UnityAPI.Transform变换https://blog.csdn.net/VRunSoftYanlz/article/details/81916293

++++UnityAPI.WheelCollider轮碰撞器https://blog.csdn.net/VRunSoftYanlz/article/details/82356217

++++UnityAPI.Resources资源https://blog.csdn.net/VRunSoftYanlz/article/details/83155518

++++JSON数据结构https://blog.csdn.net/VRunSoftYanlz/article/details/82026644

++++CocosStudio快速入门https://blog.csdn.net/VRunSoftYanlz/article/details/82356839

++++Unity企业内训(目录)https://blog.csdn.net/VRunSoftYanlz/article/details/82634668

++++Unity企业内训(第1讲)https://blog.csdn.net/VRunSoftYanlz/article/details/82634733

++++Unity企业内训(第2讲)https://blog.csdn.net/VRunSoftYanlz/article/details/82861180

++++Unity企业内训(第3讲)https://blog.csdn.net/VRunSoftYanlz/article/details/82927699

++++Unity企业内训(第4讲)https://blog.csdn.net/VRunSoftYanlz/article/details/83479776

++++Unity企业内训(第5讲)https://blog.csdn.net/VRunSoftYanlz/article/details/83963811

++++Unity企业内训(第6讲)https://blog.csdn.net/VRunSoftYanlz/article/details/84207696

++++插件<Obi Rope>https://blog.csdn.net/VRunSoftYanlz/article/details/83963905

++++计算机组成原理(教材篇)https://blog.csdn.net/VRunSoftYanlz/article/details/82719129

++++立钻哥哥Unity 学习空间: http://blog.csdn.net/VRunSoftYanlz/

--_--VRunSoft:lovezuanzuan--_--

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值