虚拟现实场景数据同步方法、装置、终端设备和存储介质

文档序号:32692468发布日期:2022-12-27 19:26阅读:25来源:国知局
虚拟现实场景数据同步方法、装置、终端设备和存储介质

1.本技术涉及虚拟现实技术领域,尤其涉及一种虚拟现实场景数据同步方法、装置、终端设备和存储介质。


背景技术:

2.随着虚拟现实、触觉设备和物理建模等相关技术的发展,虚拟现实手术模拟因其无损伤、可重复、方便高效等优点受到广泛关注。虚拟现实手术模拟是通过计算机技术进行物理仿真,模拟出手术对象和环境,相比于传统的手术培训模式,使用虚拟现实手术模拟进行培训可以提高培训效率和降低培训成本。然而,目前的虚拟现实手术模拟需要培训者和受训者处于同一空间位置,局限性较大。


技术实现要素:

3.有鉴于此,本技术实施例提供了一种虚拟现实场景数据同步方法、装置、终端设备和存储介质,能够使培训者和受训者无需处于同一空间位置即可完成虚拟现实场景操作的培训,减少局限性。
4.本技术实施例的第一方面提供了一种应用于第一终端的虚拟现实场景数据同步方法,包括:
5.当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息;
6.根据所述第一操作信息,对预先模拟得到的第一虚拟场景的场景数据进行同步;
7.将所述第一操作信息发送至第二终端,以使所述第二终端根据所述第一操作信息,对预先模拟得到的第二虚拟场景的场景数据进行同步。
8.在本技术实施例中,受训者可以在真实场景中操作,其操作产生的操作信息会被受训者使用的终端设备获取;然后,受训者使用的终端设备会根据获取到的操作信息,对预先模拟得到的第一虚拟场景的场景数据进行同步,而且还会将该操作信息发送给培训者使用的终端设备;培训者使用的终端设备在接收到该操作信息后,同样会对预先模拟得到的第二虚拟场景的场景数据进行同步。通过这样设置,受训者的每个操作都会同步更新两侧终端设备的虚拟场景数据,使得培训者通过查看自身终端设备侧的虚拟场景即可了解受训者的操作是否准确,以便提供指导和帮助。显然,在本技术实施例中,培训者和受训者可以处于不同的空间位置,通过使用不同的终端设备进行交互即可完成虚拟现实场景操作的培训,有效减少了培训空间的局限性。
9.在本技术实施例的一种实现方式中,所述方法还可以包括:
10.当接收到所述第二终端发送的第二操作信息时,根据所述第二操作信息,对所述第一虚拟场景的场景数据进行同步;其中,所述第二操作信息是当第二用户在第二真实场景中操作时,通过所述第二终端获取到的操作信息。
11.在本技术实施例的一种实现方式中,所述当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息,可以包括:
12.当所述第一用户在所述第一真实场景中使用真实器械对暗箱进行操作时,获取所述真实器械的运动信息;
13.所述根据所述第一操作信息,对预先模拟得到的第一虚拟场景的场景数据进行同步,可以包括:
14.根据所述真实器械的运动信息,控制所述第一虚拟场景中的第一虚拟器械以及与所述第一虚拟器械接触的可运动对象的运动。
15.进一步的,所述将所述第一操作信息发送至第二终端,以使所述第二终端根据所述第一操作信息,对预先模拟得到的第二虚拟场景的场景数据进行同步,可以包括:
16.将所述真实器械的运动信息和所述可运动对象的运动信息发送至所述第二终端,以使所述第二终端根据所述真实器械的运动信息和所述可运动对象的运动信息,控制所述第二虚拟场景中的第二虚拟器械以及与所述第二虚拟器械接触的可运动对象的运动。
17.在本技术实施例的一种实现方式中,在所述当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息之前,还可以包括:
18.获取根据所述第一真实场景创建的虚拟场景工程文件;
19.使用unity引擎基于所述虚拟场景工程文件,模拟得到所述第一虚拟场景;其中,所述第二虚拟场景是由所述第二终端使用unity引擎基于所述虚拟场景工程文件,模拟得到的与所述第一虚拟场景相同的虚拟场景。
20.在本技术实施例的一种实现方式中,在所述当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息之前,还可以包括:
21.若所述第一终端和所述第二终端通过局域网连接,则由所述第一终端构建内网连接,并将所述内网连接的第一ip地址和第一端口号发送至所述第二终端,以使所述第二终端通过所述第一ip地址和所述第一端口号加入所述内网连接;
22.若所述第一终端和所述第二终端通过广域网连接,则由所述第一终端构建外网连接,并将内网穿透后的所述外网连接的第二ip地址和第二端口号发送至所述第二终端,以使所述第二终端在输入所述第二ip地址和所述第二端口号运行远程通信后,发送输入的测试字符至所述第一终端以加入所述外网连接。
23.在本技术实施例的一种实现方式中,所述方法还可以包括:
24.将所述第一虚拟场景的场景数据输出至虚拟现实显示设备进行显示。
25.本技术实施例的第二方面提供了一种应用于第一终端的虚拟现实场景数据同步装置,包括:
26.操作信息获取模块,用于当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息;
27.场景数据同步模块,用于根据所述第一操作信息,对预先模拟得到的第一虚拟场景的场景数据进行同步;
28.操作信息发送模块,用于将所述第一操作信息发送至第二终端,以使所述第二终端根据所述第一操作信息,对预先模拟得到的第二虚拟场景的场景数据进行同步。
29.本技术实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本技术实施例的第一方面提供的虚拟现实场景数据同步方法。
30.本技术实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本技术实施例的第一方面提供的虚拟现实场景数据同步方法。
31.本技术实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如本技术实施例的第一方面提供的虚拟现实场景数据同步方法。
32.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
33.图1是本技术实施例提供的一种虚拟现实场景数据同步系统的示意图;
34.图2是本技术实施例提供的一种虚拟现实场景数据同步方法的流程图;
35.图3是本技术实施例提供的实体简化模型模拟的真实手术场景的示意图;
36.图4是本技术实施例提供的使用peg-transfer task进行模拟训练的操作示意图;
37.图5是本技术实施例提供的一个虚拟手术培训场景中执行设备连接和数据传输的操作示意图;
38.图6是图5所示的虚拟手术培训场景在实施时的操作示意图;
39.图7是本技术实施例提供的一种虚拟现实场景数据同步装置的结构示意图;
40.图8是本技术实施例提供的一种终端设备的示意图。
具体实施方式
41.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
42.虚拟现实手术模拟是通过计算机技术进行物理仿真,模拟出手术对象和环境,相比于传统的手术培训模式,使用虚拟现实手术模拟进行培训可以提高培训效率和降低培训成本。然而,现有的虚拟现实手术模拟需要培训者和受训者处于同一空间位置,这会限制手术培训的开展。而且,现有的虚拟现实手术模拟主要针对单个受训者的场景,没有考虑真实手术过程中可能出现的多人合作情况。
43.针对上述问题,本技术实施例提出一种虚拟现实场景数据同步方法,能够使培训者和受训者无需处于同一空间位置即可完成虚拟现实场景操作的培训,而且双方还可以实现远程的协同交互,合作完成同一项训练动作。关于本技术实施例更具体的技术实现细节,请参照下文所述的各个实施例。
44.请参阅图1,示出了本技术实施例提供的一种虚拟现实场景数据同步系统,该系统包括第一终端和第二终端,每个终端可以分别和真实场景设备和虚拟现实显示设备连接。其中,真实场景设备是用户在训练时使用的针对特定真实场景的设备,例如对于手术培训
场景,则该真实场景设备可以是手术操作中使用的各类器械,对于汽修培训场景,则该真实场景设备可以是汽修操作中使用的各类器械,等等。虚拟现实显示设备的主要作用是显示终端模拟得到的虚拟场景的场景数据,例如用户可以穿戴头盔式的虚拟现实显示设备,以获得沉浸式的培训体验。当开展虚拟现实场景操作的培训时,培训者和受训者可以分别使用第一终端和第二终端进行协同交互。关于图1所示系统的具体工作原理和技术实现细节,请参照下文所述的方法实施例。
45.应当理解,本技术各个方法实施例的执行主体为各种类型的终端设备或服务器,例如可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)、大屏电视,等等,本技术实施例对该终端设备和服务器的具体类型不作任何限制。
46.请参阅图2,示出了本技术实施例提供的一种虚拟现实场景数据同步方法,包括:
47.201、当第一用户在第一真实场景中操作时,第一终端获取所述操作产生的第一操作信息;
48.在本技术实施例中,第一用户和第二用户分别是需要进行虚拟现实场景协同交互的双方用户,例如,第一用户可以是受训者,第二用户可以是培训者;或者,第一用户可以是培训者,第二用户可以是受训者;又或者,第一用户和第二用户可以是共同完成同一项训练动作的合作者。第一终端是第一用户使用的终端设备,第二终端是第二用户使用的终端设备。第一真实场景是第一用户在进行虚拟现实场景操作时所处的真实场景,第二真实场景是第二用户在进行虚拟现实场景操作时所处的真实场景。在每个真实场景中,可以设有动作捕捉设备或者其它与训练场景适配的真实场景设备(例如手术培训场景中的手术器械),通过这些设备可以采集用户在进行虚拟现实场景操作时产生的操作信息,并将这些操作信息发送至相应的终端设备。
49.在双方用户开展虚拟现实场景协同交互之前,需要在每侧终端分别模拟出各自的虚拟场景,其中第一终端模拟得到的是第一虚拟场景,第二终端模拟得到的是第二虚拟场景。第一虚拟场景和第二虚拟场景按照实际的交互需求,可以是不同的虚拟场景,也可以是相同的虚拟场景。例如,为了体现协同操作的真实性,第一虚拟场景和第二虚拟场景可以是同一个虚拟场景;为了体现用户的个性化或者协同操作的趣味性,第一虚拟场景和第二虚拟场景也可以是不同的虚拟场景。通常来说,第一虚拟场景一般和第一真实场景对应,例如若第一真实场景是手术培训场景,其中包含真实手术器械,则第一虚拟场景是构建出的一个虚拟手术培训场景,其中包含相应的虚拟手术器械。同样的,第二虚拟场景一般和第二真实场景对应。在实际操作中,可以使用各类具有画面创作功能的游戏引擎或者开发工具,例如unity引擎等模拟出与真实场景对应的虚拟场景。
50.在本技术实施例的一种实现方式中,在所述当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息之前,还可以包括:
51.(1)获取根据所述第一真实场景创建的虚拟场景工程文件;
52.(2)使用unity引擎基于所述虚拟场景工程文件,模拟得到所述第一虚拟场景;其中,所述第二虚拟场景是由所述第二终端使用unity引擎基于所述虚拟场景工程文件,模拟得到的与所述第一虚拟场景相同的虚拟场景。
53.本技术实施例优选使用unity引擎来模拟虚拟场景,首先根据训练的真实场景设计得到unity可用的虚拟场景工程文件,然后使用unity引擎基于该虚拟场景工程文件,模拟出相应的虚拟场景。为了体现双方协同操作的真实性,第一终端和第二终端可以基于同一份虚拟场景工程文件,使用unity引擎模拟出完全相同的虚拟场景。
54.在本技术实施例的一种实现方式中,在所述当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息之前,还可以包括:
55.(1)若所述第一终端和所述第二终端通过局域网连接,则由所述第一终端构建内网连接,并将所述内网连接的第一ip地址和第一端口号发送至所述第二终端,以使所述第二终端通过所述第一ip地址和所述第一端口号加入所述内网连接;
56.(2)若所述第一终端和所述第二终端通过广域网连接,则由所述第一终端构建外网连接,并将内网穿透后的所述外网连接的第二ip地址和第二端口号发送至所述第二终端,以使所述第二终端在输入所述第二ip地址和所述第二端口号运行远程通信后,发送输入的测试字符至所述第一终端以加入所述外网连接。
57.在双方用户开展虚拟现实场景协同交互之前,还需要建立第一终端和第二终端之间的远程通信连接。第一终端和第二终端可以使用两种不同的连接方式,第一种是局域网连接(内网连接),第二种是广域网连接(外网连接)。如果使用局域网连接,则可以由第一终端构建内网连接,建立监听,并将该内网连接的ip地址和端口号发送给第二终端,第二终端通过接收到的ip地址和端口号即可访问并加入该内网连接。如果使用广域网连接,则可以由第一终端构建外网连接,建立监听并使用内网穿透,然后将内网穿透后的该外网连接的ip地址和端口号发送给第二终端,第二终端连接远程通讯输入第一终端给予的ip地址和端口号之后,输入测试字符,等第一终端接收到该测试字符后,表示第二终端已成功加入该外网连接。在上述连接过程中,第一终端作为连接的发起者,可以视作服务器端,第二终端作为连接的加入者,可以视作客户端;而如果交换上述连接过程中两侧终端的操作步骤,则第二终端可以视作服务器端,第一终端可以视作客户端。在实际操作中,可以在unity模拟的双方虚拟场景中设置“发起连接”和“加入连接”等功能,第一终端和第二终端通过unity模拟的虚拟场景进行连接,具体可以建立tcp(transmission control protocol,传输控制协议)远程传输。
58.当双方用户开展虚拟现实场景协同交互时,第一用户在第一真实场景中执行相应的操作,此时可以通过动作捕捉设备或者其它与训练场景适配的真实场景设备采集第一用户的操作信息,然后将该操作信息发送给第一终端,这里第一终端获取到的操作信息用第一操作信息表示。
59.在本技术实施例的一种实现方式中,所述当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息,可以包括:
60.当所述第一用户在所述第一真实场景中使用真实器械对暗箱进行操作时,获取所述真实器械的运动信息。
61.在这种实现方式中,第一真实场景设置有真实器械和暗箱,用于进行相应场景的操作训练,第一用户可以使用该真实器械对暗箱进行操作,以模拟真实场景中的操作动作。另外,在该真实器械上可以设置相应的传感器以便获取运动信息,获取到的运动信息可以包括但不限于:器械操作部件顶端的位移、旋转和张角等信息。示例性的,如图3所示,为实
体简化模型模拟的真实手术场景的示意图。在图3中,包括暗箱和手术器械,暗箱可用于模拟真实手术场景中的人体轮廓,手术器械的弯分离钳用于受训者在手术培训中的手术操作。当第一用户在该模拟的真实手术场景中使用手术器械对暗箱进行操作时,相应的操作信息会发送至第一终端,并添加到第一终端模拟的第一虚拟场景中相对应的虚拟手术器械上。
62.202、第一终端根据所述第一操作信息,对预先模拟得到的第一虚拟场景的场景数据进行同步;
63.第一终端在获取到第一操作信息之后,会根据该第一操作信息对第一虚拟场景的场景数据进行同步。例如,若第一操作信息表示向左移动第一真实场景中的真实器械,则第一终端会控制第一虚拟场景中与该真实器械对应的虚拟器械也向左移动,从而实现场景数据的同步更新。
64.具体的,所述根据所述第一操作信息,对预先模拟得到的第一虚拟场景的场景数据进行同步,可以包括:
65.根据所述真实器械的运动信息,控制所述第一虚拟场景中的第一虚拟器械以及与所述第一虚拟器械接触的可运动对象的运动。
66.如前文所述,获取到的第一操作信息可以是第一真实场景中设有的真实器械的运动信息(位移、旋转或张角等),根据该运动信息可以确定该真实器械执行了怎样的运动,进而可以控制第一虚拟场景中对应的第一虚拟器械执行相同的运动。另外,在第一虚拟场景中还可以设有与训练场景适配的各个可运动对象,例如可被虚拟器械夹取移动的物体。如果在控制第一虚拟器械执行相同运动的过程中,第一虚拟器械接触到某个可运动对象,则会控制该可运动对象也进行相应的合乎逻辑的运动,例如被夹取移动,或者被触碰倒地,等等。
67.示例性的,对应于如图3所示的真实手术场景,第一终端使用unity模拟的虚拟手术场景可以包括模拟暗箱、模拟手术器械和peg-transfer task模拟训练项目。模拟暗箱的尺寸可以和图3中的真实暗箱的尺寸保持一致,第一用户在图3的真实手术场景中对真实手术器械进行操作产生的操作信息,会反映添加到虚拟手术场景中的模拟手术器械上。
68.本技术实施例可以采用peg-transfer task模拟训练项目作为手术训练项目,其主要控制手术器械实现对目标圆环的夹取、移动和传递等操作,通过unity引擎实现虚拟器械和目标物体的碰撞检测和碰撞响应。当目标圆环与手术器械钳子两边同时发生碰撞时,判定目标圆环被手术器械夹紧,目标圆环可以跟随手术器械移动和旋转;当目标圆环只与手术器械钳子的一边发生碰撞或未碰撞时,判定目标圆环脱离手术器械的夹持,目标圆环将受重力自由落体;当目标圆环与虚拟场景中的其他物体碰撞时,如圆柱或其它圆环,则目标圆环受到物理力的影响产生位移;当目标圆环套入圆柱时,判定为一次成功的训练内容。图4是使用peg-transfer task进行模拟训练的操作示意图,图4中的圆环a表示被器械夹取的状态,并跟随器械移动;图4中的圆环b表示脱离夹取或未碰撞的状态;图4中的圆环c表示成功将圆环套入圆柱中的状态。
69.203、第一终端将所述第一操作信息发送至第二终端,以使所述第二终端根据所述第一操作信息,对预先模拟得到的第二虚拟场景的场景数据进行同步。
70.为了实现虚拟现实场景的协同交互,第一终端还会将第一操作信息发送给第二终
端,第二终端在接收到第一操作信息之后,同样可以根据第一操作信息对第二虚拟场景的场景数据进行同步,从而使得两侧终端的虚拟场景内容保持一致。
71.在本技术实施例的一种实现方式中,所述将所述第一操作信息发送至第二终端,以使所述第二终端根据所述第一操作信息,对预先模拟得到的第二虚拟场景的场景数据进行同步,可以包括:
72.将所述真实器械的运动信息和所述可运动对象的运动信息发送至所述第二终端,以使所述第二终端根据所述真实器械的运动信息和所述可运动对象的运动信息,控制所述第二虚拟场景中的第二虚拟器械以及与所述第二虚拟器械接触的可运动对象的运动。
73.第一终端可以将前文所述的真实器械的运动信息和可运动对象的运动信息都发送给第二终端,第二终端会根据这些运动信息控制第二虚拟场景中的第二虚拟器械以及与该第二虚拟器械接触的可运动对象的运动,从而使得第二虚拟场景的内容和第一虚拟场景的内容保持一致。由于场景内只有真实器械的运动信息是输入,虚拟场景中其它所有物体的碰撞和移动都可以通过unity引擎完成,所以理论上只需传输真实器械的运动信息即可使两侧终端的虚拟场景内容一致。然而实际上,远程通讯传输可能存在延迟的现象,数据传输时间的不一致会导致虚拟场景内容的变化不一致。因此,数据传输内容可以在真实器械运动信息的基础上,加入圆环等可运动对象的运动信息,这样能够更好地保证双方虚拟场景内容的一致性。
74.在本技术实施例的一种实现方式中,所述方法还可以包括:
75.当接收到所述第二终端发送的第二操作信息时,第一终端根据所述第二操作信息,对所述第一虚拟场景的场景数据进行同步;其中,所述第二操作信息是当第二用户在第二真实场景中操作时,通过所述第二终端获取到的操作信息。
76.同理,第二用户也可以在第二真实场景中进行操作,第二终端在采集到相应的操作信息(用第二操作信息表示)之后,一方面根据该操作信息对第二虚拟场景的场景数据进行同步,另一方面会将该操作信息发送给第一终端,第一终端同样会根据该操作信息对第一虚拟场景的场景数据进行同步,从而保持双方虚拟场景内容的一致。
77.在本技术实施例的一种实现方式中,所述方法还可以包括:
78.将所述第一虚拟场景的场景数据输出至虚拟现实显示设备进行显示。
79.第一终端可以将第一虚拟场景的场景数据输出至某个虚拟现实显示设备进行显示,第一用户在佩戴该虚拟现实显示设备后即可观看到第一虚拟场景的内容。同样的,第二终端可以将第二虚拟场景的场景数据输出至第二用户佩戴的虚拟现实显示设备,这样第一用户和第二用户即可看到相同的虚拟场景内容,从而方便地开展虚拟现实场景操作的培训。
80.在本技术实施例中,受训者可以在真实场景中操作,其操作产生的操作信息会被受训者使用的终端设备获取;然后,受训者使用的终端设备会根据获取到的操作信息,对预先模拟得到的第一虚拟场景的场景数据进行同步,而且还会将该操作信息发送给培训者使用的终端设备;培训者使用的终端设备在接收到该操作信息后,同样会对预先模拟得到的第二虚拟场景的场景数据进行同步。通过这样设置,受训者的每个操作都会同步更新两侧终端设备的虚拟场景数据,使得培训者通过查看自身终端设备侧的虚拟场景即可了解受训者的操作是否准确,以便提供指导和帮助。显然,在本技术实施例中,培训者和受训者可以
处于不同的空间位置,通过使用不同的终端设备进行交互即可完成虚拟现实场景操作的培训,有效减少了培训空间的局限性。
81.为便于理解本技术实施例提供的虚拟现实场景数据同步方法,以下列举一个实际的应用场景。
82.图5是一个虚拟手术培训场景中执行设备连接和数据传输的操作示意图。在培训开始之前,首先搭建服务器和客户端之间的连接通道,服务器给予ip地址和连接的端口号给客户端,并通过测试内容保证连接的稳定性,服务器端和客户端均有各自的真实手术场景和虚拟手术场景。当服务器端的用户(可以是受训者,也可以是培训者)在服务器端的真实手术场景中操作的时候,相应的操作数据会传输添加至服务器端的虚拟手术场景,完成场景数据的同步。而且,服务器还可以通过tcp传输的方式将操作数据(主要可以包含手术器械和可运动对象的运动信息)发送给客户端,通过传输数据来共享虚拟手术场景中的物体坐标和运动信息,对客户端的虚拟手术场景进行场景数据的同步,从而保证两端虚拟手术场景内容的一致性。
83.图6是图5所示的虚拟手术培训场景在实施时的操作示意图。用户1在服务器端的真实手术场景中进行相应的手术操作,产生的操作数据会传输至服务器端通过unity模拟的虚拟手术场景,对该虚拟手术场景的场景数据进行同步。同步的场景数据内容会视觉反馈到用户1佩戴的头戴式显示设备,用户1即可看到虚拟手术场景的内容,获得沉浸式的手术培训体验。而且,相应的操作数据还会通过tcp传输的方式发送至客户端,对客户端的虚拟手术场景的场景数据进行同步,用户2通过佩戴的头戴式显示设备即可看到与用户1看到的相同的虚拟手术场景的内容。基于相同的原理,用户2在客户端的真实手术场景中进行的手术操作,同样可以同步更新两端虚拟手术场景的场景数据,从而实现协同交互。
84.综上所述,采用本技术提出的虚拟现实场景数据同步方法,受训者的每个操作都可以视觉反馈清晰地显示给培训者或者其他参与者,实现远程协同交互。结合使用虚拟现实头盔和unity模拟场景,受训者可以通过虚拟现实头盔看到手术场景的虚拟画面。而且,当受训者操作场景中的物体移动时,运动信息的变化也会反馈到虚拟画面中。与此同时,这些运动信息又会通过tcp远程传输给其他参与者,从而反馈到对方的虚拟画面中,以实现远程画面定位共享和多方受训者的协同操作。
85.应理解,上述各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
86.上面主要描述了一种虚拟现实场景数据同步方法,下面将对一种虚拟现实场景数据同步装置进行描述。
87.请参阅图7,本技术实施例中一种应用于第一终端的虚拟现实场景数据同步装置的一个实施例包括:
88.操作信息获取模块701,用于当第一用户在第一真实场景中操作时,获取所述操作产生的第一操作信息;
89.场景数据同步模块702,用于根据所述第一操作信息,对预先模拟得到的第一虚拟场景的场景数据进行同步;
90.操作信息发送模块703,用于将所述第一操作信息发送至第二终端,以使所述第二
终端根据所述第一操作信息,对预先模拟得到的第二虚拟场景的场景数据进行同步。
91.在本技术实施例的一种实现方式中,所述装置还可以包括:
92.操作信息接收模块,用于当接收到所述第二终端发送的第二操作信息时,根据所述第二操作信息,对所述第一虚拟场景的场景数据进行同步;其中,所述第二操作信息是当第二用户在第二真实场景中操作时,通过所述第二终端获取到的操作信息。
93.在本技术实施例的一种实现方式中,所述操作信息获取模块可以包括:
94.运动信息获取单元,用于当所述第一用户在所述第一真实场景中使用真实器械对暗箱进行操作时,获取所述真实器械的运动信息;
95.所述场景数据同步模块可以包括:
96.运动控制单元,用于根据所述真实器械的运动信息,控制所述第一虚拟场景中的第一虚拟器械以及与所述第一虚拟器械接触的可运动对象的运动。
97.在本技术实施例的一种实现方式中,所述操作信息发送模块可以包括:
98.运动信息发送单元,用于将所述真实器械的运动信息和所述可运动对象的运动信息发送至所述第二终端,以使所述第二终端根据所述真实器械的运动信息和所述可运动对象的运动信息,控制所述第二虚拟场景中的第二虚拟器械以及与所述第二虚拟器械接触的可运动对象的运动。
99.在本技术实施例的一种实现方式中,所述装置还可以包括:
100.工程文件获取模块,用于获取根据所述第一真实场景创建的虚拟场景工程文件;
101.虚拟场景模拟模块,用于使用unity引擎基于所述虚拟场景工程文件,模拟得到所述第一虚拟场景;其中,所述第二虚拟场景是由所述第二终端使用unity引擎基于所述虚拟场景工程文件,模拟得到的与所述第一虚拟场景相同的虚拟场景。
102.在本技术实施例的一种实现方式中,所述装置还可以包括:
103.内网连接构建模块,用于若所述第一终端和所述第二终端通过局域网连接,则由所述第一终端构建内网连接,并将所述内网连接的第一ip地址和第一端口号发送至所述第二终端,以使所述第二终端通过所述第一ip地址和所述第一端口号加入所述内网连接;
104.外网连接构建模块,用于若所述第一终端和所述第二终端通过广域网连接,则由所述第一终端构建外网连接,并将内网穿透后的所述外网连接的第二ip地址和第二端口号发送至所述第二终端,以使所述第二终端在输入所述第二ip地址和所述第二端口号运行远程通信后,发送输入的测试字符至所述第一终端以加入所述外网连接。
105.在本技术实施例的一种实现方式中,所述装置还可以包括:
106.场景数据输出模块,用于将所述第一虚拟场景的场景数据输出至虚拟现实显示设备进行显示。
107.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如图2表示的任意一种虚拟现实场景数据同步方法。
108.本技术实施例还提供一种计算机程序产品,当该计算机程序产品在终端设备上运行时,使得终端设备执行如图2表示的任意一种虚拟现实场景数据同步方法。
109.图8是本技术一实施例提供的终端设备的示意图。如图8所示,该实施例的终端设备8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计
算机程序82。所述处理器80执行所述计算机程序82时实现上述各个虚拟现实场景数据同步方法的实施例中的步骤,例如图2所示的步骤201至203。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块701至703的功能。
110.所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述终端设备8中的执行过程。
111.所称处理器80可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
112.所述存储器81可以是所述终端设备8的内部存储单元,例如终端设备8的硬盘或内存。所述存储器81也可以是所述终端设备8的外部存储设备,例如所述终端设备8上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器81还可以既包括所述终端设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
113.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
114.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
115.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
116.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
117.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,
仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
118.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术实施例方案的目的。
119.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
120.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
121.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1