一个完整的增强现实系统是由一组紧密联结、实时工作的硬件部件与相关的软件系统协同实现的,常用的有如下三种组成形式。
Monitor-Based
在基于计算机显示器的AR实现方案中,摄像机摄取的真实世界图像输入到计算机中,与计算机图形系统产生的虚拟景象合成,并输出到屏幕显示器。用户从屏幕上看到最终的增强场景。它虽然简单,但不能带给用户多少沉浸感。Monitor-Based增强现实系统实现方案如下图所示。
光学透视式
头盔式显示器(Head-mounted displays,简称HMD)被广泛应用于虚拟现实系统中,用以增强用户的视觉沉浸感。增强现实技术的研究者们也采用了类似的显示技术,这就是在AR中广泛应用的穿透式HMD。根据具体实现原理又划分为两大类,分别是基于光学原理的穿透式HMD(Optical See-through HMD)和基于视频合成技术的穿透式HMD(Video See-through HMD)。光学透视式增强现实系统实现方案如下图所示。
光学透视式增强现实系统具有简单、分辨率高、没有视觉偏差等优点,但它同时也存在着定位精度要求高、延迟匹配难、视野相对较窄和价格高等不足。
视频透视式
视频透视式增强现实系统采用的基于视频合成技术的穿透式HMD(Video See-through HMD),实现方案如图5所示。
基站可以追踪多个Tracker,所以场景中可以存在多个Tracker。
如下图,从右往左:
位置1:LED指示灯,用来指示Tracker的状态,与手柄相同,如蓝色灯闪烁,则表示该设备尚未配对;如绿色灯亮,则开始工作并正常;如红灯,则表示电量低。
位置2:设备开关。
位置3:与手柄类似,用来接收基站信号的传感器。
位置41:1/4英寸螺丝孔,可以将其固定在标准三脚架云台上,与单反相机同。
位置42:用来加强稳定的针槽。
位置43:d簧针,6位。
位置5:USB接口,一方面用来充电,一方面用来与PC通信,比如更新固件等。
关于43位置的6位d簧针,玩家可以通过自己制作一些电器开关之类的外设与其通信,发送电信号,达到像手柄一样向PC发送按键触发事件的效果。下图为6个针位分别对应的按键信号名称。由此可见,的确是个阉割版的手柄,或者说,像是一个没有按键只有键位开关的键盘。
Tracker有很多应用场景,首先比较常用的就是追踪物体,你可以将它绑定到一些物体上,比如球棒、球拍、球杆、座椅等等,在传统行业里,可以绑定一些维修用的工具,扳手、锤子等,从而达到更加真实的体验。
另外,我们知道Tracker有d簧针和USB 端口,还可以制作一些符合特定使用场合的外设,以更加符合外设的使用习惯,比如现在比较典型的PPGun,通过USB端口通信,将原来手柄的按键映射到了q体相关的功能部件上,如Trigger键对应着q的扳机,Touchpad映射到了q体的摇杆等等。
另外,Tracker可以作为动作捕捉设备。我们知道,以现有的VR设备,只有手柄和头盔,很难实现全身的动作捕捉,那么使用Tracker,配合一些反向动力学插件,比如FINAL-IK,我们就能实现在VR中的全身动作捕捉。基站可以跟踪多个Tracker设备,所以就可以将多个设备绑定在人的关键部位,比如双脚、膝盖、腰部等等,设备越多,捕获的动作就越精确。
Tracker包装中包含一个无线接收器,当你需要在使用手柄的同时使用Tracker,那么需要将此无线接收器连接到PC,用来接收Trakcer的信号,在使用时,需要将两个手柄同时打开;如果不使用无线接收器,则系统将Trakcer认为是一个像手柄一样的控制器。
初次使用Tracker,需要进行设备的配对,当按下开关以后,蓝色灯会闪烁,表示设备正在等在配对,在SteamVR Runtime中右键(注意,这是是SteamVR运行时,我们在之前的课时里也区分过SteamVR SDK和SteamVR运行时),选择“设备”-“配对控制器”完成设备的配对。配对成功后,即可看到代表了Tracker的图标,如下图。
作为开发者,最关心的当然是如何在引擎里面使用Tracker。我们以Unity为例,Tracker的开发并不需要额外的SDK支持,只需要导入VR开发必备的在SteamVR SDK即可。在SteamVR中,所有基站能够追踪的物体,都认为是Tracked Object。
1 场景中需要一个可视的物体来标记Tracker,在引擎中,可以新建一个GameObject用来标记Tracker,命名为Tracker,在其上添加SteamVR_TrackedObject脚本。
添加完毕以后,脚本中的Index属性,可以在下拉列表指定可追踪的物体对应的VR设备,默认为HMD,即头盔,Device1、Device2分别对应两个手柄,以此类推。(注:此处可以不进行分配)
2 为Tracker容器添加一个可视化的3D物体,这里添加一个Cube。
3 选择CameraRig,在Steam VR_Controller Manager的Objects属性中,将Tracker添加到数组元素中。如下图
4点击Play,可以看到Cube标识了Tracker的位置以及朝向。
既然已经标识了Tracker的位置,那么我们就可以在场景中添加一个与现实世界相同的模型来进行映射,我们之前介绍过将手柄自定义为一个虚拟道具,那么使用Tracker将现实物体带入到VR中以后,会得到更加真实的感觉,首先是don't make me think,用户不需要了解道具如何使用,手柄的按键如何使用,只需要按照自然的使用方法即可。其次是能够获得与现实一样的真实 *** 作感。
由于缺少现实道具,笔者将三脚架映射为长矛。
1 删除添加的Cube,讲准备好的长矛模型拖入场景,作为"Traker"容器的子物体。
2 为"Trakcer"容器添加可视化的节点。
3调整道具与"Tracker"容器的相对位置,笔者将Tracker放置于三脚架云台的顶端,故在场景中,需要保持这样的位置关系,如下图。
4调整道具朝向,旋转90度,位置及朝向,需根据模型坐标点以及具体应用场景调整。
5点击Play进行测试,当移动三脚架时,场景中的道具进行了相应的变化。
以上为Tracker的基本使用方法,后续的开发与Tracker并没有太多关联,可以归并到VR的基本开发路线上来。Tracker单就功能来说,并没有太多高深的黑科技在里面,对其进行的开发,也没有太多新的知识,所以限制其发挥功能的只是想象力,各位可以根据自己的VR应用场景,充分发挥想象,以开发出更多有创意的内容。显示元件,光学系统。头盔式显示器,简称HMD(头显),又称“VR头盔”,人们用来体验VR的硬件设备,HMD这个术语或是当今最常见的VR术语了,一套HDM通常要包括一个护目镜或者一个头盔,人们戴上这个设备就能体验VR的乐趣了,其主要组成是显示元件,光学系统,一般由图像信息显示源、图像成像的光学系统、定位传感系统、电路控制及连接系统、头盔及配重装置组成。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)