一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟现实显示设备及其对话窗口显示方法、计算机可读存储介质与流程

2022-02-20 13:33:12 来源:中国专利 TAG:


1.本发明涉及虚拟现实的技术领域,具体地,是一种虚拟现实显示设备的对话窗口显示方法以及实现这种方法的虚拟现实显示设备、计算机可读存储介质。


背景技术:

2.随着虚拟现实技术的发展,虚拟现实显示设备(例如vr眼镜)在游戏、虚拟教学中的应用越来越广泛,例如用户可以通过佩戴虚拟现实显示设备进行虚拟的游戏,又或者进行模拟特定场景的教学,如医疗教学等。通常,虚拟现实显示设备佩戴在用户的头上,当用户头部转动时,虚拟现实显示设备所显示的虚拟场景将需要进行相适应的调整,以确保用户观看到接近于真实的场景。
3.用户佩戴虚拟现实显示设备后,可以看到虚拟的场景,在一些游戏或者教学场景中,往往需要进行人机交互,例如需要在虚拟场景中显示对话窗口,人员需要从对话窗口中选择特定的按键以执行后续的操作。通常,对话窗口是悬浮在虚拟场景之上,即对话窗口并不构成虚拟场景中的一部分,当用户头部转动时,所显示的虚拟场景需要根据用户的头部转动而转动,但对话窗口往往是保持在视场中的固定位置,并不会跟随虚拟场景移动。这种方式能够区别对话窗口始终保持在视场中固定的位置,即使用户改变头部的位姿,也不会导致对话窗口在视场中位置的变化,方便用户对对话窗口进行操作。
4.然而,如果用户头部有轻微的颤动,所显示的虚拟场景也会发生轻微的抖动,但由于对话窗口并不会跟随虚拟场景发生变化,导致用户观看到对话窗口与虚拟场景之间发生相对运动,即看到对话窗口在虚拟场景中发生抖动的情况,有可能导致用户出现眩晕的感觉,尤其是在佩戴虚拟现实显示设备的情况下,更容易导致用户产生眩晕的感觉,影响用户的使用。
5.而现有的一些虚拟现实显示设备为了解决悬停的对话窗口不利于用户操作的问题,对对话窗口的显示进行了特殊处理,例如公开号为cn106527722a的发明专利申请公开了一种虚拟现实中的交互方法,该方法是在检测到用户的操作指令后,虚拟控制点在界面上发生移动;实时检测虚拟控制点的位置,当检测到虚拟控制点偏离界面的中线的预设范围,并在一控件所在区域内的停留时间大于预设时间阈值,则将控件旋转一定的角度进行显示。虽然该方法能够使得用户在查看和选择交互界面边缘的控件时,能够更舒适的查看信息,但该方法仍然是将对话窗口悬停在虚拟场景之上,仅仅是对多个虚拟图标中的一个的显示位置进行旋转等操作,但并不能够解决虚拟图标相对于虚拟场景发生颤动的问题,并不能解决虚拟图标相对于虚拟场景抖动的问题,使得用户容易产生眩晕感。
6.此外,由于该方法需要计算虚拟控制点偏离界面的中线的位置,计算量大,影响虚拟图标的显示效率,导致虚拟场景、虚拟图标显示的过程中出现卡顿的感觉,影响用户体验。


技术实现要素:

7.本发明的第一目的是提供一种能够有效避免对话窗口抖动的虚拟现实显示设备的对话窗口显示方法。
8.本发明的第二目的是提供一种实现上述虚拟现实显示设备的对话窗口显示方法的虚拟现实显示设备。
9.本发明的第三目的是提供一种实现上述虚拟现实显示设备的对话窗口显示方法的计算机可读存储介质。
10.为实现本发明的第一目的,本发明提供的虚拟现实显示设备的对话窗口显示方法包括显示虚拟场景,获取预设控制指令,根据预设控制指令在虚拟场景内显示对话窗口;获取虚拟现实显示设备的位移数据,根据位移数据控制所显示的视场的变化;并且,判断位移数据的变化是否满足预设条件,如位移数据的变化满足预设条件,则调整对话窗口在虚拟场景中的位置,否则,保持对话窗口在虚拟场景中的位置。
11.由上述方案可见,由于对话窗口并不是完全悬浮在虚拟场景之上,尤其是在不满足预设条件的时候,并不会改变对话窗口在虚拟场景中的位置,使得对话窗口与虚拟场景保持同步运动,例如在用户头部轻微颤动的情况下,对话窗口与虚拟场景是保持同步运动的,这样,可以避免对话窗口相对于虚拟场景出现抖动的情况,进而避免用户产生眩晕的感觉。
12.一个优选的方案是,虚拟场景内显示对话窗口包括:将对话窗口作为虚拟场景中的虚拟物件显示在虚拟场景中。
13.可见,直接将对话窗口作为一个虚拟物件显示在虚拟场景中,在用户头部发生轻微抖动的情况下,对话窗口将直接跟随虚拟场景变化,这样并不需要重新计算对话窗口相对于虚拟场景的位置,可以降低虚拟现实显示设备的计算量,并且提升虚拟场景的显示效率。
14.进一步的方案是,调整对话窗口在虚拟场景中的位置包括:使调整后的对话窗口位于虚拟场景的中央位置。
15.这样,可以使得对话窗口基本上保持在视场中的中央位置,有利于用户观看对话窗口,也有利于用户的操作。
16.更进一步的方案是,在虚拟场景内显示对话窗口包括:获取对话窗口的初始显示位置,判断对话窗口的初始显示位置是否与虚拟场景中的第一目标物件干涉,如是,调整对话窗口的显示位置使对话窗口与第一目标物件避开干涉。
17.由此可见,由于对话窗口是以虚拟物件的方式显示在虚拟场景中,为了使得虚拟场景更加真实,需要进行干涉计算,如果对话窗口与虚拟场景中原始布置的第一目标物件干涉,则需要对对话窗口进行调整以避免干涉,使得虚拟场景更加真实。
18.更进一步的方案是,调整对话窗口在虚拟场景中的位置后,还执行:判断调整后的对话窗口在虚拟场景中的位置是否与第二目标物件干涉,如是,再次调整对话窗口的显示位置使对话窗口与第二目标物件避开干涉。
19.更进一步的方案是,判断位移数据的变化是否满足预设条件包括:判断位移数据的变化值是否大于预设阈值;如位移数据的变化值大于预设阈值,则调整对话窗口在虚拟场景内的位置。
20.由此可见,当用户头部的位移幅度较大,表示用户有目的性的改变头部位姿,因此,需要将对话窗口的位置进行调整,以避免对话窗口离开用户的视场。通过设置一个预设的阈值,可以确保用户头部轻微颤动时对话窗口并不会改变在虚拟场景中的位置,避免对话窗口的抖动,并且在用户改变头部位姿时可以确保对话窗口不会离开用户的视场。
21.可选的方案是,判断位移数据的变化是否满足预设条件包括:根据位移数据的变化调整视场后,判断对话窗口的边界是否与调整后的视场的边界之间的距离小于距离阈值。
22.可见,当用户头部位姿改变后,如果对话窗口临近视场的边界,即对话窗口即将无法完整显示时,通过及时的对对话窗口的位置进行调整,可以避免对话窗口离开用户的视场。
23.进一步的方案是,距离阈值为以下的一个:对话窗口最长边缘长度的一半、对话窗口最短边缘长度、对话窗口的半径。
24.由此可见,通过设定合理的距离阈值,可以确保对话窗口在临近视场边界时进行重新定位,以避免对话窗口离开用户视场,确保用户能够直接的观看到对话窗口。
25.为实现上述的第二目的,本发明提供的虚拟现实显示设备包括显示装置、处理器以及存储器,该处理器与显示装置通信,存储器存储有计算机程序,计算机程序被处理器执行时实现上述的虚拟现实显示设备的对话窗口显示方法的各个步骤。
26.为实现上述的第三目的,本发明提供计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述虚拟现实显示设备的对话窗口显示方法的各个步骤。
附图说明
27.图1是本发明虚拟现实显示设备的对话窗口显示方法实施例的流程图的。
28.图2是应用本发明虚拟现实显示设备的对话窗口显示方法实施例的第一状态下的视场图。
29.图3是应用本发明虚拟现实显示设备的对话窗口显示方法实施例的第二状态下的视场图。
30.图4是应用本发明虚拟现实显示设备的对话窗口显示方法实施例的第三状态下的视场图。
31.图5是应用本发明虚拟现实显示设备的对话窗口显示方法实施例的第三状态下的视场图。
32.以下结合附图及实施例对本发明作进一步说明。
具体实施方式
33.本发明的虚拟现实显示设备的对话窗口显示方法应用于虚拟现实显示设备上,尤其是针对需要在虚拟场景内显示对话窗口的情况。本发明的虚拟现实显示设备具有一个显示设备,还设置有处理器以及存储器,处理器可以向显示设备输出数据,存储器上存储有计算机程序,处理器通过执行该计算机程序实现上述的虚拟现实显示设备的对话窗口显示方法。
34.虚拟现实显示设备的对话窗口显示方法实施例:
35.本实施例通过控制虚拟场景中的对话窗口的显示位置,以避免用户佩戴虚拟现实显示设备后,头部的轻微颤动而导致对话窗口出现抖动的情况,避免用户眩晕的感觉。
36.下面结合图1介绍本实施例的工作流程。首先,执行步骤s1,在用户佩戴虚拟现实显示设备后,显示对应的虚拟场景。例如,用户佩戴虚拟现实显示设备后,通过手柄等控制设备发出控制指令,选择需要展示的虚拟场景。当用户转动头部后,所显示的虚拟场景也跟随用户的头部的转动而发生变化。本实施例中,虚拟现实显示设备内设置有位姿传感器,例如陀螺仪,通过获取位姿传感器输出的位移数据来判断用户头部的位姿变化。本实施例的位移数据包括用户在三维方向上的平移、转动等。
37.通常,为了避免用户虚拟场景的抖动,虚拟现实显示设备在位移数据的变化值超过预设的位移阈值后,所显示的虚拟场景才会发生变化,即如果用户的头部发生非常轻微的抖动时,所显示的虚拟场景并不会发生变化。
38.然后,执行步骤s2,根据预设的控制指令计算对话窗口的初始显示位置。用户在游戏、虚拟教学的过程中,由于控制的需要,需要在虚拟场景中显示对话窗口,例如显示虚拟的控制按键或者控制菜单,此时,用户可以通过手柄、语音等方式发出控制指令。当虚拟现实显示设备接收到控制指令后,判断是否需要显示一个虚拟的对话窗口,如是,则在虚拟场景下显示一个对话窗口,如图2所示。
39.本实施例中,对话窗口11并不是悬浮在虚拟场景中,而是作为一个虚拟的物件嵌入到虚拟场景中。为了方便用户观看对话窗口11,可以将对话窗口11布置在当前视场的中央位置,例如对话窗口11为矩形,则对话窗口11的几何中心位于当前视场的几何中心。如图2中,当前视场是用户能够观看到的界面,该界面为一个矩形的界面,通常,界面的大小并不会改变。
40.对话窗口11的初始显示位置就是视场的中央位置,例如对话窗口11的几何中心与当前视场的几何中心重叠。然而,由于对话窗口11作为一个虚拟物件显示在虚拟场景中,因此,对话窗口11有可能会与虚拟场景中的某一个物件发生干涉,一旦发生干涉,将影响用户观看对话窗口11或者该物件,因此,需要执行步骤s3,判断对话窗口11的初始显示位置是否与第一目标物件发生干涉,如果发生干涉,则执行步骤s4,对对话窗口11的位置进行调整,以避免对话窗口11与第一目标物件发生干涉。优选的,对对话窗口11的位置进行调整时,需要确保整个对话窗口11仍位于当前视场中,并且对话窗口11尽可能的靠近视场的中央位置,以便于用户观看对话窗口11。例如,可以将对话窗口11向左、向右平移,或者相对于第一目标物体向前、向后移动,并执行步骤s5,将调整位置后的对话窗口以虚拟物件的方式显示在虚拟场景内。
41.如果步骤s3的判断结果为否,表示对话窗口11的初始显示位置并没有与虚拟场景内任一物件发生干涉,则执行步骤s5,则直接按照对话窗口的初始位置以虚拟物件的方式显示在虚拟场景内。
42.然后,虚拟现实显示设备采集陀螺仪的位移数据,以此判断用户的头部位姿变化。并且,执行步骤s6,判断位移数据的变化是否满足预设条件。本实施例中,预设条件包括两种情况:第一,位移数据的变化值大于预设阈值;第二,根据位移数据的变化调整视场后,对话窗口的边界与调整后的视场的边界之间的距离小于距离阈值。如果满足上述两个条件的任意一个,则步骤s6的判断结果为是,表示位移数据的变化满足预设要求,执行步骤s8;否
则,即同时不满足上述的两个条件,则步骤s6的判断结果为否,执行步骤s7。
43.在第一种判断条件中,需要计算位移数据的变化值,例如获取陀螺仪前后两次的位移数据,并且计算两个位移数据的差值。例如,用户头部是平移运动,则直接计算用户头部平移的距离,如果用户的头部是转动,则需要计算用户的转动角度。因此,位移数据可以是移动距离,也可以是转动角度,相应的,预设阈值可以是移动的距离阈值,也可以是转动角度阈值。
44.在第二种条件中,需要根据位移数据预先计算虚拟场景的变化,例如计算对话窗口11在调整后视场中的位置。具体的,当用户头部转动时,显示在视场中的虚拟场景也跟着发生变化。由于对话窗口11作为虚拟场景中的一个虚拟物件进行显示,因此,对话窗口11在视场中的位置也发生变化,如图3所示。
45.然而,如果用户的头部移动距离较大,或者转动角度较大,则容易发生对话窗口11离开用户的视场,例如对话窗口11无法完整的显示在视场中,如图4所示的情况。这样,将影响用户的体验。因此,本实施例中,需要在对话窗口11临近视场的边界时,则需要对对话窗口11的位置进行调整,从而避免对话窗口11离开视场的问题。
46.因此,第二种条件是需要计算在新的视场下,假设不对对话窗口的位置进行调整的情况下,对话窗口11的边界与调整后的视场的边界之间的距离是否小于预先设定的距离阈值,例如计算图3中对话窗口11的边界13与视场中最靠近的边界15之间的距离,如果对话窗口11的边界13与视场的边界15之间的距离小于距离阈值,则步骤s6的判断结果为是。
47.优选的,距离阈值可以是对话窗口11最长边缘12长度的一半或者对话窗口最短边缘13长度,如果对话窗口是圆形,则距离阈值还可以是对话窗口的半径。当然,实际应用时,距离阈值还可以是固定的数值,该数值与对话窗口的边缘长度无关。或者,可以使用视场自身的边界长度作为距离阈值参考基准,例如距离阈值是视场边界最长边缘的五分之一,或者视场边界最短边缘的三分之一。
48.如果步骤s6的判断结果为否,则表示用户头部的移动很小,或者没有移动,则执行步骤s7,保持对话窗口在虚拟场景中的显示位置。如图3所示,当用户头部转动较小的角度时,当前视场中所显示的虚拟场景是发生变化的,但对话窗口11作为虚拟场景中的一个物件,相对于其他的虚拟物件,对话窗口11的位置并没有发生变化,因此,在步骤s7中,对话窗口11实际上是跟随虚拟场景的变化而变化。可以理解,对话窗口11相对于虚拟场景是静止的,即使用户头部颤动,对话窗口11并不会相对于虚拟场景发生变化,避免对话窗口11相对于虚拟场景出现抖动的情况。
49.如果步骤s6的判断结果为是,则执行步骤s8,调整对话窗口11在虚拟场景中的位置,具体的,取消原先显示在虚拟场景中的对话窗口11,在新的视场下重新查找合适的位置显示对话窗口,如图5所示,新的对话窗口20也是以虚拟物件的方式显示在虚拟场景中。优选的,新的对话窗口20也是在当前视场下的中央区域。
50.然后,执行步骤s9,判断新的对话窗口20的显示位置是否与虚拟场景中的第二目标物件发生干涉,如果发生干涉,则执行步骤s10,再次对新的对对话窗口20的位置进行调整,以避免对话窗口20与第二目标物件发生干涉。优选的,对对话窗口20的位置进行调整时,需要确保整个对话窗口20仍位于当前视场中,并且对话窗口20尽可能的靠近视场的中央位置,以便于用户观看对话窗口20。
51.如果步骤s9的判断结果为否,表示对话窗口20的显示位置并没有与虚拟场景内任一物件发生干涉,则执行步骤s11,将新的对话窗口20显示在虚拟场景内,优选的,对话窗口20也是以虚拟物件的方式显示在虚拟场景中。
52.另外,执行步骤s10后,也是执行步骤s11,将调整后的对话窗口以虚拟物件的方式显示在虚拟场景中。
53.可见,应用本实施例的方案,当用户头部颤动时,对话窗口并不会马上相对于虚拟场景移动,可以避免对话窗口相对于虚拟场景抖动的情况,避免用户出现眩晕的情况,提升用户体验。
54.虚拟现实显示设备实施例:
55.本实施例的虚拟现实显示设备可以是vr眼镜,其具有一个显示屏以及位姿传感器,例如陀螺仪等,并且设置有处理器和存储器,处理器接收位姿传感器发送的位移数据,并向显示装置输出数据。其中,存储器存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述虚拟现实显示设备的对话窗口显示方法的各个步骤。
56.例如,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明的各个模块。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
57.本发明所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
58.存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
59.计算机可读存储介质实施例:
60.上述虚拟现实显示设备所存储的计算机程序如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述虚拟现实显示设备的对话窗口显示方法的各个步骤。
61.其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器
(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
62.最后需要强调的是,本发明不限于上述实施方式,例如对话窗口在虚拟场景中显示位置的变化,或者距离阈值的变化等,这些改变也应该包括在本发明权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献