一种基于特征图像旋转来响应事件的交互方法与流程

文档序号:13759991阅读:276来源:国知局
本发明涉及计算机科学的虚拟现实领域,具体涉及一种基于特征图像旋转来响应事件的交互方法。
背景技术
:虚拟现实,简称VR(virtualreality),是由美国VPL公司创建人拉尼尔(JaronLanier)在20世纪80年代初提出的,在90年代经历了彻底的失败之后再次闪耀地出现在大众的视野中。其具体内涵是:综合利用计算机图形系统和各种现实及控制等接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术。VR(虚拟现实)技术可广泛地应用于城市规划、室内设计、工业仿真、古迹复原、桥梁道路设计、房地产销售、旅游教学、水利电力、地质灾害、教育培训等众多领域,为其提供切实可行的解决方案。如今使用最多的VR设备是GoogleCardboard,因为其价格较低、能搭配手机直接使用,所以大部分用户愿意通过它来尝试这一新兴领域,然而使用手机作为VR设备也有一个缺点,那就是没有合适的输入设备,用户不能再通过触摸屏幕来操作软件。如果我们通过应用市场搜索VR,搜出来的软件基本分为以下3类:视频播放器类,漫游体验类,游戏类。其中视频播放器和漫游体验类几乎没有用到任何交互方式,用户所需要做的仅仅是戴上Cardboard和耳机,安静地坐着欣赏就行。除此之外,其他应用用到的交互方式无非是以下几种。1.使用Cardboard盒子上的物理按钮Cardboard2.0相较于之前的版本,在纸盒上多了一个物理按钮。这个按钮连接的是一个末端装有导电垫板的三角形折翼,按下按钮,折翼就会接触触屏。在用户不能接触到触摸屏的情况下起到点击触屏的效果。但是,该按钮的触发位置是固定的,始终位于屏幕的正上方。这个按钮一般作为返回或者退出键使用,没有特别大的交互意义。2.视觉中心凝视触发这是目前市面上VR应用中最常见的交互方式,在屏幕中心会有一个用于瞄准的原点,由于用户无法触摸到屏幕,用户可以通过旋转头部,使得该小圆点对准某些触发器,通过短时间的凝视该物体来达到触发事件的效果。大部分漫游体验类和游戏类软件用到的交互方式都是这种,例如月球体验,将中心对准不同的数字可以看到不同的信息,再例如打僵尸游戏,会一直朝屏幕中心开枪,玩家只需要转动头部使得中心对准僵尸即可。3.虚拟按钮虚拟按钮是由Vuforia套件提供的一种增强现实交互方式,通过摄像头识别出现实空间中的特征图像,在屏幕上对应位置创建一个虚拟的按钮,如果用户用手指触摸这个按钮,则会触发相应事件。但是这种交互方式响应准确率不高,速度也不佳。平常用户在使用电脑时,用到最多的往往是鼠标。鼠标的移动和单击满足了日常使用电脑的绝大部分需求,然而手机并没有这样的外设,只能通过摄像头来捕捉物体,用于实现鼠标的移动比较简单,但为了响应单击左键和一直按住左键这样的输入操作仍有难度。技术实现要素:本发明提供了一种基于特征图像旋转来响应事件的交互方法,通过罗盘指针实现鼠标的左键功能,相比于虚拟按钮有更好的交互体验。一种基于特征图像旋转来响应事件的交互方法,包括:为特征图像绑定虚拟点和虚拟杆,其中虚拟点与特征图像同步旋转,虚拟杆保持朝向不变,且与虚拟点的旋转路径相交,旋转特征图像至虚拟点和虚拟杆相交或分离时,触发事件。本发明通过虚拟点和虚拟杆的配合实现鼠标左键的功能,虚拟点和虚拟杆共同构成罗盘指针,优选地,记录虚拟点和虚拟杆的相交以及分离的时刻,利用虚拟点和虚拟杆的位置变化与时间的关系,触发相应的事件。具体地,当虚拟点与虚拟杆相交时,相当于点击鼠标左键,如果一直保持相交的状态,则相当于一直按下鼠标左键,如果再次旋转至虚拟点和虚拟杆分离,则相当于松开鼠标左键,如果虚拟点和虚拟杆的接触时间较短,则相当于一次鼠标左键单击。作为优选,特征图像由Vuforia提供识别,虚拟点和虚拟杆的渲染由Unity3D引擎实现。所述的虚拟点并非严格为点状,而是可以根据需要设置为各种形状,作为优选,所述虚拟点为球状,虚拟杆为圆柱状。作为优选,采用Unity的LookAt函数,使虚拟杆的朝向保持不变。作为优选,所述虚拟点的旋转路径为圆形,旋转路径与虚拟杆具有两个交点。进一步优选,旋转路径的圆心为虚拟杆上的一点。再优选,旋转路径的圆心为虚拟杆的中点。本发明提供的基于特征图像旋转来响应事件的交互方法,通过罗盘指针实现鼠标的左键功能,相比于虚拟按钮有更好的交互体验。附图说明图1为本发明基于特征图像旋转来响应事件的交互方法中采用的罗盘指针的示意图。具体实施方式下面结合附图,对本发明基于特征图像旋转来响应事件的交互方法做详细描述。如图1所示,本发明提供的基于特征图像旋转来响应事件的交互方法基于如图1所示的罗盘指针实现,为特征图像绑定一个罗盘指针,罗盘指针包括一个虚拟点(即图1中的圆球2)和一个虚拟杆(即图1中的圆柱1),用户在现实中旋转物体,该物体在虚拟现实中的特征图像也相应旋转,虚拟点随特征图像旋转,旋转轨迹如图1中虚线所示为圆形,虚拟杆并不随用户的操作而旋转,而是始终朝向屏幕的上方,类似于指南针,虚拟点的旋转轨迹的圆心为虚拟杆的中心重合,虚拟点的旋转轨迹与虚拟杆有两个交点。当虚拟点随特征图像旋转到某个角度时,虚拟点和虚拟杆相碰,相当于点击鼠标左键,如果一直保持相碰的状态,则相当于一直按下鼠标左键,如果再次旋转至虚拟点和虚拟杆分离,则相当于松开鼠标左键,如果虚拟点和虚拟杆的接触时间较短,则相当于一次鼠标左键单击。在Unity3D引擎中,使用Vuforia作为特征图像识别工具,使用ImageTarget绑定虚拟物体(例如虚拟点和虚拟杆)时,该虚拟物体始终会和特征图像保持初始的相对位置关系,也就是随着图像旋转而旋转。因此,只需要考虑使虚拟杆保持垂直方向即可。调用Unity的LookAt函数,使得虚拟杆一直朝向某个点。观察到相机屏幕的渲染层在Unity中是会随时运动的,那么只需要实时的获取它的位置即可,也就是ARCamera.StereoCameraLeft.BackgroundPlane这个部件,通过获取它的坐标,再在y轴正方向偏移一定常数,就是需要朝向的目标点了,使虚拟杆一直朝向目标点,即可实现虚拟杆朝向的不变。虚拟点与虚拟杆的碰撞检测由Unity提供的接口实现。为虚拟点绑定Collider脚本,为虚拟杆绑定Collider脚本,勾选isTrigger,绑定Rigidbody脚本,反选useGravity,这样虚拟杆会被当成一个刚体,虚拟点会被当成一个碰撞接收器,每当刚体碰撞到触发器的时候,会调用如表1所示的3个函数。表1函数名功能voidOnTriggerEnter()当初次碰撞时调用voidOnTriggerStay()当碰撞持续时调用voidOnTriggerExit()当碰撞结束时调用通过编写调用函数,记录碰撞时间便可以实现类似鼠标单击,长按的功能。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1