1.本申请涉及虚拟现实显示技术领域,具体涉及一种虚拟现实设备和虚拟现实场景中物体的视线跟随方法。
背景技术:2.随着技术的不断发展,vr(virtual reality,虚拟现实)技术已经成为了当前计算机应用领域的一个研究热点。vr技术是一种集实时三维计算机图形学技术、人机交互技术、传感技术、多媒体技术、广角立体显示技术、网络技术等多种先进技术为一体的人机交互技术,可以形象地模拟人在自然环境中的各种感知性行为。参与者可以通过立体头盔、数据手套、三维鼠标等设备沉浸在计算机创造的虚拟环境中,并可以用人类自然的行为和感知与虚拟环境中的对象进行各种交互性活动。
3.vr设备一般都具备陀螺仪,当转动vr设备时,陀螺仪产生空间位置数据,可以直接控制vr设备中的虚拟相机。对于vr场景来说,相机交互是一种主要的交互手段,通过改变vr场景中虚拟相机的位置、角度,用户可以看到场景中不同的物体。因此,随着相机视线的变化,场景中的物体相对于虚拟相机的相对位置也会发生变化。比如用户在使用vr设备进行观影时,初始用户为坐立姿势,vr场景中的荧幕在用户正前方,当用户半躺、全躺或者身体进行转动时,虚拟相机的视线就不再正对着荧幕了。在一些情况下,用户希望物体与相机的相对位置保持不变,即希望物体跟随虚拟相机的视线移动。然而,传统的方法却无法实现虚拟场景中的物体跟随着虚拟相机的视线进行移动。
技术实现要素:4.为解决现有存在的技术问题,本申请实施例提供一种虚拟现实设备和虚拟现实场景中物体的视线跟随方法,可以实现虚拟现实场景中显示的物体跟随着虚拟相机的视线进行移动。
5.为达到上述目的,本申请实施例的技术方案是这样实现的:
6.第一方面,本申请实施例提供一种虚拟现实设备,包括:
7.显示组件,所述显示组件用于显示虚拟现实场景中的物体;
8.存储器,所述存储器用于存储程序代码和所述虚拟现实设备运行时所产生的数据信息;
9.处理器,所述处理器用于执行所述程序代码,以实现如下过程:
10.监测所述虚拟现实设备的位姿;
11.在所述虚拟现实设备处于视线跟随模式时,若监测到所述虚拟现实设备的位姿发生改变,确定所述虚拟现实设备的虚拟相机的当前相机位置信息和当前相机旋转角度信息;根据所述当前相机位置信息、所述当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动;所述初始相对位置信息为所述虚拟相机与所述物体在相机局部坐标系下的初始相对位置信息;
12.在所述虚拟现实设备处于视线固定模式时,若监测到所述虚拟现实设备的位姿发生改变,保持所述物体位于此次位姿发生改变之前的物体位置和物体旋转角度。
13.本申请实施例提供的虚拟现实设备,可以实时监测虚拟现实设备的位姿,在虚拟现实设备处于视线跟随模式时,如果监测到虚拟现实设备的位姿发生改变,可以确定虚拟现实设备的虚拟相机的当前相机位置信息和当前相机旋转角度信息,根据当前相机位置信息、当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动,其中,初始相对位置信息为虚拟相机与物体在相机局部坐标系下的初始相对位置信息。在虚拟现实设备处于视线固定模式时,如果监测到虚拟现实设备的位姿发生改变,可以保持物体位于此次位姿发生改变之前的物体位置和物体旋转角度。从而当虚拟相机的视线发生改变时,实现虚拟现实场景中的物体可以跟随着虚拟相机的视线进行移动。
14.第二方面,本申请实施例提供一种虚拟现实场景中物体的视线跟随方法,包括:
15.在所述虚拟现实设备处于视线跟随模式时,若监测到虚拟现实设备的位姿发生改变,确定所述虚拟现实设备的虚拟相机的当前相机位置信息和当前相机旋转角度信息;根据所述当前相机位置信息、所述当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动;所述初始相对位置信息为所述虚拟相机与所述物体在相机局部坐标系下的初始相对位置信息;
16.在所述虚拟现实设备处于视线固定模式时,若监测到所述虚拟现实设备的位姿发生改变,保持所述物体位于此次位姿发生改变之前的物体位置和物体旋转角度。
17.在一种可能的实现方式中,所述虚拟相机与所述物体的初始相对位置信息通过如下方式获取:
18.获取所述物体在全局坐标系下的第一初始物体位置信息;
19.将所述第一初始物体位置信息转换为相机局部坐标系下的第二初始物体位置信息;
20.根据所述第二初始物体位置信息,确定所述物体在所述相机局部坐标系下的三维坐标信息;
21.将所述三维坐标信息作为所述初始相对位置信息。
22.在一种可能的实现方式中,根据所述当前相机位置信息、所述当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动,包括:
23.根据所述当前相机位置信息,将所述物体移动至所述虚拟相机的当前位置;
24.根据所述当前相机旋转角度信息,对所述物体的旋转角度进行调整;
25.根据所述初始相对位置信息,对移动后的物体再次进行移动。
26.在一种可能的实现方式中,所述初始相对位置信息为包括在相机局部坐标系下的垂直坐标信息、水平坐标信息和前向坐标信息的三维坐标信息;所述根据所述初始相对位置信息,对移动后的物体再次进行移动,包括:
27.分别将所述物体沿相机局部坐标系下的垂直方向移动所述垂直坐标信息对应的距离,沿相机局部坐标系下的水平方向移动所述水平坐标信息对应的距离,以及沿相机局部坐标系下的前向方向移动所述前向坐标信息对应的距离。
28.在一种可能的实现方式中,若监测到所述虚拟现实设备的位姿发生改变,获取当前相机位置信息和当前相机旋转角度信息,或者保持所述物体位于此次位姿发生改变之前
的物体位置和物体旋转角度之前,所述方法还包括:
29.根据位姿传感器采集的所述虚拟现实设备的位置信息和旋转角度信息,确定所述虚拟现实设备的位姿是否发生改变。
30.在一种可能的实现方式中,所述视线固定模式包括视线暂停跟随模式,所述方法还包括:
31.接收到用户启动交互界面的操作;
32.若所述虚拟现实设备处于视线跟随模式,则由所述视线跟随模式切换至所述视线暂停跟随模式。
33.在一种可能的实现方式中,所述视线固定模式还包括视线不跟随模式,所述方法还包括:
34.在所述虚拟现实设备处于视线暂停跟随模式时,若在预设时长之内未通过所述交互界面接收到用户的交互指令,则隐藏所述交互界面,并由所述视线暂停跟随模式切换至所述视线跟随模式;或者,
35.在所述虚拟现实设备处于视线暂停跟随模式时,若接收到用户退出观看的操作,则由所述视线暂停跟随模式切换至所述视线不跟随模式,并关闭所述虚拟现实设备。
36.第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第二方面的虚拟现实场景中物体的视线跟随方法。
37.第四方面,本申请实施例还提供了一种虚拟现实场景中物体的视线跟随装置,所述装置包括:
38.视线跟随模式单元,用于在所述虚拟现实设备处于视线跟随模式时,若监测到所述虚拟现实设备的位姿发生改变,确定所述虚拟现实设备的虚拟相机的当前相机位置信息和当前相机旋转角度信息;根据所述当前相机位置信息、所述当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动;所述初始相对位置信息为所述虚拟相机与所述物体在相机局部坐标系下的初始相对位置信息;
39.视线固定模式单元,用于在所述虚拟现实设备处于视线固定模式时,若监测到所述虚拟现实设备的位姿发生改变,保持所述物体位于此次位姿发生改变之前的物体位置和物体旋转角度。
40.在一种可能的实现方式中,所述视线跟随模式单元,具体用于:
41.获取所述物体在全局坐标系下的第一初始物体位置信息;
42.将所述第一初始物体位置信息转换为相机局部坐标系下的第二初始物体位置信息;
43.根据所述第二初始物体位置信息,确定所述物体在所述相机局部坐标系下的三维坐标信息;
44.将所述三维坐标信息作为所述初始相对位置信息。
45.在一种可能的实现方式中,所述视线跟随模式单元,具体用于:
46.根据所述当前相机位置信息和所述初始相对位置信息,确定所述物体的目标位置信息;
47.将所述当前相机旋转角度信息作为所述物体的目标旋转角度信息;
48.根据所述目标位置信息,将所述物体移动至目标位置,并根据所述目标旋转角度信息对所述物体的旋转角度进行调整。
49.在一种可能的实现方式中,所述视线跟随模式单元,还用于:
50.根据所述当前相机位置信息,将所述物体移动至所述虚拟相机的当前位置;
51.根据所述当前相机旋转角度信息,对所述物体的旋转角度进行调整;
52.根据所述初始相对位置信息,对移动后的物体再次进行移动。
53.在一种可能的实现方式中,所述初始相对位置信息为包括在相机局部坐标系下的垂直坐标信息、水平坐标信息和前向坐标信息的三维坐标信息;所述视线跟随模式单元,还用于:
54.分别将所述物体沿相机局部坐标系下的垂直方向移动所述垂直坐标信息对应的距离,沿相机局部坐标系下的水平方向移动所述水平坐标信息对应的距离,以及沿相机局部坐标系下的前向方向移动所述前向坐标信息对应的距离。
55.在一种可能的实现方式中,所述装置还包括位姿确定单元,用于:
56.根据位姿传感器采集的所述虚拟现实设备的位置信息和旋转角度信息,确定所述虚拟现实设备的位姿是否发生改变。
57.在一种可能的实现方式中,所述视线固定模式包括视线暂停跟随模式,所述装置还包括模式切换单元,用于:
58.接收到用户启动交互界面的操作;
59.若所述虚拟现实设备处于视线跟随模式,则由所述视线跟随模式切换至所述视线暂停跟随模式。
60.在一种可能的实现方式中,所述视线固定模式还包括视线不跟随模式,所述模式切换单元,还用于:
61.在所述虚拟现实设备处于视线暂停跟随模式时,若在预设时长之内未通过所述交互界面接收到用户的交互指令,则隐藏所述交互界面,并由所述视线暂停跟随模式切换至所述视线跟随模式;或者,
62.在所述虚拟现实设备处于视线暂停跟随模式时,若接收到用户退出观看的操作,则由所述视线暂停跟随模式切换至所述视线不跟随模式,并关闭所述虚拟现实设备。
63.第二方面、第三方面或第四方面中任意一种实现方式所带来的技术效果可参见第一方面的实现方式所带来的技术效果,此处不再赘述。
附图说明
64.为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
65.图1为本申请实施例提供的一种虚拟现实设备的结构示意图;
66.图2为本申请实施例提供的另一种虚拟现实设备的结构示意图;
67.图3为本申请实施例提供的一种虚拟现实场景中物体的视线跟随方法的流程示意图;
68.图4为本申请实施例提供的一种视线跟随模式的示意图;
69.图5为本申请实施例提供的另一种视线跟随模式的示意图;
70.图6为本申请实施例提供的另一种视线跟随模式的示意图;
71.图7为本申请实施例提供的一种虚拟现实场景中物体的视线跟随装置的结构示意图;
72.图8为本申请实施例提供的另一种虚拟现实场景中物体的视线跟随装置的结构示意图。
具体实施方式
73.为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
74.图1中示例性示出了本申请实施例提供的一种虚拟现实设备的结构示意图。如图1所示,本申请实施例提供的虚拟现实设备,包括处理器103、存储器102和显示组件101。
75.显示组件101,用于显示虚拟现实场景中的物体。
76.存储器102,用于存储虚拟现实设备运行时所产生的数据信息和处理器103运行时所使用的程序代码,如本申请实施例提供的虚拟现实场景中物体的视线跟随方法的程序代码等,其中,程序代码可以由处理器103执行。
77.处理器103,可以包括一个或多个中央处理单元(central processing unit,cpu),或者数字处理单元等等。处理器103,用于调用存储器102中存储的程序代码以实现如下过程:监测虚拟现实设备的位姿,在虚拟现实设备处于视线跟随模式时,若监测到虚拟现实设备的位姿发生改变,确定虚拟现实设备的虚拟相机的当前相机位置信息和当前相机旋转角度信息;根据当前相机位置信息、当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动;初始相对位置信息为虚拟相机与物体在相机局部坐标系下的初始相对位置信息;在虚拟现实设备处于视线固定模式时,若监测到虚拟现实设备的位姿发生改变,保持物体位于此次位姿发生改变之前的物体位置和物体旋转角度。
78.本申请实施例中不限定上述显示组件101、存储器102和处理器103之间的具体连接介质。本申请实施例在图1中,显示组件101、存储器102和处理器103之间通过总线104连接,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线104可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
79.在一种实施例中,vr(virtual reality,虚拟现实)设备可以是具备全景视频播放和交互功能的智能设备,如手机、平板电脑、台式机、笔记本电脑等。如图2所示,该vr设备包括:射频(radio frequency,rf)电路310、存储器320、输入单元330、显示单元340、传感器350、音频电路360、无线保真(wireless fidelity,wifi)模块370、处理器380等部件。本领域技术人员可以理解,图2中示出的vr设备结构并不构成对vr设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
80.下面结合图2对vr设备的各个构成部件进行具体的介绍:
81.rf电路310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器380处理;另外,将设计上行的数据发送给基站。
82.存储器320可用于存储软件程序以及模块,如本申请实施例中的虚拟现实场景中物体的视线跟随方法对应的程序指令,处理器380通过运行存储在存储器320的软件程序,从而执行vr设备的各种功能应用以及数据处理,如本申请实施例提供的虚拟现实场景中物体的视线跟随方法。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个应用的应用程序等;存储数据区可存储根据vr设备的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
83.输入单元330可用于接收用户输入的数字或字符信息,以及产生与vr设备的用户设置以及功能控制有关的键信号输入。
84.可选的,输入单元330可包括触控面板331以及其他输入设备332。
85.其中,触控面板331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板331上或在触控面板331附近的操作),并根据预先设定的程式实现相应的操作,如用户点击功能模块的快捷标识的操作等。可选的,触控面板331可以包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器380,并能接收处理器380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板331。
86.可选的,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
87.显示单元340可用于显示由用户输入的信息或展示给用户的界面信息以及vr设备的各种菜单。显示单元340即为vr设备的显示系统,用于呈现界面,如显示桌面、应用的操作界面或直播应用的操作界面等。显示单元340也可以用于显示vr场景中的物体。
88.显示单元340可以包括显示面板341。可选的,显示面板341可以采用液晶显示屏(liquid crystal display,lcd)、有机发光二极管(organic light
‑
emitting diode,oled)等形式来配置。
89.进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器380以确定触摸事件的类型,随后处理器380根据触摸事件的类型在显示面板341上提供相应的界面输出。
90.虽然在图2中,触控面板331与显示面板341是作为两个独立的部件来实现vr设备的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现vr设备的输入和输出功能。
91.vr设备还可包括至少一种传感器350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板341的亮度,接近传感器可在vr设备移动到耳边时,关闭显示面板341的背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别vr设备姿态的应用(比如横竖屏
切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于vr设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
92.音频电路360、扬声器361,传声器362可提供用户与vr设备之间的音频接口,即实现的是语音采集组件的功能。音频电路360可将接收到的音频数据转换后的电信号,传输到扬声器361,由扬声器361转换为声音信号输出;另一方面,传声器362将收集的声音信号转换为电信号,由音频电路360接收后转换为音频数据,再将音频数据输出处理器380处理后,经rf电路310以发送给比如另一vr设备,或者将音频数据输出至存储器320以便进一步处理。
93.wifi属于短距离无线传输技术,vr设备通过wifi模块370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图2示出了wifi模块370,但是可以理解的是,其并不属于vr设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
94.处理器380是vr设备的控制中心,利用各种接口和线路连接整个vr设备的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行vr设备的各种功能和处理数据,从而对vr设备进行整体监控。可选的,处理器380可包括一个或多个处理单元;可选的,处理器380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用及应用内部的功能模块等软件程序,如本申请实施例提供的虚拟现实场景中物体的视线跟随方法等。调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
95.可以理解,图2所示的结构仅为示意,vr设备还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
96.在另一种实施例中,vr设备也可以是智能电视和vr头显设备等能够具备全景视频播放和交互的设备。
97.在一些实施例中,上述vr设备执行的虚拟现实场景中物体的视线跟随方法的流程图可以参见图3所示,包括以下步骤:
98.步骤s301,在虚拟现实设备处于视线跟随模式时,若监测到虚拟现实设备的位姿发生改变,确定虚拟现实设备的虚拟相机的当前相机位置信息和当前相机旋转角度信息。
99.vr设备中一般都具备陀螺仪等位姿传感器,可以实时采集vr设备的位姿信息,并且根据采集到的位姿信息,产生空间位置数据,进而控制vr场景中的虚拟相机。当vr设备处于视线跟随模式时,如果根据陀螺仪采集的位姿信息,监测到了vr设备的位姿发生改变,可以确定vr设备的虚拟相机在全局坐标系下的当前相机位置信息和当前相机旋转角度信息。
100.vr场景中的虚拟相机可以模拟真实世界中的人眼视角,可以观看到显示于vr场景中的各个物体,并且,当使用vr设备的用户转动头部时,虚拟相机可以随着头部的转动而发生改变,从而与vr场景中显示的物体的相对位置发生变化。
101.步骤s302,根据当前相机位置信息、当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动。
102.其中,初始相对位置信息为虚拟相机与vr场景中显示的物体在相机局部坐标系下的初始相对位置信息,即vr设备启动时,虚拟相机与物体在相机局部坐标系下的初始相对
位置信息。虚拟相机与物体的初始相对位置信息可以通过以下方式进行获取:先获取物体在全局坐标系下的第一初始物体位置信息,然后将第一初始物体位置信息转换为相机局部坐标系下的第二初始物体位置信息,再根据第二初始物体位置信息,确定物体在相机局部坐标系下的三维坐标信息,最后将三维坐标信息作为初始相对位置信息。
103.在获取到当前相机位置信息、当前相机旋转角度信息和初始相对位置信息后,可以根据当前相机位置信息、当前相机旋转角度信息和初始相对位置信息,对物体进行移动。本实施例中对物体进行移动是指对物体进行移动、旋转等操作。
104.在一种实施例中,当监测到vr设备的位姿发生改变,即虚拟相机的视线发生改变时,可以先根据当前相机位置信息和初始相对位置信息,确定物体的目标位置信息,再将当前相机旋转角度信息作为物体的目标旋转角度信息,最后根据目标位置信息将物体移动至目标位置,并根据目标旋转角度信息对物体的旋转角度进行调整。从而实现物体以初始时与虚拟相机的相对位置跟随虚拟相机视线进行移动、旋转等。
105.在另一种实施例中,由于虚拟相机与物体的初始相对位置信息为包括在相机局部坐标系下的垂直坐标信息、水平坐标信息和前向坐标信息的三维坐标信息,因此,当虚拟相机的视线发生改变时,可以先根据当前相机位置信息,将物体移动至虚拟相机的当前位置,然后根据当前相机旋转角度信息,对物体的旋转角度进行调整,最后分别将物体沿相机局部坐标系下的垂直方向移动垂直坐标信息对应的距离,沿相机局部坐标系下的水平方向移动水平坐标信息对应的距离,以及沿相机局部坐标系下的前向方向移动前向坐标信息对应的距离。从而使得物体跟随虚拟相机的视线进行移动,并且物体与虚拟相机的相对位置保持不变。
106.步骤s303,在虚拟现实设备处于视线固定模式时,若监测到虚拟现实设备的位姿发生改变,保持物体位于此次位姿发生改变之前的物体位置和物体旋转角度。
107.当vr设备处于视线固定模式时,如果监测到vr设备的位姿发生改变,可以保持物体位于此次位姿发生改变之前的物体位置和物体旋转角度。
108.本申请实施例提供的虚拟现实场景中物体的视线跟随方法,在虚拟现实设备处于视线跟随模式时,如果监测到虚拟现实设备的位姿发生改变,可以确定虚拟现实设备的虚拟相机的当前相机位置信息和当前相机旋转角度信息,根据当前相机位置信息、当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动,其中,初始相对位置信息为虚拟相机与物体在相机局部坐标系下的初始相对位置信息。在虚拟现实设备处于视线固定模式时,如果监测到虚拟现实设备的位姿发生改变,可以保持物体位于此次位姿发生改变之前的物体位置和物体旋转角度。从而当虚拟相机的视线发生改变时,实现虚拟现实场景中的物体可以跟随着虚拟相机的视线进行移动。
109.在一种实施例中,本申请中的vr设备可以提供三种不同的物体跟随模式,分别为模式一、模式二、模式三,其中,模式一可以是视线不跟随模式,模式二可以是视线跟随模式,模式三可以是视线暂停跟随模式。这三种模式可以根据vr场景的交互需求进行动态设置,设置的对象可以以vr场景中的单个物体为基本单位,即本申请中的vr设备可以灵活地对vr场景中的任意一个物体或多个物体进行视线跟随模式设置。
110.其中,视线跟随模式是指虚拟相机的视线发生改变时,vr场景中的物体跟随着虚拟相机的视线进行移动。视线暂停跟随模式是指物体保持暂停模式切换前的位置和旋转角
度,当虚拟相机的视线发生改变时,不跟随着虚拟相机的视线进行移动。视线不跟随模式是指当虚拟相机的视线发生改变时,物体始终保持着vr设备开启时的原始位置和原始旋转角度,不跟随着虚拟相机的视线进行移动。
111.具体地,在vr设备启动时,可以记录vr场景中的跟随物体在全局坐标系下的初始位置信息objoripos和初始旋转角度信息objorirot。然后在相机局部坐标系下,对初始位置信息objoripos进行转换,得到objoriposlocal。接着,计算物体与虚拟相机的初始相对位置信息,包括垂直相对值vertical、前向相对值forward和水平相对值horizontal。由于虚拟相机在相机局部坐标系下的坐标值为(0,0,0),所以vertical=objoriposlocal.y,forward=objoriposlocal.z,horizontal=objoriposlocal.x。
112.上述过程可以在vr场景的每帧执行,然后开始判断物体的当前跟随模式。当用户选择视线不跟随模式,即vr设备中的视线不跟随模式开启时,物体会始终保持vr设备启动时的初始位置和初始旋转角度,并且不跟随虚拟相机进行移动、旋转等操作。如图4所示,在该模式下,当虚拟相机转动时,立方体即跟随物体的位置和旋转角度不会跟随虚拟相机改变。可以将物体当前在全局坐标系下的位置信息objcurpos和旋转角度信息objcurrot置为初始值,即objcurpos=objoripos、objcurrot=objorirot。
113.当用户选择视线跟随模式,即vr设备中的视线跟随模式开启时,物体可以以初始时与虚拟相机的相对位置跟随虚拟相机进行移动、旋转等操作。如图5所示,在该模式下,当虚拟相机转动时,立方体的位置和旋转角度会随着虚拟相机改变,且与虚拟相机的相对位置保持不变。可以获取虚拟相机当前在全局坐标系下的位置信息camcurpos和旋转角度信息camcurrot,并将其分别赋值给物体在全局坐标系下的当前位置信息objcurpos和当前旋转角度信息objcurrot,即objcurpos=camcurpos、objcurrot=camcurrot。该过程可以将物体移动到虚拟相机当前所处的位置,并对物体进行角度旋转使其与虚拟相机的朝向一致。然后可以将物体分别沿相机局部坐标系的垂直方向移动vertical距离,沿前向方向移动forward距离,以及沿水平方向移动horizontal距离,从而使得当前物体在相机局部坐标系下与虚拟相机的相对位置保持不变。
114.当用户选择视线暂停跟随模式,即vr设备中的视线暂停跟随模式开启时,物体暂停跟随虚拟相机移动,并且保持暂停状态开始时的位置和旋转角度。如图6所示,在该模式下,当虚拟相机转动时,立方体的位置和旋转角度不再更新,即不再跟随虚拟相机移动,保持模式切换前的状态。并且当该模式开启后,无论虚拟相机的位置或者旋转角度是否发生改变,物体会一直保持在该模式切换前的位置和旋转角度。
115.例如,在采用vr设备进行观影的场景中,可以将vr的场景元素概括为荧幕和ui(user interface,用户交互)界面。为了使得观影不受干扰,在停止ui交互一定时间如5s后,ui界面可以自动隐藏。当用户通过手柄或者头显按钮点击vr场景中的任意位置时,表示用户需要进行ui交互,比如暂停视频、拖动进度条、退出播放等等,此时ui界面出现,可以响应用户的交互操作。荧幕和ui界面默认的视线跟随模式为视线不跟随模式,在该模式下,随着虚拟相机的转动,ui界面和荧幕保持原来的位置和旋转角度不变。当用户选择视线跟随模式时,荧幕和ui界面会随着虚拟相机的转动而移动,并且与虚拟相机的相对位置始终保持不变,即无论用户以什么姿势和角度观影,用户的直观感受是荧幕和ui界面的位置保持与初始时一致,始终位于用户视野的正前方。当用户通过手柄或者头显按钮点击vr场景中
的任意位置时,ui界面出现,由于此时没有切换视线的跟随模式,ui界面会一直显示在用户视野的正前方,因此,用户视野中央的交互焦点就无法在ui界面上进行选择交互。所以此时可以自动切换至视线暂停跟随模式,在该模式下,荧幕和ui界面就不再跟随虚拟相机移动,并且荧幕和ui界面的位置和旋转角度保持在模式切换前的状态,此时用户可以方便地进行ui交互。当停止ui交互一定时间如5s后,ui界面可以再次自动隐藏,并且此时会自动切换为视线跟随模式,荧幕可以根据虚拟相机的当前位置和当前旋转角度自动移动到与虚拟相机初始相对位置一致的位置和角度,继续跟随着虚拟相机移动。当用户想结束观影或者想结束视线跟随功能时,可以通过手柄或者头显按钮点击vr场景中的任意位置,待ui界面出现后对视线跟随模式进行切换,并且切换到视线不跟随模式,此时荧幕和ui界面可以恢复到初始位置和初始旋转角度。
116.与图3所示的虚拟现实场景中物体的视线跟随方法基于同一发明构思,本申请实施例中还提供了一种虚拟现实场景中物体的视线跟随装置,该虚拟现实场景中物体的视线跟随装置可以布设在vr设备中。由于该装置是本申请虚拟现实场景中物体的视线跟随方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
117.图7示出了本申请实施例提供的一种虚拟现实场景中物体的视线跟随装置的结构示意图,如图7所示,该虚拟现实场景中物体的视线跟随装置包括视线跟随模式单元701和视线固定模式单元702。
118.其中,视线跟随模式单元701,用于在虚拟现实设备处于视线跟随模式时,若监测到虚拟现实设备的位姿发生改变,确定虚拟现实设备的虚拟相机的当前相机位置信息和当前相机旋转角度信息;根据当前相机位置信息、当前相机旋转角度信息和初始相对位置信息,对虚拟现实场景中显示的物体进行移动;初始相对位置信息为虚拟相机与物体在相机局部坐标系下的初始相对位置信息;
119.视线固定模式单元702,用于在虚拟现实设备处于视线固定模式时,若监测到虚拟现实设备的位姿发生改变,保持物体位于此次位姿发生改变之前的物体位置和物体旋转角度。
120.在一种可能的实现方式中,视线跟随模式单元701,具体用于:
121.获取物体在全局坐标系下的第一初始物体位置信息;
122.将第一初始物体位置信息转换为相机局部坐标系下的第二初始物体位置信息;
123.根据第二初始物体位置信息,确定物体在相机局部坐标系下的三维坐标信息;
124.将三维坐标信息作为初始相对位置信息。
125.上述装置可以先获取物体在全局坐标系下的第一初始物体位置信息,然后将第一初始物体位置信息转换为相机局部坐标系下的第二初始物体位置信息,根据第二初始物体位置信息,确定物体在相机局部坐标系下的三维坐标信息,最后将三维坐标信息作为初始相对位置信息。从而可以获取到虚拟相机与物体的初始相对位置信息。
126.在一种可能的实现方式中,视线跟随模式单元701,具体用于:
127.根据当前相机位置信息和初始相对位置信息,确定物体的目标位置信息;
128.将当前相机旋转角度信息作为物体的目标旋转角度信息;
129.根据目标位置信息,将物体移动至目标位置,并根据目标旋转角度信息对物体的
旋转角度进行调整。
130.上述装置可以根据当前相机位置信息和初始相对位置信息,确定物体的目标位置信息,将当前相机旋转角度信息作为物体的目标旋转角度信息,然后根据目标位置信息,将物体移动至目标位置,并根据目标旋转角度信息对物体的旋转角度进行调整。从而可以实现物体随着虚拟相机进行移动,并且物体与虚拟相机的相对位置保持不变。
131.在一种可能的实现方式中,视线跟随模式单元701,还用于:
132.根据当前相机位置信息,将物体移动至虚拟相机的当前位置;
133.根据当前相机旋转角度信息,对物体的旋转角度进行调整;
134.根据初始相对位置信息,对移动后的物体再次进行移动。
135.上述装置可以先根据当前相机位置信息,将物体移动至虚拟相机的当前位置,再根据当前相机旋转角度信息,对物体的旋转角度进行调整,最后根据初始相对位置信息,对移动后的物体再次进行移动。从而也可以实现物体随着虚拟相机进行移动,并且物体与虚拟相机的相对位置保持不变。
136.在一种可能的实现方式中,初始相对位置信息为包括在相机局部坐标系下的垂直坐标信息、水平坐标信息和前向坐标信息的三维坐标信息;视线跟随模式单元701,还用于:
137.分别将物体沿相机局部坐标系下的垂直方向移动垂直坐标信息对应的距离,沿相机局部坐标系下的水平方向移动水平坐标信息对应的距离,以及沿相机局部坐标系下的前向方向移动前向坐标信息对应的距离。
138.上述装置由于初始相对位置信息为包括相机局部坐标系下的垂直坐标信息、水平坐标信息和前向坐标信息的三维坐标信息,因此可以分别将物体沿相机局部坐标系的垂直方向移动垂直坐标信息对应的距离,沿相机局部坐标系下的水平方向移动水平坐标信息对应的距离,以及沿相机局部坐标系下的前向方向移动前向坐标信息对应的距离。从而在将物体移动到虚拟相机位置并将物体的旋转角度调整为与虚拟相机相同的旋转角度后,可以将物体沿着相机局部坐标系下的垂直方向、水平方向和前向方向移动到相对位置处。
139.在一种可能的实现方式中,如图8所示,上述装置还可以包括位姿确定单元801,用于:
140.根据位姿传感器采集的虚拟现实设备的位置信息和旋转角度信息,确定虚拟现实设备的位姿是否发生改变。
141.上述装置可以根据位姿传感器采集的虚拟现实设备的位置信息和旋转角度信息,确定虚拟现实设备的位姿是否发生改变。从而可以确定虚拟相机的视线是否发生改变。
142.在一种可能的实现方式中,视线固定模式包括视线暂停跟随模式,上述装置还可以包括模式切换单元802,用于:
143.接收到用户启动交互界面的操作;
144.若所述虚拟现实设备处于视线跟随模式,则由所述视线跟随模式切换至所述视线暂停跟随模式。
145.在一种可能的实现方式中,视线固定模式还包括视线不跟随模式,模式切换单元802,还用于:
146.在虚拟现实设备处于视线暂停跟随模式时,若在预设时长之内未通过交互界面接收到用户的交互指令,则隐藏交互界面,并由视线暂停跟随模式切换至视线跟随模式;或
者,
147.在虚拟现实设备处于视线暂停跟随模式时,若接收到用户退出观看的操作,则由视线暂停跟随模式切换至视线不跟随模式,并关闭虚拟现实设备。
148.本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd
‑
rom、光学存储器等)上实施的计算机程序产品的形式。
149.本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
150.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
151.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
152.显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。