虚拟画面的控制方法、终端设备及存储介质
技术领域
本申请涉及显示技术领域,更具体地,涉及一种虚拟画面的控制方法、终端设备及存储介质。
背景技术
随着科技水平和生活水平的进步,增强现实(AR,Augmented Reality)等技术在成为研究热点的同时,也逐渐出现在人们的日常生活中。在增强现实的显示技术中,通常使用一些交互设备来进行虚拟画面的显示和控制,但传统的控制方案中,需要用户频繁的旋转头部,以控制虚拟画面中不同的内容,造成用户的不便。
发明内容
本申请实施例提出了一种虚拟画面的控制方法、终端设备及存储介质,能方便对虚拟画面的控制。
第一方面,本申请实施例提供了一种虚拟画面的控制方法,应用于终端设备,所述方法包括:获取所述终端设备与交互设备之间的相对空间位置信息;根据所述相对空间位置信息,生成虚拟画面,所述虚拟画面包括一个或多个用户界面元素,所述用户界面元素在现实空间的叠加位置与所述交互设备对应;获取预先建立的与所述交互设备对应的旋转向量,并根据所述相对空间位置信息确定所述旋转向量于虚拟空间中的空间位置,所述旋转向量的指向方向固定不变;当所述空间位置处于所述虚拟空间中任一所述用户界面元素对应的位置区域时,根据所处位置区域对应的用户界面元素执行相应的控制操作。
第二方面,本申请实施例提供了一种虚拟画面的控制装置,应用于终端设备,所述装置包括:位置信息获取模块、虚拟内容生成模块.空间位置获取模块以及控制执行模块,其中,所述位置信息获取模块用于获取所述终端设备与交互设备之间的相对空间位置信息;所述虚拟内容生成模块用于根据所述相对空间位置信息,生成虚拟画面,所述虚拟画面包括一个或多个用户界面元素,所述用户界面元素在现实空间的叠加位置与所述交互设备对应;所述空间位置获取模块用于获取预先建立的与所述交互设备对应的旋转向量,并根据所述相对空间位置信息确定所述旋转向量于虚拟空间中的空间位置,所述旋转向量的指向方向固定不变;所述控制执行模块用于当所述空间位置处于所述虚拟空间中任一所述用户界面元素对应的位置区域时,根据所处位置区域对应的用户界面元素执行相应的控制操作。
第三方面,本申请实施例提供了一种终端设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述第一方面提供的虚拟画面的控制方法。
第四方面,本申请实施例提供了一种存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述第一方面提供的虚拟画面的控制方法。
本申请提供的方案,通过获取终端设备与交互设备之间的相对空间位置信息,根据相对空间位置信息,生成虚拟画面,该虚拟画面包括一个或多个用户界面元素,并且用户界面元素在现实空间中的叠加位置与交互设备对应,获取预先建立的与交互设备对应的旋转向量,并根据相对空间位置信息确定旋转向量于虚拟空间中的空间信息,该旋转向量的指向方向固定不变,当空间位置处于虚拟空间中任一用户界面元素对应的位置区域时,根据所处位置区域对应的用户界面元素执行相应的控制操作,从而可以实现通过旋转交互设备,使交互设备对应的旋转向量处于不同的用户界面元素对应的位置区域中,而实现快捷方便地与不同用户界面元素的交互。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种适用于本申请实施例的应用场景的示意图。
图2示出了根据本申请一个实施例的虚拟画面的控制方法流程图。
图3示出了根据本申请另一个实施例的虚拟画面的控制方法流程图。
图4示出了根据本申请另一个实施例提供的三维旋转坐标系的示意图。
图5示出了根据本申请另一个实施例提供的一种显示效果示意图。
图6示出了根据本申请另一个实施例提供的另一种显示效果示意图。
图7示出了根据本申请另一个实施例提供的旋转向量的示意图。
图8示出了根据本申请另一个实施例提供的又一种显示效果示意图。
图9示出了根据本申请另一个实施例提供的再一种显示效果示意图。
图10示出了根据本申请又一个实施例的虚拟画面的控制方法流程图。
图11示出了根据本申请又一个实施例提供的一种显示效果示意图。
图12示出了根据本申请又一个实施例提供的另一种显示效果示意图。
图13示出了本申请实施例提供的虚拟画面的控制装置的结构框图。
图14是本申请实施例的用于执行根据本申请实施例的虚拟画面的控制方法的终端设备的框图。
图15是本申请实施例的用于保存或者携带实现根据本申请实施例的虚拟画面的控制方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面对本申请实施例提供的虚拟画面的控制方法的应用场景进行介绍。
请参见图1,示出了本申请实施例提供的虚拟画面的控制方法的应用场景的示意图,该应用场景包括显示系统10。该显示系统10包括:终端设备100以及交互设备200。
在一些实施方式中,终端设备100可以是头戴显示装置,也可以是手机、平板等移动设备。终端设备100为头戴显示装置时,头戴显示装置可以为一体式头戴显示装置,也可以是与外置电子设备连接的头戴显示装置。终端设备100也可以是与外接式/接入式头戴显示装置连接的手机等智能终端,即终端设备100可作为头戴显示装置的处理和存储设备,插入或者接入外接式头戴显示装置,在头戴显示装置中对虚拟内容进行显示。
在一些实施方式中,交互设备200可以为多面体标记物,其可以包括多个面、多条边和多个顶点,具体而言,交互设备200包括多个标记面,其中至少两个不共面的标记面上设置有标记物201。交互设备200的具体形态结构不受限制,可以为平面与曲面相结合的多面体,也可以为曲面与曲面相结合的多面体。在可能的实施方式中,交互设备200可以是以下结构中的任意一种或多种的组合:棱锥、棱柱、棱台、多面体、球体,也可以是,当然,球体可以理解为由无数个面形成的多面体。
在终端设备100与交互设备200被共同使用时,可使标记物201位于终端设备100的视觉范围内,进而使得终端设备100可以采集到包含标记物201的图像,以对标记物201进行识别追踪,得到标记物201相对终端设备100的位置、姿态等空间位置信息,以及标记物201的身份信息等识别结果,进而得到交互设备200相对终端设备100的位置、姿态等空间位置信息,实现对交互设备200的定位追踪。终端设备100可根据与交互设备200之间的相对位置及姿态信息,显示相应的虚拟内容。
在一些实施方式中,标记物201为具有拓扑结构的图案,拓扑结构是指标记物中的子标记物和特征点等之间连通关系。在另一些实施方式中,标记物201还可以为光点式的标记,终端设备通过对光点追踪以相对位置、姿态等空间位置信息。在一个具体的实施方式中,可在交互设备200上设置光点和惯性测量单元(Inertial measurement unit,IMU),终端设备可以通过图像传感器采集交互设备200的光点图像,并通过惯性测量单元获取测量数据,根据该光点图像和测量数据即可确定交互设备200与终端设备100之间的相对空间位置信息,实现对交互设备200的定位及追踪。其中,交互设备200上设置的光点可以是可见光点或者红外光点,光点的数量可以是一个或者由多个光点组成的光点序列。
在一些实施方式中,可以通过交互设备200上的不同标记物201在终端设备100的视野范围内发生旋转或/及位移,使得终端设备100可以实时采集交互设备200上的标记物201信息,进而获取交互设备200的空间位置信息,以便终端设备100根据该空间位置信息显示相应的虚拟内容。
例如,请再次参阅图1,用户通过佩戴的头戴显示装置100,定位追踪交互设备200,可以看到包含有多个虚拟星球的虚拟太空场景与现实空间的叠加显示,体现出虚拟内容的增强现实的显示效果。
下面对具体的虚拟画面的控制方法进行介绍。
请参阅图2,本申请一个实施例提供了一种虚拟画面的控制方法,可应用于终端设备,该虚拟画面的控制方法可以包括:
步骤S110:获取终端设备与交互设备之间的相对空间位置信息。
在一些实施方式中,终端设备可以获取终端设备与交互设备之间的相对空间位置信息,以便终端设备根据相对空间位置信息生成虚拟内容并进行显示。其中,终端设备可以识别交互设备上的标记物,以根据识别结果,获取终端设备与交互设备之间的相对空间位置信息。
终端设备识别标记物的识别结果至少包括标记物相对终端设备的位置信息、姿态信息等,以及标记物的身份信息,每个标记物可具备不同的身份信息,从而终端设备可以根据识别标记物获得的识别结果,以及识别到的标记物在交互设备上设置的位置,获取终端设备与交互设备之间的相对空间位置信息。终端设备与交互设备之间的相对空间位置信息可以包括:终端设备与交互设备之间的相对位置信息以及姿态信息等,姿态信息可以为交互设备相对终端设备的朝向及旋转角度等。
当然,获取终端设备与交互设备之间的相对空间位置信息的具体方式在本申请实施例中可以不作为限定。
步骤S120:根据相对空间位置信息,生成虚拟画面,虚拟画面包括一个或多个用户界面元素,用户界面元素在现实空间的叠加位置与交互设备对应。
在一些实施方式中,终端设备可以获取虚拟画面的画面数据,该可以是虚拟画面的三维模型数据,该三维模型数据可以包括用于构建三维模型对应的模型的颜色、模型顶点坐标、模型轮廓数据等。其中,终端设备可以从本地读取虚拟画面的画面数据,或者从其他设备获取虚拟画面的画面数据。
在一些实施方式中,终端设备可以根据获取到的相对空间位置信息,以及虚拟画面在现实空间的叠加位置,获取虚拟画面的渲染位置,然后根据画面数据以及渲染位置,渲染虚拟画面。其中,该渲染位置可以是虚拟画面的渲染坐标,以实现虚拟画面渲染于渲染位置处,渲染坐标指的是虚拟画面在虚拟空间中以预设原点(例如世界坐标原点、虚拟摄像头原点等)的三维空间坐标。具体的,终端设备可以根据相对空间位置信息以及虚拟画面在现实空间的叠加位置,获取叠加位置的空间位置坐标,再将该空间位置坐标转换为虚拟空间中的空间坐标。
作为一种实施方式,虚拟画面可以包括一个或多个用户界面元素。用户界面元素可以为用户界面中的界面元素,界面元素可以指可满足交互需求的界面中所包含的用于实现交互需求的元素,例如,窗口元素、对话框、菜单、滚动条、图形选项等,具体的用户界面元素可以不作为限定。
其中,虚拟画面中的用户界面元素在现实空间中的叠加位置可以与交互设备对应。例如,叠加位置可以为交互设备的表面,又例如,叠加位置可以为距离交互设备的表面一定距离的位置,具体的叠加位置可以不做限定。在一种具体的实施方式中,虚拟画面中包括多个用户界面元素时,不同的用户界面元素的叠加位置可以与交互设备上的不同位置对应。例如,交互设备为多面体时,叠加位置可以为多面体的不同面上。
在一些实施方式中,终端设备生成虚拟画面后,可以对虚拟画面进行显示。具体地,终端设备构建并渲染出虚拟画面后,可以获取虚拟画面的显示数据,该显示数据可以包括显示画面中各个像素点的RGB值及对应的像素点坐标等,终端设备可根据该显示数据生成虚拟画面,并将虚拟画面通过显示屏或投射模组投射到显示镜片上,从而显示出虚拟画面,用户通过头戴显示装置的显示镜片,可以看到虚拟画面叠加显示在与交互设备对应的叠加位置处,实现增强现实的显示效果。
步骤S130:获取预先建立的与交互设备对应的旋转向量,并根据相对空间位置信息确定旋转向量于虚拟空间中的空间位置,旋转向量的指向方向固定不变。
在一些实施方式中,可以预先建立与交互设备对应的旋转向量,该旋转向量可以与交互设备的姿态、位置等对应,交互设备对应的旋转向量可以用于对虚拟内容进行选取等。另外,旋转向量在虚拟空间中指向方向固定不变。其中,交互设备对应的旋转向量在虚拟空间中的指向方向可以为预先设定,并且旋转向量的指向方向在虚拟空间中以终端设备为原点的空间坐标系中固定不变。也就是说,在以终端设备为原点的空间坐标系中,交互设备对应的旋转向量的指向方向相对终端设备是保持不变的,因此当交互设备发生旋转时,该旋转向量在以终端设备为原点的空间坐标系中的指向方向也不会发生变化。例如,在以终端设备为原点的空间坐标系中,旋转向量的指向方向为交互设备正对终端设备且朝向终端设备的方向,当然,以上仅为举例,并不代表对旋转向量的指向方向的限定,旋转向量的指向方向也可以根据用户的设置操作而设定。
在一些实施方式中,由于旋转向量的指向方向在虚拟空间中以终端设备为原点的空间坐标系中固定不变,而用户界面元素在现实空间中的叠加位置与交互设备对应,当交互设备相对终端设备的位置和/或姿态发生变化时,用户界面元素在现实空间中的叠加位置也会发生变化,因此可以通过使交互设备相对终端设备的位置和/或姿态发生变化,并且根据旋转向量在虚拟空间中的空间位置以及用户界面元素在虚拟空间中的位置,而与不同的用户界面元素进行交互。
在一些实施方式中,终端设备可以根据相对空间位置信息,确定旋转向量于虚拟空间中的空间位置。具体地,终端设备可以根据相对空间位置信息,确定交互设备的姿态,并根据交互设备的姿态,确定旋转向量于虚拟空间中的空间位置。其中,旋转向量于虚拟空间中的空间位置可以为虚拟空间中以交互设备为原点的三维坐标系中的空间位置,由于旋转向量与交互设备对应,并且旋转向量的指向方向在虚拟空间中以终端设备为原点的空间坐标系中固定不变,因此可以根据交互设备的姿态确定旋转向量于虚拟空间中的空间位置。
步骤S140:当空间位置处于虚拟空间中任一用户界面元素对应的位置区域时,根据所处位置区域对应的用户界面元素执行相应的控制操作。
在一些实施方式中,当交互设备相对终端设备的位置和/或姿态发生变化时,终端设备可以根据旋转向量在虚拟空间中的空间位置以及用户界面元素在虚拟空间中的位置,确定旋转向量的空间位置是否处于虚拟空间中任一用户界面元素对应的位置区域,进而确定是否选中任一用户界面元素,并且在选中任一用户界面元素时,根据选中的用户界面元素进行交互。
在一些实施方式中,终端设备可以根据旋转向量在虚拟空间中的空间位置,确定该空间位置是否处于虚拟空间中任一用户界面元素对应的位置区域。具体地,旋转向量在虚拟空间中的空间位置指的是虚拟空间中以交互设备为原点的三维坐标系中的空间位置,虚拟空间中用户界面元素对应的位置区域也指的是虚拟空间中以交互设备为原点的三维坐标系中的位置区域。由于用户界面元素现实空间的叠加位置与交互设备对应,因此用户界面元素在以交互设备为原点的三维坐标系中的位置区域,不会随交互设备的位置和/或姿态的变化而发生变化,而旋转向量在以交互设备为原点的三维坐标系中的空间位置,随交互设备的位置和/或姿态的变化而发生变化。从而当交互设备的位置和/或姿态发生变化后,如果确定出旋转向量的空间位置处于任一用户界面元素对应的位置区域,则可以确定根据该用户界面元素进行交互。根据该用户界面元素执行相应的控制操作。
在一些实施方式中,根据所处位置区域对应的用户界面元素进行交互,可以为根据该用户界面元素执行相应的控制操作。根据该用户界面元素执行相应的控制操作,可以包括:控制该用户界面元素处于选中状态、显示与该用户界面元素对应的虚拟内容、移动该用户界面元素、或者调整该用户界面元素的显示状态等,当然,具体的控制操作可以不作为限定。
本申请实施例提供的虚拟画面的控制方法,通过获取终端设备与交互设备之间的相对空间位置信息,根据相对空间位置信息,生成包括用户界面元素的虚拟画面,并且用户界面元素在现实空间中的叠加位置与交互设备对应,获取预先建立的与交互设备对应的旋转向量,并根据相对空间位置信息确定旋转向量于虚拟空间中的空间信息,当空间位置处于虚拟空间中任一用户界面元素对应的位置区域时,根据所处位置区域对应的用户界面元素执行相应的控制操作,从而可以实现通过旋转交互设备,使交互设备对应的旋转向量处于不同的用户界面元素对应的位置区域中,而实现快捷方便地与不同用户界面元素的交互。
请参阅图3,本申请另一个实施例提供了一种虚拟画面的控制方法,可应用于终端设备,该虚拟画面的控制方法可以包括:
步骤S210:以交互设备上的预设点作为原点,建立交互设备对应的三维旋转坐标系。
在一些实施方式中,终端设备可以于虚拟空间中,以交互设备上的预设点,预先建立交互设备对应的三维旋转坐标系。其中,预设点可以为交互设备的任意点,例如预设点可以为交互设备的任一顶点,也可以为交互设备的中心点,在此不做限定。
在一种具体的实施方式中,请参阅图4,可以设置交互设备上的任一点(例如中心点等)作为原点,以竖直方向为Y轴,X轴和Z轴所在的平面为水平面,从而建立三维旋转坐标系。其中,X轴以及Z轴可以通过以下方式确定:可以根据终端设备与交互设备之间的相对空间位置信息,确定终端设备相对交互设备的朝向方向,再设置该朝向方向作为第一向量所在方向,设第一向量在水平面上的分量为Z轴,然后可以根据左手坐标系可以确定设X轴的位置。而Z轴在竖直方向上,基于原点即可确定Z轴,从而确定出了X轴,Y轴和Z轴,即建立出交互设备对应的三维旋转坐标系。
在一些实施方式中,终端设备建立的交互设备对应的三维旋转坐标系中,可以为角坐标系,三维旋转坐标系中的坐标可以用欧拉角、夹角等表示,三维旋转坐标系中确定的空间坐标,可以用于表征在三维旋转坐标系中的方向。
步骤S220:根据一个或多个用户界面元素对三维旋转坐标系进行区域划分,并确定每个用户界面元素在三维旋转坐标系对应的空间区域。
在一些实施方式中,用户界面元素可以为终端设备待显示的虚拟画面中的用户界面元素。终端设备在预先建立交互设备对应的三维旋转坐标系之后,可以根据用户界面元素,对三维旋转坐标系进行区域划分,并确定每个用户界面元素在该三维旋转坐标系中对应的空间区域。
在一些实施方式中,终端设备可以根据用户界面元素在现实空间中与交互设备对应的叠加位置,在三维旋转坐标系中划分多个空间区域,并且每个用户界面元素对应有一个空间区域。另外,用户界面元素对应的空间区域的大小可以与用户界面元素的大小相同,也可以与用户界面元素的大小不同,例如用户界面元素对应的空间区域的大小可以大于用户界面元素的大小。
在一些实施方式中,用户界面元素可以为单行或单列的方式进行排布,也可以按照多行且多列的方式(网格状)排布。因此终端设备也可以根据用户界面元素的空间排布方式,对三维旋转坐标系进行区域划分。
作为一种实施方式,终端设备可以获取用户界面元素的空间排布方式,例如,如图5所示,当空间排布方式为网格状排布时,可以将三维旋转坐标系按照多行及多列划分为多个空间区域,并且每个用户界面元素对应有一个不同的空间区域,终端设备可以根据每个用户界面元素的排布位置,确定排布位置对应的空间区域,作为用户界面元素在该三维旋转坐标系中对应的空间区域。
作为另一种实施方式,终端设备可以获取用户界面元素的空间排布方式,例如,如图6所示,当空间排布方式为单行或者单列排布时,可以将用户界面元素所在平面划分为多个平面区域,并且每个用户界面元素对应有一个不同的平面区域,然后再根据每个用户界面元素对应的平面区域,确定每个平面区域映射至旋转坐标系中的空间区域。终端设备可以根据每个用户界面元素的排布位置,确定排布位置对应的平面区域,然后将平面区域映射至旋转坐标系中,获得用户界面元素在该三维旋转坐标系中对应的空间区域。
当然,具体对三维旋转坐标系进行区域划分,确定用户界面元素在三维旋转坐标系中对应的空间区域的方式可以不作为限定。终端设备通过预先建立交互设备对应的旋转坐标系,并进行区域划分,确定用户界面元素在三维旋转坐标系中对应的空间区域,可以便于后续根据旋转向量在三维旋转坐标系中的空间坐标,确定旋转向量所处的划分的空间区域,从而确定出旋转向量是否处于任一用户界面元素对应的空间区域。
步骤S230:获取终端设备与交互设备之间的相对空间位置信息。
在本申请实施例中,步骤S230可以参阅前述实施例的内容,在此不再赘述。
步骤S240:根据相对空间位置信息,生成虚拟画面,虚拟画面包括一个或多个用户界面元素,用户界面元素在现实空间的叠加位置与交互设备对应。
在一些实施方式中,终端设备生成的虚拟画面中的用户界面元素,即为步骤S220中的用户界面元素。具体生成虚拟画面的方式可以参阅前述实施例的内容,在此不再赘述。
步骤S250:获取预先建立的与交互设备对应的旋转向量,旋转向量的指向方向固定不变。
在一些实施方式中,终端设备可以预先建立有与交互设备对应的旋转向量,该旋转向量可以为步骤S210中建立的三维旋转坐标系中的旋转向量。请同时参阅图4及图7,以图4中的三维旋转坐标系为例,旋转向量可以为Vd,Vd的方向可以为第一向量Vh的反方向,图7中的空间区域T可以为当前旋转向量Vd所处于的用户界面元素对应的空间区域。由于旋转向量的指向方向在虚拟空间中以终端设备为原点的空间坐标系中固定不变,因此,当交互设备发生旋转时,则旋转向量在三维旋转坐标系中的空间坐标也会发生变化。在交互设备的姿态发生变化时,用户界面元素在三维旋转坐标系中对应的空间区域是不会发生变化的,因此可以通过确定旋转向量在三维旋转坐标系中处于不同用户界面元素对应的空间区域,而根据不同的用户界面元素进行相应的控制操作。
步骤S260:根据相对空间位置信息,获取交互设备的旋转信息,并根据旋转信息确定三维旋转坐标系的姿态。
在一些实施方式中,由于三维旋转坐标系是以交互设备而建立的,三维旋转坐标系的姿态会随交互设备的旋转而变化,因此终端设备在获取旋转向量在三维旋转坐标系中的空间坐标时,可以确定三维旋转坐标系的姿态,并根据三维旋转坐标系的姿态确定旋转向量于三维旋转坐标系中的空间坐标。具体地,终端设备可以根据终端设备与交互设备之间的相对空间位置信息,确定交互设备的旋转信息,然后根据旋转信息确定三维旋转坐标系的姿态。
步骤S270:根据三维旋转坐标系的姿态获取旋转向量于三维旋转坐标系中的空间坐标。
在一些实施方式中,终端设备在获得三维旋转坐标系的姿态之后,则可以根据三维旋转坐标系的姿态,确定旋转向量在该三维旋转坐标系中的空间坐标。其中,由于交互设备对应的旋转向量在虚拟空间中以终端设备为坐标原点的空间坐标系中的指向方向保持不变,而在该空间坐标系下,三维旋转坐标系的姿态可以随交互设备旋转发生变化,因此可以根据三维旋转坐标系的姿态,确定该旋转向量与三维旋转坐标系中各个坐标轴之间的角度,并根据确定的角度,获得旋转向量于三维旋转坐标系中的空间坐标,该空间坐标能表示出旋转向量在三维旋转坐标系中的指向方向。
步骤S280:当旋转向量的空间坐标处于任一用户界面元素对应的空间区域时,根据所处空间区域对应的用户界面元素执行相应的控制操作。
在一些实施方式中,终端设备在确定出旋转向量在三维旋转坐标系中的空间坐标后,则可以确定该空间坐标是否处于三维旋转坐标系中任一用户界面元素对应的空间区域,如果该空间坐标处于三维旋转坐标系中任一用户界面元素对应的空间区域,则可以根据该空间区域对应的用户界面元素,进行相应的控制操作。
在一些实施方式中,如果用户界面元素按步骤S220中按单行或者单列的排布方式进行排布时,由于仅在三维旋转坐标系中将用户界面元素所在平面划分为多个平面区域,因此在确定旋转向量的空间坐标是否处于任一用户界面元素对应的空间区域时,仅需要考虑旋转向量在用户界面元素所在平面上的投影,使得用户操作交互设备时,只需考虑交互设备的旋转信息的一个自由度,减少误操作的可能性。
在一些实施方式中,由于虚拟画面中用户界面元素在现实空间中的叠加位置与交互设备对应,当交互设备旋转时,用户界面元素的叠加位置也随交互设备变化,这样就可能使得用户旋转交互设备后,用户界面元素出现在视野范围之外,甚至出现至交互设备远离终端设备的一面,因此终端设备可以适当的对用户界面元素在三维旋转坐标系中对应的空间区域进行调整。因此,该虚拟画面的控制方法还可以包括:当旋转向量的空间坐标处于预设空间区域时,调整一个或多个用户界面元素在三维旋转坐标系中对应的空间区域,调整后的用户界面元素在现实空间的叠加位置正对终端设备,其中,预设空间区域为用户界面元素对应的空间区域的边界外的空间区域,和/或与用户界面元素对应的空间区域相背的空间区域。从而可以使得旋转向量的空间坐标处于预设空间区域时,用户界面元素出现在视野范围之外或者甚至出现至交互设备远离终端设备的一面(即交互设备的背面)的情况下,用户界面元素在被调整后,在现实空间中的叠加位置正对终端设备,从而用户可以看到用户界面元素重新出现视野范围内,便于用户查看用户界面元素以及选择用户界面元素。例如,请同时参阅图8及图9,图8中用户界面元素501的处于预设空间区域时,用户界面元素即将出现在视野范围外,在经过对用户界面元素501调整后,用户界面元素501可以重新出现正对终端设备的位置,使用户可以看到处于中间区域的用户界面元素501。
在该实施方式下,终端设备还可以生成反馈信息,以提示用户该用户界面元素的位置被调整。
本申请实施例提供的虚拟画面的控制方法,通过预先建立交互设备对应的三维旋转坐标系,对三维旋转坐标系进行区域划分,确定每个用户界面元素对应的空间区域,当旋转向量在三维旋转坐标系的空间坐标处于任一用户界面元素对应的空间区域时,根据该空间区域对应的用户界面元素,进行相应的控制操作,从而可以实现用户对交互设备进行旋转,即可与不同的用户界面元素交互,简化了用户的操作。
请参阅图10,本申请又一个实施例提供了一种虚拟画面的控制方法,可应用于终端设备,该虚拟画面的控制方法可以包括:
步骤S310:获取终端设备与交互设备之间的相对空间位置信息。
步骤S320:根据相对空间位置信息,生成虚拟画面,虚拟画面包括一个或多个用户界面元素,用户界面元素在现实空间的叠加位置与交互设备对应。
步骤S330:获取预先建立的与交互设备对应的旋转向量,并根据相对空间位置信息确定旋转向量于虚拟空间中的空间位置,旋转向量的指向方向固定不变。
在本申请实施例中,步骤S310至步骤S330可以参阅前述实施例的内容,在此不再赘述。
步骤S340:当空间位置处于虚拟空间中任一用户界面元素对应的位置区域时,生成反馈提示信息,反馈提示信息用于提示所处位置区域对应的用户界面元素处于选中状态。
在一些实施方式中,当交互设备对应的旋转向量于虚拟空间中的空间位置处于任一用户界面元素对应的位置区域时,还可以对用户进行提示,以提示用户该用户界面元素处于选中状态,便于用户确定是否根据该用户界面元素执行相应的控制操作。
在一些实施方式中,终端设备可以生成反馈提示信息,反馈提示信息用于提示所处位置区域对应的用户界面元素处于选中状态。作为一种实施方式,终端设备可以生成虚拟的提示框,提示框的显示与该用户界面元素对应,该提示框的形式可以不作为限定,例如,可以为具有指定颜色的框体。作为另一种实施方式,终端设备可以生成提示声,例如振动声等,以提示用户该用户界面元素处于选中状态。作为又一种实施方式,终端设备可以控制该用户界面元素的颜色、大小等发生变化,例如,将该用户界面元素的颜色变为指定颜色,将该用户界面元素的大小增大等。当然,在交互设备对应的旋转向量于虚拟空间中的空间位置处于任一用户界面元素对应的位置区域时,提示用户该用户界面元素处于选中状态的方式可以不作为限定。
在一些实施方式中,如果旋转向量的空间位置从处于一个用户界面元素对应的空间区域,变为处于另一个用户界面元素对应的空间区域时,也可以生成反馈提示信息,以提示用户。
步骤S350:当获取到确认指令或者旋转向量的空间位置处于位置区域的持续时长大于预设时长时,根据所处位置区域对应的用户界面元素执行相应的控制操作。
在一些实施方式中,还可以通过设定的方式,来确认根据所处位置区域的用户界面元素进行控制操作。具体地,可以通过获取到确认指令,而确认根据所处位置区域的用户界面元素进行控制操作;也可以通过确定出旋转向量的空间位置处于位置区域的持续时长大于预设时长时,确认根据所处位置区域的用户界面元素进行控制操作。当然,具体确认根据所处位置区域的用户界面元素进行控制操作的方式可以不作为限定。
在一些实施方式中,用于确认根据用户界面元素进行控制操作的确认指令,可以为终端设备上的设置的按钮检测到按压操作时获得,也可以为交互设备上设置的按钮检测到按压操作时向终端设备发送确认指令,从而终端设备获得该确认指令,在此不做限定。
在一些实施方式中,确认指令为终端设备或者交互设备上的按钮检测获得时,还可以通过检测到按压操作的不同的按钮、检测到按压操作的按钮的不同数量、或者检测到按压操作的不同力度,而根据该用户界面元素,执行不同的操作。例如,第一按钮检测到按压操作时,则将该用户界面元素移动至第一位置,第二按钮检测到按压操作时,则将该用户界面元素移动至第二位置;又例如,检测到按压操作的按钮的数量为1时,将该用户界面元素的大小增至第一大小,检测到按压操作的按钮的数量为2时,将该用户界面元素的大小增至第二大小,第二大小可以大于第一大小。当然,以上仅为举例,并不代表对实际的控制操作的限定。
在一些实施方式中,根据所处位置区域的用户界面元素,进行相应的控制操作,可以包括:获取与所处位置区域的用户界面元素对应的一个或多个子层级用户界面元素;根据一个或多个子层级用户界面元素重新对三维旋转坐标系进行区域划分,并确定每个子层级用户界面元素在三维旋转坐标系对应的空间区域。在该实施方式下,可以实现多层级用户界面元素的层级跳转,并且在跳转后,能实现子层级用户界面元素与三维旋转坐标系中空间区域的对应,便于后续与子层级用户界面元素进行交互。例如,在设置界面中,存在多个层级的选项,利用该方式,则可以实现对多个层级的选项进行操作,而实现设置功能。
在一些实施方式中,根据所处位置区域的用户界面元素,进行相应的控制操作,可以包括:获取与所处位置区域的用户界面元素对应的一个或多个子层级用户界面元素,将所处位置区域的用户界面元素所在层级中空间区域的划分,作为子层级用户界面在三维旋转坐标系中空间区域中的空间区域的划分,并取消除子层级以外的其他层级的用户界面元素的显示。
在一种应用场景中,用户界面元素以行方式或者列方式进行排布,且用户界面元素较多时,则可以通过按行方向或者列方向旋转交互设备,使旋转向量的空间位置处于不同的用户界面元素,而实现对不同用户界面元素的选择。例如,请参阅图11,在选择日期的场景中,同一列上可以显示不同的年份,通过按列方向旋转交互设备,实现对不同年份的选择。
在一种应用场景中,用户界面元素以多行多列的方式进行排布,且用户界面元素较多时,则可以通过按行方向旋转交互设备以及按列方向旋转交互设备,使旋转向量的空间位置处于不同的用户界面元素对应的空间区域,而实现对不同用户界面元素的选择。例如,请参阅图12,在选择日期的场景中,不同列分别对应年、月和日,初始时,旋转向量的空间位置可以处于年份中任一年份对应的空间区域,可以通过按列方向旋转交互设备而选取年份后,再按行方向旋转交互设备,使旋转向量的空间位置可以处于月份中任一月份对应的空间区域,然后通过按列方向旋转交互设备而选取月份。另外,当按行方向或者按列方向旋转交互设备后,如果此时旋转向量的空间位置处于行方向上的末尾的空间区域,或者处于列方向上末尾的空间区域,终端设备还可以生成反馈信息,以提示用户。其中,反馈信息的形式可以不作为限定,例如,可以为慢回弹的形式,也可以为显示渐变的颜色,也可以显示相应的图案等。
在一些场景中,用户界面元素可以以随机排布的形式排布,可以通过按任意方向旋转交互设备,而使旋转向量的空间位置处于不同的用户界面元素对应的空间区域,而实现对不同用户界面元素的选择。例如,交互设备为球体时,显示的虚拟画面可以为地球模型,不同国家的选项作为用户界面元素,可以旋转交互设备,而使旋转向量的空间位置处于不同国家的选项对应的空间区域,而实现对不同国家的选项的选择。
在一些实施方式中,在终端设备根据相对空间位置信息,确定出交互设备被旋转时,也可以生成反馈信息,例如震动声,以提升用户体验。
请参见图13,其示出了本申请提供的一种虚拟内容的显示装置400的结构框图。该虚拟内容的显示装置400应用于终端设备。该虚拟内容的显示装置400包括:位置信息获取模块410、虚拟内容生成模块420、空间位置获取模块430以及控制执行模块440。其中,位置信息获取模块410用于获取终端设备与交互设备之间的相对空间位置信息;虚拟内容生成模块420用于根据相对空间位置信息,生成虚拟画面,虚拟画面包括一个或多个用户界面元素,用户界面元素在现实空间的叠加位置与交互设备对应;空间位置获取模块430用于获取预先建立的与交互设备对应的旋转向量,并根据相对空间位置信息确定旋转向量于虚拟空间中的空间位置,旋转向量的指向方向固定不变;控制执行模块440用于当空间位置处于虚拟空间中任一用户界面元素对应的位置区域时,根据所处位置区域对应的用户界面元素执行相应的控制操作。
在一些实施方式中,该虚拟画面的控制装置400还可以包括:坐标系建立模块以及区域划分模块。坐标系建立模块用于在获取终端设备与交互设备之间的相对空间位置信息之前,以交互设备上的预设点作为原点,建立交互设备对应的三维旋转坐标系;区域划分模块用于根据一个或多个用户界面元素对三维旋转坐标系进行区域划分,并确定每个用户界面元素在三维旋转坐标系对应的空间区域。
在该方式下,空间位置获取模块430可以包括:姿态获取单元以及空间坐标获取单元。姿态获取单元用于根据相对空间位置信息,获取交互设备的旋转信息,并根据旋转信息确定三维旋转坐标系的姿态;空间坐标获取单元用于根据三维旋转坐标系的姿态获取旋转向量于三维旋转坐标系中的空间坐标。
进一步的,控制执行模块440可以具体用于:当旋转向量的空间坐标处于任一用户界面元素对应的空间区域时,根据所处空间区域对应的用户界面元素执行相应的控制操作。
在一些实施方式中,该虚拟画面的控制装置400还可以包括:空间区域调整模块。其中,空间区域调整模块可以用于当旋转向量的空间坐标处于预设空间区域时,调整一个或多个用户界面元素在三维旋转坐标系中对应的空间区域,调整后的用户界面元素在现实空间的叠加位置正对终端设备,其中,预设空间区域为用户界面元素对应的空间区域的边界外的空间区域,和/或与用户界面元素对应的空间区域相背的空间区域。
在一些实施方式中,区域划分模块可以包括:位置排布单元以及划分执行单元。位置排布单元用于获取一个或多个用户界面元素的空间排布方式;划分执行单元用于当空间排布方式为网格状排布时,将三维旋转坐标系按照多行及多列划分为多个空间区域,并根据每个用户界面元素的排布位置确定对应的空间区域。
在一些实施方式中,控制执行模块440可以具体用于:获取与所处位置区域的用户界面元素对应的一个或多个子层级用户界面元素;根据一个或多个子层级用户界面元素重新对三维旋转坐标系进行区域划分,并确定每个子层级用户界面元素在三维旋转坐标系对应的空间区域。
在一些实施方式中,控制执行模块440可以具体用于:当获取到确认指令或者旋转向量的空间位置处于位置区域的持续时长大于预设时长,根据所处位置区域对应的用户界面元素执行相应的控制操作。
在一些实施方式中,该虚拟画面的控制装置400还可以包括提示模块。提示模块用于当空间位置处于虚拟空间中任一用户界面元素对应的位置区域时,生成反馈提示信息,反馈提示信息用于提示所处位置区域对应的用户界面元素处于选中状态。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
综上,本申请提供的方案,通过获取终端设备与交互设备之间的相对空间位置信息,根据相对空间位置信息,生成虚拟画面,该虚拟画面包括一个或多个用户界面元素,并且用户界面元素在现实空间中的叠加位置与交互设备对应,获取预先建立的与交互设备对应的旋转向量,并根据相对空间位置信息确定旋转向量于虚拟空间中的空间信息,该旋转向量的指向方向固定不变,当空间位置处于虚拟空间中任一用户界面元素对应的位置区域时,根据所处位置区域对应的用户界面元素执行相应的控制操作,从而可以实现通过旋转交互设备,使交互设备对应的旋转向量处于不同的用户界面元素对应的位置区域中,而实现对不同用户界面元素的控制。
请参考图14,其示出了本申请实施例提供的一种终端设备的结构框图。该终端设备100可以是智能手机、平板电脑、头戴显示设备等能够运行应用程序的终端设备。本申请中的终端设备100可以包括一个或多个如下部件:处理器110、存储器120、图像采集装置130,存储器120中可存储有一个或多个计算机程序,计算机程序可被配置为由一个或多个处理器110执行,以用于执行如前述方法实施例所描述的方法。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个终端设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据等。
在本申请实施例中,图像采集装置130用于采集标记物的图像。图像采集装置130可以为红外摄像头,也可以是彩色摄像头,具体的摄像头类型在本申请实施例中并不作为限定。
在一个实施例中,终端设备还可包括如下一个或多个部件:显示模组、光学模组、通信模块以及电源。显示模组可包括显示控制单元,显示控制单元用于接收处理器渲染后的虚拟内容的显示图像,将该显示图像显示并投射至光学模组上,使用户能够通过光学模组观看到虚拟内容。其中,显示模组可以是显示屏或投射装置等,用于显示图像。光学模组可采用离轴光学系统或波导光学系统,显示模组显示的显示图像经光学模组后,能够被投射至用户的眼睛。用户通过光学模组可看到显示模组投射的显示图像。在一些实施方式中,用户还能够透过光学模组观察到现实环境,感受虚拟内容与现实环境叠加后的视觉效果。通信模块可是蓝牙、WiFi、ZigBee等模块,终端设备可通过通信模块与交互设备通信连接,以进行信息以及指令的交互。电源可为整个终端设备进行供电,保证终端设备各个部件的正常运行。
请参考图15,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。