一种判断虚拟现实应用的ui控件被选中的方法和装置的制造方法

文档序号:10534127阅读:135来源:国知局
一种判断虚拟现实应用的ui控件被选中的方法和装置的制造方法
【专利摘要】本发明提出一种判断虚拟现实应用的UI控件被选中的方法和装置,方法包括:步骤S001,获取人眼视线;步骤S002,若所述人眼视线与用于盛放多个所述UI控件的包围盒相交,则计算所述人眼视线在所述包围盒内的相交位置,将所述相交位置的UI控件作为被选UI控件,执行所述被选UI控件相应的选中事件。装置包括:获取人眼视线模块和判断与执行模块。本发明通过将多个UI控件放入到同一个包围盒中然后根据人眼视线与包围盒的相交位置判断包围盒中被选中的UI控件的方式解决了现有技术中每一个UI控件需要创建一个包围盒的问题。
【专利说明】
一种判断虚拟现实应用的UI控件被选中的方法和装置
技术领域
[0001]本发明涉及虚拟现实应用的领域,尤其涉及一种判断虚拟现实应用的UI控件被选中的方法和装置。
【背景技术】
[0002]现有技术中,基于手机的虚拟现实(VR)应用的3D UI控件(3D User InterfaceWidget)的射线拾取(Ray Casting)方案中,均采用包围盒碰撞检测算法,该算法根据人眼视线与三维空间中每个UI控件所在的包围盒是否存在交点来检测控件是否被选中。这种算法存在的缺陷是每个UI控件都需要构建一个包围盒,使虚拟现实场景中包围盒的顶点数目过多,降低了渲染效率。
[0003]因此,有必要提出改进上述缺陷的方法。

【发明内容】

[0004]基于以上问题,本发明提出一种判断虚拟现实应用的UI控件被选中的方法,通过将多个UI控件放入到同一个包围盒中然后根据人眼视线与包围盒的相交位置判断包围盒中被选中的UI控件的方式解决了现有技术中每一个UI控件需要一个包围盒的问题。
[0005]—方面,本发明提出一种判断虚拟现实应用的UI控件被选中的方法,包括:步骤SOOl,获取人眼视线;步骤S002,若所述人眼视线与用于盛放多个所述UI控件的包围盒相交,则计算所述人眼视线在所述包围盒内的相交位置,将所述相交位置的UI控件作为被选UI控件,执行所述被选UI控件相应的选中事件。
[0006]优选地,通过虚拟现实设备上安装的陀螺仪检测所述人眼视线。
[0007]优选地,所述包围盒为四边形面片,所述步骤S002具体包括:每个所述UI控件在所述四边形面片中的位置对应一组坐标,一组所述坐标包括四个坐标点,若所述相交位置的坐标位于一组所述坐标的范围内,则所述UI控件为被选UI控件。
[0008]优选地,所述步骤SOOl具体包括:若检测到所述人眼视线发生变化,则获取所述人眼视线。
[0009]优选地,盛放在同一个所述包围盒的多个所述UI控件为同类型的UI控件。
[0010]另一方面,本发明还提出一种判断虚拟现实应用的UI控件被选中的装置,包括:获取人眼视线模块,用于获取人眼视线;判断与执行模块,用于若所述人眼视线与用于盛放多个所述UI控件的包围盒相交,则计算所述人眼视线在所述包围盒内的相交位置,将所述相交位置的UI控件作为被选UI控件,执行所述被选UI控件相应的选中事件。
[0011]优选地,通过虚拟现实设备上安装的陀螺仪检测所述人眼视线。
[0012]优选地,所述包围盒为四边形面片,所述判断与执行模块具体包括:每个所述UI控件在所述四边形面片中的位置对应一组坐标,一组所述坐标包括四个坐标点,若所述相交位置的坐标位于一组所述坐标的范围内,则所述UI控件为被选UI控件。
[0013]优选地,所述获取人眼视线模块具体包括:若检测到所述人眼视线发生变化,则获取所述人眼视线。
[0014]优选地,盛放在同一个所述包围盒的多个所述UI控件为同类型的UI控件。
[0015]采用上述技术方案,具有如下有益效果:
[0016]通过获取人眼视线,根据人眼视线与用于盛放多个UI控件的包围盒相交时产生的相交位置判断被选中的UI控件,执行被选中的UI控件相应的选中事件的方式解决了现有技术中每一个UI控件需要一个包围盒的问题,提高了渲染效率。
【附图说明】
[0017]图1是根据本发明一个实施例的判断虚拟现实应用的UI控件被选中的方法的流程图;
[0018]图2是根据本发明另一个实施例的判断虚拟现实应用的UI控件被选中的方法的流程图;
[0019]图3是根据本发明另一个实施例的判断虚拟现实应用的UI控件被选中的装置的框图。
【具体实施方式】
[0020]以下结合具体实施方案和附图对本发明进行进一步的详细描述。其只意在详细阐述本发明的具体实施方案,并不对本发明产生任何限制,本发明的保护范围以权利要求书为准。
[0021]参照图1,本发明提出一种判断虚拟现实应用的UI控件被选中的方法,包括:步骤SOOl,获取人眼视线;步骤S002,若人眼视线与用于盛放多个UI控件的包围盒相交,则计算人眼视线在包围盒内的相交位置,将相交位置的UI控件作为被选UI控件,执行被选UI控件相应的选中事件。对于基于手机的头戴式的虚拟现实设备,获取人眼视线的方法优选采用陀螺仪获取人眼视线。在步骤S002中,包围盒的种类有轴对齐包围盒(Axis AlignedBounding Box简称:AABB包围盒)和有向包围盒(Oriented Bounding Box简称:0ΒΒ包围盒),包围盒用于3D中碰撞检测。
[0022]多个UI控件在包围盒中的位置为预先设置,可使用图形库OpenGLES中自动线性计算模型面片纹理坐标的机制来分配UI控件在包围盒中的位置。每个UI控件在包围盒中的位置对应一组坐标,UI控件的一组坐标同UI控件的对应关系可以通过映射表的方式存储。当检测到人眼视线与包围盒相交后,记录下人眼视线与包围盒相交位置的相交坐标,循环将相交坐标与在包围盒中的每一个UI控件对应的一组坐标比较,直到找到相交坐标位于一个UI控件对应的一组坐标范围内则停止比较,此时找到被选中UI控件,执行被选UI控件相应的选中事件。为包围盒设置监听函数、为每个UI控件设置监听函数,当包围盒的监听函数监听到人眼视线与包围盒相交则执行循环将相交坐标与在包围盒中的每一个UI控件对应的一组坐标比较的动作。当UI控件的监听函数监听到UI控件被选中,则执行被选UI控件相应的选中事件。
[0023]通过获取人眼视线,根据人眼视线与用于盛放多个UI控件的包围盒相交时产生的相交位置判断被选中的UI控件,执行被选中的UI控件相应的选中事件的方式解决了现有技术中每一个UI控件需要一个包围盒的问题,使一个包围盒可以同时容纳多个UI控件,提高了 3D效果渲染效率。
[0024]在其中的一个实施例中,通过虚拟现实设备上安装的陀螺仪检测人眼视线。对于基于手机的虚拟现实设备,采用手机上自带的陀螺仪检测人眼视线不需要额外增加检测人眼视线装置,节省了成本。
[0025]在其中的一个实施例中,包围盒为四边形面片,步骤S002具体包括:每个UI控件在四边形面片中的位置对应一组坐标,一组坐标包括四个坐标点,若相交位置的坐标位于一组坐标的范围内,则UI控件为被选UI控件。采用四边形面片构建包围盒为3D图像学中的一种构建方式。在四边形面片中,可采用绝对坐标来表示位置,也可以采用图像学中使用的纹理坐标表示位置。
[0026]预先创建一个四边形面片用于盛放多个UI控件,每个UI控件在四边形面片中的位置都对应一组坐标,将相交位置的坐标与每个UI控件的一组坐标做比较,当找到相交位置的坐标位于一个UI控件对应的一组坐标范围内时,结束比较,此时找到被选中UI控件。
[0027]在其中的一个实施例中,步骤SOOl具体包括:若检测到人眼视线发生变化,则获取人眼视线。当人眼视线发生变化时再去检测人眼视线,使检测人眼视线的装置不需要时时去检测人眼视线,提高了效率。
[0028]可以采用监听机制去监听人眼视线是否发生变化,当监听到人眼视线发生变化,才去获取人眼视线。采用监听机制可以提高程序运行效率。
[0029]在其中的一个实施例中,盛放在同一个包围盒的多个UI控件为同类型的UI控件。将同类型的UI控件放在同一个包围盒中,更方便管理。比如将游戏类的UI控件放在同一个包围盒内或将影视类的UI控件放在同一个包围盒内,在使用这些UI控件时可以更方便找到。
[0030]参照图2,作为本发明的最佳实施例,通过一个包围盒盛放多个同类型的UI控件,根据人眼视线与包围盒的相交位置找到被选中的UI控件。S201,将多个同类型的UI控件使用同一个四边形面片盛放,同时存储每个UI控件在四边形面片中的位置对应的一组坐标;S202,为四边形面片设置监听函数,为四边形面片中的每一个UI控件设置监听函数,为陀螺仪设置监听函数;S203,当陀螺仪的监听函数监听到人眼视线发生变化时,获取人眼视线;S204,若四边形面片的监听函数监听到人眼视线与四边形面片相交时,记录相交位置的相交坐标;S205,四边形面片的监听函数执行将相交坐标与位于四边形面片中的每个UI控件对应的一组坐标进行比较的动作,若找到相交坐标位于一个UI控件对应的一组坐标范围内,则判断该UI控件被选中;S206,被选中的UI控件的监听函数监听到UI控件被选中,执行被选中UI控件相应的选中事件。
[0031]参照图3,本发明还提出一种判断虚拟现实应用的UI控件被选中的装置,包括:获取人眼视线模块301,用于获取人眼视线;判断与执行模块302,用于若人眼视线与用于盛放多个UI控件的包围盒相交,则计算人眼视线在包围盒内的相交位置,将相交位置的UI控件作为被选UI控件,执行被选UI控件相应的选中事件。
[0032]在其中的一个实施例中,通过虚拟现实设备上安装的陀螺仪检测人眼视线。
[0033]在其中的一个实施例中,包围盒为四边形面片,判断与执行模块302具体包括:每个UI控件在四边形面片中的位置对应一组坐标,一组坐标包括四个坐标点,若相交位置的坐标位于一组坐标的范围内,则UI控件为被选UI控件。
[0034]在其中的一个实施例中,获取人眼视线模块301具体包括:若检测到人眼视线发生变化,则获取人眼视线。
[0035]在其中的一个实施例中,盛放在同一个包围盒的多个UI控件为同类型的UI控件。
[0036]以上所述的仅是本发明的原理和较佳的实施例。应当指出,对于本领域的普通技术人员来说,在本发明原理的基础上,还可以做出若干其它变型,也应视为本发明的保护范围。
【主权项】
1.一种判断虚拟现实应用的UI控件被选中的方法,其特征在于,包括: 步骤SOOl,获取人眼视线; 步骤S002,若所述人眼视线与用于盛放多个所述UI控件的包围盒相交,则计算所述人眼视线在所述包围盒内的相交位置,将所述相交位置的UI控件作为被选UI控件,执行所述被选UI控件相应的选中事件。2.根据权利要求1所述的判断虚拟现实应用的UI控件被选中的方法,其特征在于:通过虚拟现实设备上安装的陀螺仪检测所述人眼视线。3.根据权利要求1所述的判断虚拟现实应用的UI控件被选中的方法,其特征在于,所述包围盒为四边形面片,所述步骤S002具体包括:每个所述UI控件在所述四边形面片中的位置对应一组坐标,一组所述坐标包括四个坐标点,若所述相交位置的坐标位于一组所述坐标的范围内,则所述UI控件为被选UI控件。4.根据权利要求1所述的判断虚拟现实应用的UI控件被选中的方法,其特征在于,所述步骤SOOl具体包括:若检测到所述人眼视线发生变化,则获取所述人眼视线。5.根据权利要求1所述的判断虚拟现实应用的UI控件被选中的方法,其特征在于,盛放在同一个所述包围盒的多个所述UI控件为同类型的UI控件。6.一种判断虚拟现实应用的UI控件被选中的装置,其特征在于,包括: 获取人眼视线模块,用于获取人眼视线; 判断与执行模块,用于若所述人眼视线与用于盛放多个所述UI控件的包围盒相交,则计算所述人眼视线在所述包围盒内的相交位置,将所述相交位置的UI控件作为被选UI控件,执行所述被选UI控件相应的选中事件。7.根据权利要求6所述的判断虚拟现实应用的UI控件被选中的装置,其特征在于:通过虚拟现实设备上安装的陀螺仪检测所述人眼视线。8.根据权利要求6所述的判断虚拟现实应用的UI控件被选中的装置,其特征在于,所述包围盒为四边形面片,所述判断与执行模块具体包括:每个所述UI控件在所述四边形面片中的位置对应一组坐标,一组所述坐标包括四个坐标点,若所述相交位置的坐标位于一组所述坐标的范围内,则所述UI控件为被选UI控件。9.根据权利要求6所述的判断虚拟现实应用的UI控件被选中的装置,其特征在于,所述获取人眼视线模块具体包括:若检测到所述人眼视线发生变化,则获取所述人眼视线。10.根据权利要求6所述的判断虚拟现实应用的UI控件被选中的装置,其特征在于,盛放在同一个所述包围盒的多个所述UI控件为同类型的UI控件。
【文档编号】G06F3/01GK105892632SQ201510785543
【公开日】2016年8月24日
【申请日】2015年11月16日
【发明人】李珅
【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1