虚拟现实交互系统、方法及计算机存储介质与流程

    专利查询2022-07-06  270



    1.本发明属于虚拟现实交互技术领域,尤其涉及一种用于异地场景的虚拟交互系统、方法及计算机存储介质。


    背景技术:

    2.当前,虚拟现实交互的流程一般是:获取用户的动捕数据(三维空间位置),然后将动捕数据传输给虚拟场景的服务器。服务器根据动捕数据确定用户在虚拟场景中的位置信息,从而进行相应的交互响应,并将响应结果同步显示给用户。在虚拟现实交互过程中,动捕数据的采集方式可以有多种,例如惯性动捕、激光动捕或光学动捕等。
    3.在基于光学动捕技术的虚拟现实交互中,可以利用光学动捕系统中的多个动捕相机识别被观察对象上附着的光学标记点,通过动捕相机的图像采集系统处理计算出标记点的坐标位置信息(即动捕数据),然后经网络(有线,无线,usb等)传输给动捕相机的服务器。相机服务器接收来自动捕相机的坐标位置信息,根据该位置坐标信息识别被观察对象,获取用户在物理场景中的位置信息,然后将该物理场景中的位置信息发送给虚拟场景的服务器以及客户端。虚拟场景的服务器将该位置信息映射至虚拟场景中,从而确定用户在虚拟场景中的位置信息,并通过虚拟场景的客户端显示给用户。
    4.当前,在上述虚拟现实交互流程中,如图3所示,动捕数据的走向具体为:虚拟场景服务器31以及虚拟场景客户端32均会从光学动捕系统33中获取对应的动捕数据,由于虚拟场景的服务器31、客户端32与光学动捕系统33的通信方式与同步方式均是基于局域网开发,因此当前系统的通信方式能够实现处于同一物理空间的虚拟现实交互。
    5.随着虚拟现实交互技术的进一步应用,有了处于异地的用户在同一个虚拟场景中实现虚拟现实交互的需求,然而目前却没有很好的解决方法。


    技术实现要素:

    6.鉴于此,本发明提供一种同步虚拟现实交互系统,能够实现处于异地场景的不同用户在同一虚拟场景中的交互。
    7.本发明实施例的第一方面提供一种虚拟现实交互系统,所述系统包括:至少两个交互子系统,以及虚拟场景服务器;所述虚拟场景服务器运行于广域网;所述交互子系统包括:动捕数据采集系统以及至少一个虚拟场景客户端;
    8.所述动捕数据采集系统,用于采集本地的动捕数据,并将所述动捕数据发送至本地的所述虚拟场景客户端、所述虚拟场景服务器和其它交互子系统中的动捕数据采集系统;
    9.所述虚拟场景客户端,用于接收本地对应用户的操作命令,并将所述操作命令传给所述虚拟场景服务器;以及接收本地的所述动捕数据采集系统发来的动捕数据,和本地的所述动捕数据采集系统传来的来自其它动捕数据采集系统的动捕数据;
    10.所述虚拟场景服务器,用于根据接收到的所有虚拟场景客户端传来的操作命令和
    所有动捕数据采集系统传来的动捕数据,进行相应的响应,并将响应结果同步至每一所述虚拟场景客户端;
    11.所述虚拟场景客户端,用于根据响应结果、本地的动捕数据采集系统采集的动捕数据、以及本地的动捕数据采集系统传来的来自其它动捕数据采集系统的动捕数据,调整相应的虚拟场景,并将调整后的虚拟场景显示给用户。
    12.其中,所述动捕数据采集系统还用于与其它交互子系统中的动捕数据采集系统建立p2p通信。
    13.其中,所述动捕数据采集系统为光学动捕采集系统,包括:多个动捕相机和相机服务器;
    14.所述动捕相机用于采集本地目标对象的动捕数据并传输至所述相机服务器;
    15.所述相机服务器,具体用于与其它动捕数据采集系统中的相机服务器建立p2p通信,将所述动捕数据同步至本地的虚拟场景客户端,以及还将所述动捕数据上传至所述虚拟场景服务器和其它动捕数据采集系统中的相机服务器。
    16.其中,所述相机服务器与其它交互子系统中的相机服务器建立p2p通信时,所述相机服务器具体用于:
    17.向所述虚拟场景服务器发送链接请求;所述链接请求中携带有所述相机服务器的ip信息;以便所述虚拟场景服务器将接收到的所有相机服务器的ip信息同步至网络中的每一所述相机服务器;
    18.所述相机服务器还用于接收所述虚拟场景服务器传来的所有相机服务器的ip信息,并根据所述ip信息,与其它相机服务器建立p2p通信。
    19.其中,所述动捕数据包括:刚体名称、刚体数据以及刚体标识号。
    20.其中,所述动捕数据包括多个时刻的动捕数据,所述动捕数据采集系统具体用于:
    21.按照预设时间间隔将所述多个时刻中部分时刻的动捕数据发送至所述虚拟场景服务器和其它交互子系统中的动捕数据采集系统。
    22.其中,所述虚拟场景服务器,具体用于根据当前时刻接收到的动捕数据,确定用户在虚拟场景中的位置信息,并将该位置信息作为终点信息;以及将所述虚拟场景服务器中记录的所述用户的位置信息作为起点信息;根据所述起点位置、终点位置、获取的插值时间间隔以及所述预设时间间隔,进行线性插值处理,以模拟出所述用户在所述起点位置和终点位置之间的其它位置信息,以进行相应的响应;
    23.所述相机服务器,具体用于根据当前时刻接收到的动捕数据,确定用户在虚拟场景中的位置信息,并将该位置信息作为终点信息;以及将所述虚拟场景服务器中记录的所述用户当前的位置信息作为起点信息;根据所述起点位置、终点位置、获取的插值时间间隔以及所述预设时间间隔,进行线性插值处理,以模拟出所述用户在所述起点位置和终点位置之间的其它位置信息,并同步至本地的虚拟场景客户端。
    24.本发明的实施例的第二方面提供一种虚拟现实交互方法,所述方法包括:
    25.虚拟场景服务器接收每一动捕数据采集系统发来的动捕数据,以及来自每一虚拟场景客户端的操作命令;所述动捕数据采集系统包括至少两个且每一所述动捕数据采集系统至少对应本地的一个虚拟场景客户端;
    26.虚拟场景服务器根据接收到的所述动捕数据对所述操作命令进行响应,并将响应
    结果同步至每一所述虚拟场景客户端;以便所述虚拟场景客户端能够根据所述响应结果、本地的动捕数据采集系统采集的动捕数据以及本地的动捕数据采集系统传来的来自其它动捕数据采集系统的动捕数据,调整相应的虚拟场景,并将调整后的虚拟场景显示给用户。
    27.其中,在所述虚拟场景服务器接收每一所述动捕数据采集系统发来的动捕数据之前,所述方法还包括:
    28.所述虚拟场景服务器建立所述动捕数据采集系统之间的p2p通信。
    29.其中,所述动捕数据采集系统为光学动捕采集系统,包括:多个动捕相机和相机服务器;所述虚拟场景服务器接收来自每一动捕数据采集系统的动捕数据,具体包括:
    30.所述虚拟场景服务器接收来自所述相机服务器的动捕数据;所述动捕数据是所述动捕相机采集的本地目标对象的动捕数据。
    31.其中,所述虚拟场景服务器建立所述动捕数据采集系统之间的p2p通信,具体包括:
    32.所述虚拟场景服务器接收每一所述相机服务器发来的链接请求;
    33.所述虚拟场景服务器从所述链接请求中提取所述相机服务器的ip信息;
    34.所述虚拟场景服务器将提取的所有相机服务器的ip信息同步至网络中的每一所述相机服务器,以便每一所述相机服务器能够根据接收到的ip信息,与其它相机服务器建立p2p通信。
    35.其中,所述动捕数据包括:刚体名称、刚体数据以及刚体标识号。
    36.本发明实施例的第三方面提供一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述的虚拟现实交互方法的步骤。
    37.本发明实施例的第四方面提供一种所述计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的虚拟现实交互方法的步骤。
    38.本发明与现有技术相比存在的有益效果是:
    39.本发明提供的技术方案,在虚拟场景客户端在接收到用户的操作命令之后,将操作命令均上传至虚拟场景服务器。虚拟场景服务器作为控制中枢,根据接收到的所有用户的操作命令和所有用户的位置信息(动捕数据),对用户的操作命令进行相应并将响应结果下发至每一个虚拟场景客户端。每一个虚拟场景客户端根据接收到的响应结果,各个用户的以及客户端对应的用户的视角信息,进行相应的虚拟场景的渲染,并显示给用户,从而实现异地场景的多用户在同一虚拟场景的虚拟现实交互。
    附图说明
    40.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
    41.图1是本发明提供的虚拟现实交互系统的第一实施例的流程示意图;
    42.图2是本发明提供的虚拟现实交互系统的第二实施例的流程示意图;
    43.图3是现有技术中的虚拟现实交互中动捕数据的流向示意图;
    44.图4是本发明提供的虚拟现实交互方法的第一实施例的流程示意图;
    45.图5是本发明提供的虚拟现实交互方法的第二实施例的流程示意图;
    46.图6是本发明提供的服务器的实施例的示意框图。
    具体实施方式
    47.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
    48.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
    49.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
    50.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
    [0051]
    为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
    [0052]
    本发明实施例的虚拟现实交互方案适用于异地场景的虚拟现实交互,即处于不同物理区域的用户,可以在同一虚拟场景中实现交互。本文中将不同物理区域的用户又称为:异地用户、异地场景的用户、或不同动捕系统下的用户。下面,将通过具体的实施例进行详细描述。
    [0053]
    本发明提供的虚拟现实交互系统用于实现位于不同物理区域的用户在同一虚拟场景中的交互,包括:至少两个交互子系统,和虚拟场景服务器。每一个交互子系统包括:动捕数据采集系统和至少一个虚拟场景客户端。下面,将以交互系统100包括两个交互子系统,每个交互子系统中包括一个虚拟场景客户端为例进行详细描述。其中,一个虚拟场景客户端对应一个用户,虚拟场景客户端可以接收该虚拟场景客户端对应用户输入的操作命令。
    [0054]
    如图1所示,是本发明提供的虚拟现实交互系统的第一实施例的结构框图,所述交互系统100用于实现位于不同物理区域的用户在同一虚拟场景中的交互,包括:位于第一区域11的动捕数据采集系统1011,以及与该动捕数据采集系统1011位于同一区域的虚拟场景客户端1012。位于第二区域12的动捕数据采集系统1021,以及与该动捕数据采集系统1021位于同一区域的虚拟场景客户端1022,以及还包括运行于广域网的虚拟场景服务器103。其中,第一区域11和第二区域12为不同的物理区域。
    [0055]
    其中,动捕数据采集系统1011采集本地目标对象(目标对象包括用户或其他物件
    如游戏枪等,在后文均以目标对象具体为用户为例进行描述)的第一动捕数据,并将该第一动捕数据同步至虚拟场景客户端1012,同时动捕数据采集系统1011还将采集的第一动捕数据传送至动捕数据采集系统1021以及虚拟场景服务器103。类似地,动捕数据采集系统1021采集本地目标对象(目标对象包括用户或其他物件如游戏枪等,在后文均以目标对象具体为用户为例进行描述)的第二动捕数据,并将该第二动捕数据同步至客户端1022,同时动捕数据采集系统1021还将采集的第二动捕数据传送至动捕数据采集系统1011以及虚拟场景服务器103。
    [0056]
    其中,动捕数据具体可以包括:刚体名称、刚体数据以及刚体标识号。接收到动捕数据的终端设备能够根据刚体名称和刚体标识号对刚体进行识别,确定该刚体所属的用户,同时还可以根据刚体数据确定该用户的位置信息。
    [0057]
    其中,虚拟场景服务器103在接收到动捕数据采集系统1011采集的第一动捕数据以及动捕数据采集系统1021采集的第二动捕数据之后,由此可以获取虚拟场景中所有用户的位置信息。
    [0058]
    对于虚拟场景客户端1012,其一方面接收本地的动捕数据采集系统1011传来的第一动捕数据,同时还可以接收本地的动捕数据采集系统1011传来的来自动捕数据采集系统1021的第二动捕数据。即是说,虚拟场景客户端1012可以获知处于不同物理区域的所有用户的位置信息。对于虚拟场景客户端1022,其一方面接收本地的动捕数据采集系统1021传来的第二动捕数据,同时还可以接收本地的动捕数据采集系统1021传来的来自动捕数据采集系统1011的第一动捕数据。即是说,虚拟场景客户端1022可以获知处于不同物理区域的所有用户的位置信息。也就是说,即使用户处于不同物理区域,虚拟场景中的每一个客户端均能够获知该虚拟场景中所有用户的位置信息。
    [0059]
    由此可见,动捕数据采集系统将采集的用户的动捕数据同步至本地客户端、其他区域的动捕数据采集系统以及虚拟场景服务器的目的是:实现对动捕数据的共享,使得不同的动捕数据采集系统之间、动捕数据采集系统与虚拟场景服务器能够共享虚拟场景中所有用户的动捕数据,达到类似在同一局域网的数据共享效果。通过动捕数据的共享,能够确定虚拟交互中各个用户在虚拟场景中的位置信息,保证异地虚拟现实交互的正常逻辑,实现虚拟现实交互的沉浸感。由于动捕数据采集系统将采集的动捕数据采用并行的方式同时同步给本地的虚拟场景客户端、其他动捕数据采集系统以及虚拟场景服务器,因此可以缩减同步时间,提升数据共享效率,进而缩减交互延时,提升交互体验。
    [0060]
    其中,动捕数据采集系统1011和动捕数据采集系统1021之间在进行通信时,可以选用p2p通信方式。在建立动捕数据采集系统1011和动捕数据采集系统1021之间的p2p通信时,动捕数据采集系统1011和动捕数据采集系统1021分别主动向虚拟场景服务器103发送链接请求,并在链接请求中携带自身的ip信息。虚拟场景服务器103在接收到链接请求之后,会提取其中的ip信息,并把提取的所有ip信息同步给当前在线的动捕数据采集系统(1011,1021)。各个动捕数据采集系统在接收到所有的ip信息之后,方能和其他的动捕数据采集系统建立p2p通信连接。
    [0061]
    可以理解的是,本发明实施例的动捕数据采集系统可以是惯性动捕数据采集系统、激光动捕数据采集系统、光学动捕数据采集系统或者其他类型的动捕数据采集系统。
    [0062]
    在动捕数据采集系统对动捕数据进行了采集、同步之后,即进入下一阶段的交互
    过程。
    [0063]
    虚拟场景客户端1012还可以接收本地对应用户(即虚拟场景客户端1012对应的用户)输入的操作命令,并将该操作命令转发给虚拟场景服务器103。同样的,虚拟场景客户端1022还可以接收本地对应用户(虚拟场景客户端1022对应的用户)输入的操作命令,并将该操作命令转发给虚拟场景服务器103。其中,操作命令是用户对虚拟场景中的人或物的操作指令。
    [0064]
    具体地,用户可通过手柄或惯性姿态的方式向虚拟场景客户端输入操作命令。每一个虚拟场景客户端在接收到该操作命令之后,会将该操作命令转换成虚拟场服务器103能够识别的形式并传输给虚拟场景服务器103。即是说,虚拟场景服务器103可以获知该虚拟场景中处于不同物理区域的所有用户的操作命令。
    [0065]
    虚拟场景服务器103的主要作用是:控制交互逻辑的正常进行。为实现处于不同物理区域的用户在同一虚拟场景中的正常交互,虚拟场景服务器103需要获取所有用户在虚拟场景中的位置信息以及所有用户的操作命令。鉴于这两个条件在前文的描述中已经实现,因此虚拟场景服务器103可以根据接收到的所有用户的操作命令以及所有用户在虚拟场景中的位置信息进行相应的响应。并将响应结果同步至每一个虚拟场景客户端,如同步到虚拟场景客户端1012和虚拟场景客户端1022。
    [0066]
    在将响应结果同步至虚拟场景客户端1012和虚拟场景客户端1022之后,对于接收到响应结果的每一个虚拟场景客户端,其需要根据响应结果进行相应虚拟场景的调整。具体调整方式是:虚拟场景客户端根据响应结果以及所有用户在虚拟场景中的位置信息(即第一动捕数据和第二动捕数据),以及本地用户(与该客户端对应的用户)的视角信息对虚拟场景进行调整,并将调整后的虚拟场景显示给用户。例如,可以将调整后的虚拟场景通过用户所戴的头盔显示给用户。至此,完成了处于不同物理区域的用户在同一虚拟场景下的交互。
    [0067]
    可以理解的是,动捕数据采集系统的类型较多,例如,激光、惯性或者光学等,在以下实施例中,将以动捕数据采集系统为光学动捕数据采集系统为例进行详细说明。
    [0068]
    请参见图2,是本发明提供的虚拟现实交互系统的第二实施例的结构框图,本发明实施例与图1所示的实施例的区别在于:本发明实施例对动捕数据采集系统的结构进行了具体化。本发明实施例的动捕数据采集系统,具体为光学动捕采集系统,每一个光学动捕采集系统均包括:相机服务器和多个动捕相机。下面,将具体描述。
    [0069]
    如图2所示,动捕数据采集系统1011具体包括:多个动捕相机1011a和相机服务器1011b。同样的,动捕数据采集系统1021具体包括:多个动捕相机1021a和相机服务器1021b。
    [0070]
    其中,动捕相机的作用是采集本地用户的动捕数据并传输至相应的相机服务器。具体来说,多个动捕相机1011a,用于采集本地用户的第一动捕数据并传输至相机服务器1011b。多个动捕相机1021a,用于采集本地用户的第二动捕数据并传输至相机服务器1021b。
    [0071]
    其中,相机服务器的作用有:与其它动捕数据采集系统的相机服务器建立p2p通信、将本地的动捕数据共享至本地的虚拟场景客户端、虚拟场景服务器以及其它动捕数据采集系统中的相机服务器。具体来说,相机服务器1011b,用于与相机服务器1021b建立p2p通信,同时还将动捕相机1011a采集的第一动捕数据传输至本地的虚拟场景客户端1012、虚
    拟场景服务器103和相机服务器1021b。同样的,相机服务器1021b,用于与相机服务器1011b建立p2p通信,同时还将动捕相机1021a采集的第二动捕数据传输至本地的虚拟场景客户端1022、虚拟场景服务器103和相机服务器1011b。
    [0072]
    需要说明的是,相机服务器1021b与相机服务器1011b之间建立p2p通信的方式可以是:
    [0073]
    相机服务器1021b向所述虚拟场景服务器103发送链接请求,该链接请求中携带有所述相机服务器1021b的ip信息;相机服务器1011b也向所述虚拟场景服务器103发送链接请求,该链接请求中携带有所述相机服务器1011b的ip信息。虚拟场景服务器103将接收到的相机服务器1021b的ip信息、相机服务器1011b的ip信息均同步至网络中的在线相机服务器(即相机服务器1021b和相机服务器1011b)。
    [0074]
    对于相机服务器1021b,在接收到相机服务器1021b的ip信息和相机服务器1011b的ip信息之后,根据相机服务器1011b的ip信息向相机服务器1011b发起连接请求,以建立p2p通信。同样地,对于相机服务器1011b,其在接收到相机服务器1021b的ip信息和相机服务器1011b的ip信息之后,根据相机服务器1021b的ip信息向相机服务器1021b发起连接请求,以建立p2p通信。
    [0075]
    在相机服务器之间建立p2p通信之后,便可实现动捕相机(1011a,1021a)采集的动捕数据在相机服务器之间的共享,这样相机服务器1021b可以获知相机服务器1011b的动捕数据,并在交互有需求时同步至本地的虚拟场景客户端1022;同样的,相机服务器1011b可以获知相机服务器1021b的动捕数据,并在交互有需求时同步至本地的虚拟场景客户端1012。如此,便可保证处于不同物理区域的各个虚拟场景客户端均能够获取虚拟场景交互中所有用户的动捕数据。
    [0076]
    本发明实施例的虚拟现实交互系统,采用多个动捕相机与相机服务器相结合的方式来采集用户的动捕数据,并通过虚拟场景服务器作为中转,建立相机服务器之间的p2p通信,以实现动捕数据的共享,这样可以保证动捕数据的传输不会受到外界网络的干扰。同时,在虚拟场景客户端在接收到用户的操作命令之后,将操作命令均上传至虚拟场景服务器。虚拟场景服务器作为交互控制中枢,根据接收到的所有用户的操作命令和所有用户的位置信息(动捕数据),对用户的操作命令进行响应并将响应结果下发至每一个虚拟场景客户端。每一个虚拟场景客户端根据接收到的响应结果,各个用户的位置信息以及客户端对应的用户的视角信息,进行相应的虚拟场景的渲染,并显示给用户,从而实现处于异地场景的多用户在同一虚拟场景的虚拟现实交互。
    [0077]
    可以理解的是,在虚拟现实交互过程中,用户是实时移动的,那么动捕数据采集系统采集的动捕数据也是连续的,即动捕数据包括多个时刻的动捕数据。动捕数据采集系统采集到动捕数据之后,通常需要将采集到的多个时刻的动捕数据进行同步,以保证动捕数据的完整性。
    [0078]
    例外的情况是,若动捕数据采集的动捕数据的数据量较大时,全部共享采集的数据则会给网络带宽带来严重负荷,在网络环境不好时,则会造成响应延时,进而不满足虚拟现实的实时交互效果。因此可以考虑不进行全部数据共享,即只共享部分动捕数据,例如,将采集多个时刻的动捕数据按照预设时间间隔挑选出一部分来进行共享。此时,由于虚拟场景服务器以及相机服务器接收到的动捕数据都是不完全的,在交互响应过程中又会造成
    交互画面瞬移或卡顿。为此,在本发明第一实施例或第二实施例的交互系统工作中,当动捕数据的数据量太大时,不宜全部共享时,此时便可以对动捕数据的共享方式进行优化,优化之后不但能够减轻网络负荷,同时又能够避免虚拟现实交互过程中画面瞬移或卡顿的现象。下面,将具体描述优化方式。
    [0079]
    具体来说,动捕数据采集系统在进行动捕数据共享时,如相机服务器(1011b,1021b)之间在进行动捕数据共享时,以及相机服务器(1011b,1021b)在将动捕数据共享给虚拟场景服务器103时,不将动捕相机采集的所有动捕数据进行共享,即只共享一部分。例如,动捕相机在t1、t2、t3、t4、t5时刻采集有5个动捕数据。那么可以考虑按照预设时间间隔挑选出5个动捕数据中的一部分(如t2时刻的动捕数据、t5时刻的动捕数据)并仅仅共享挑选出来的动捕数据,这样便可以缓解网络负荷。预设的时间间隔可以相等,也可以不相等。
    [0080]
    只共享部分动捕数据虽然缓解了网络负担,但随之却带来了交互画面卡顿或瞬移的问题。为解决该问题,可以考虑在虚拟场景服务器和相机服务器端对接收到的动捕数据进行线性插值处理,以模拟出未上传时刻的动捕数据并根据模拟出的动捕数据进行画面渲染,进而避免交互过程中的交互画面卡顿或瞬移的问题。
    [0081]
    虚拟场景服务器103在接收到上传的挑选出来的部分动捕数据时,需要进行线性差值处理,具体线性差值处理方法具体为:
    [0082]
    例如,虚拟场景服务器103在接收到t2时刻的动捕数据时,根据t2时刻的动捕数据,确定用户在虚拟场景中的位置信息为b点。同时,虚拟场景服务器还查看自身记录的该用户当前在虚拟场景中的位置信息为a点。然后,根据a点和b点、获取的插值时间间隔以及预设时间间隔(t2与t5之间的时间差)进行线性插值处理,以保证用户从a点移动到b点时,虚拟场景服务器103刚好能接收到t5时刻的动捕数据。
    [0083]
    具体地,虚拟场景服务器103在根据a点和b点、获取的插值时间间隔以及预设时间间隔(t2与t5之间的时间差)进行线性插值处理的方式可以是:
    [0084]
    将a点作为起点位置,b点作为终点位置,t2与t5之间的时间差作为预设时间间隔,以及获取的插值时间间隔按照如下公式计算a点与b点之间的插值数据,即模拟的该用户的位置信息:
    [0085]
    xn=x
    n-1
    (x

    ×
    t
    n-1,n
    )/t0[0086]yn
    =y
    n-1
    (y

    ×
    t
    n-1,n
    )/t0[0087]zn
    =z
    n-1
    (z

    ×
    t
    n-1,n
    )/t0[0088]
    其中,(xn,yn,zn)表示第n个插值位置在三维坐标系下的坐标,n=1,2,3,
    ……
    ;当n=1时,(x0,y0,z0)表示起点位置坐标;(x

    ,y

    ,z

    )表示从起点位置a到终点位置b的三维坐标系下的向量;t
    n-1,n
    表示从第n-1个插值位置到第n个插值位置所需的时间(插值时间间隔),该时间可以设定或基于运行平台获取;t0表示预设时间间隔。(x

    ,y

    ,z

    )可以根据起点位置a的坐标位置、b的坐标位置得出。
    [0089]
    在采用上述公式模拟出a点与b点之间用户的位置信息之后,便可按照该模拟出的位置信息进行相应响应。
    [0090]
    相同地,相机服务器(1011b,1021b)也可以按照虚拟场景服务器相同的方式进行用户位置信息的模拟,并将模拟得到的位置信息同步至本地的虚拟场景客户端(1011,1012),以便虚拟场景客户端(1011,1012)能够根据模拟出的位置信息进行相应虚拟场景的
    渲染,进而能够保证交互画面的流畅性。
    [0091]
    上述图1至图2对异地场景的虚拟现实交互系统进行了详细的描述,下面将结合附图,对应用上述交互系统进行异地场景的虚拟现实交互方法、计算机可读存储介质进行详细描述。为避免赘述,上文中已经描述的术语在下文中可能不再做重复说明。
    [0092]
    如图4所示,是本发明实施例提供的应用于异地场景的虚拟现实交互方法的第一实施例的流程示意图。所述虚拟现实交互方法可以运行于图1、图2所示的交互系统上,本发明实施例中,从虚拟场景服务器侧对虚拟现实交互方法进行描述。该虚拟现实交互方法包括如下步骤:
    [0093]
    步骤401,虚拟场景服务器接收每一动捕数据采集系统发来的动捕数据,以及来自每一虚拟场景客户端的操作命令。
    [0094]
    由于该虚拟现实交互方法运行于图1、图2所示的交互系统中。因此,虚拟场景服务器可以接收到至少两个动捕数据采集系统发来的动捕数据。该至少两个动捕数据采集系统位于不同的动捕数据采集区域,即至少两个动捕数据采集系统位于不同物理区域或位于异地,且每一动捕数据采集系统至少对应本地的一个虚拟场景客户端。其中,动捕数据是动捕数据采集系统采集的本地用户的动捕数据。对于每一动捕数据采集系统,在采集本地的动捕数据之后,需要将该动捕数据同步至本地的虚拟场景客户端,同时还将采集的动捕数据传送至动捕数据采集系统以及虚拟场景服务器。
    [0095]
    其中,动捕数据具体可以包括:刚体名称、刚体数据以及刚体标识号。接收到动捕数据的终端设备能够根据刚体名称和刚体标识号对刚体进行识别,确定该刚体所属的用户,同时还可以根据刚体数据确定该用户的位置信息。
    [0096]
    其中,虚拟场景服务器在接收到两个动捕数据采集系统采集的动捕数据之后,由此可以获取虚拟场景中所有用户的位置信息。
    [0097]
    对于每一虚拟场景客户端,其一方面接收本地的动捕数据采集系统传来的动捕数据,同时还可以接收本地的动捕数据采集系统传来的来自其他动捕数据采集系统的动捕数据。即是说,虚拟场景客户端可以获知处于不同物理区域的所有用户的位置信息。也就是说,即使用户处于不同物理区域,虚拟场景中的每一个客户端均能够获知该虚拟场景中所有用户的位置信息。
    [0098]
    由此可见,动捕数据采集系统将采集的本地的动捕数据同步至本地客户端、其他区域的动捕数据采集系统以及虚拟场景服务器的目的是:实现对动捕数据的共享,使得不同的动捕数据采集系统之间,以及动捕数据采集系统与虚拟场景服务器能够共享虚拟场景中所有用户的动捕数据,达到类似在同一局域网的数据共享效果。通过动捕数据的共享,能够确定虚拟交互中各个用户在虚拟场景中的位置信息,保证异地虚拟现实交互的正常逻辑,实现虚拟现实交互的沉浸感。由于动捕数据采集系统将采集的动捕数据采用并行的方式,同时同步给本地的虚拟场景客户端、其他动捕数据采集系统以及虚拟场景服务器,这样可以缩减同步时间,提升数据共享效率,进而缩减交互延时,提升交互体验。
    [0099]
    其中,动捕数据采集系统之间在进行通信时,可以通过虚拟场景服务器建立二者之间的p2p通信。即是说,在接收动捕数据和操作命令之前,可以通过虚拟场景服务器建立动捕数据采集系统之间的p2p通信。并且,本发明实施例的动捕数据采集系统可以是惯性动捕数据采集系统、激光动捕数据采集系统、光学动捕数据采集系统或者其他类型的动捕数
    据采集系统。
    [0100]
    步骤402,虚拟场景服务器根据接收到的所述动捕数据对所述操作命令进行响应,并将响应结果同步至每一所述虚拟场景客户端。
    [0101]
    在动捕数据采集系统对动捕数据进行了采集、同步之后,即进入下一阶段的交互过程。
    [0102]
    其中,每一虚拟场景客户端还可以接收本地对应用户(即虚拟场景客户端对应的用户)输入的操作命令,并将该操作命令转发给虚拟场景服务器。其中,操作命令是用户对虚拟场景中的人或物的操作指令。具体地,用户可通过手柄或惯性姿态的方式向虚拟场景客户端输入操作命令。每一个虚拟场景客户端在接收到该操作命令之后,会将该操作命令转换成虚拟场服务器能够识别的形式并传输给虚拟场景服务器。即是说,虚拟场景服务器可以获知该虚拟场景中处于不同物理区域的所有用户的操作命令。
    [0103]
    虚拟场景服务器的主要作用是:控制交互逻辑的正常进行。为实现处于不同物理区域的用户在同一虚拟场景中的正常交互,虚拟场景服务器需要获取所有用户在虚拟场景中的位置信息以及所有用户的操作命令。鉴于这两个条件在前文的描述中已经实现,因此虚拟场景服务器可以根据接收到的所有用户的操作命令以及所有用户在虚拟场景中的位置信息进行相应的响应。并将响应结果同步至每一个虚拟场景客户端。
    [0104]
    在将响应结果同步至每一虚拟场景客户端之后,对于接收到响应结果的每一个虚拟场景客户端,其需要根据响应结果进行相应虚拟场景的调整。具体调整方式是:虚拟场景客户端根据响应结果以及所有用户在虚拟场景中的位置信息,以及本地用户(与该客户端对应的用户)的视角信息对虚拟场景进行调整,并将调整后的虚拟场景显示给用户。例如,可以将调整后的虚拟场景通过用户所戴的头盔显示给用户。至此,完成了处于不同物理区域的用户在同一虚拟场景下的交互。
    [0105]
    可以理解的是,动捕数据采集系统的类型较多,例如,激光、惯性或者光学等,在以下实施例中,将以动捕数据采集系统为光学动捕数据采集系统为例进行详细说明。
    [0106]
    如图5所示,是本发明实施例提供的应用于异地场景的虚拟现实交互方法的第二实施例的流程示意图。所述虚拟现实交互方法可以运行于图1、图2所示的交互系统上。本发明实施例中,从虚拟场景服务器侧对虚拟现实交互方法进行描述。本发明实施例与图4所示的实施例的区别在于:所述动捕数据采集系统为光学动捕采集系统,包括:多个动捕相机和相机服务器。因此在本步骤中,对通过虚拟场景服务器建立p2p通信的方式,以及接收动捕数据的方式进行了具体描述,下面将详细说明。
    [0107]
    步骤501,虚拟场景服务器接收每一所述相机服务器发来的链接请求。
    [0108]
    步骤502,虚拟场景服务器从所述链接请求中提取所述相机服务器的ip信息。
    [0109]
    步骤503,虚拟场景服务器将提取的所有相机服务器的ip信息同步至网络中的每一所述相机服务器;以便每一所述相机服务器能够根据接收到的ip信息,与其它相机服务器建立p2p通信。
    [0110]
    步骤504,虚拟场景服务器接收每一动捕数据采集系统发来的动捕数据,以及来自每一虚拟场景客户端的操作命令。
    [0111]
    步骤505,虚拟场景服务器根据接收到的所述动捕数据对所述操作命令进行响应,并将响应结果同步至每一所述虚拟场景客户端。
    [0112]
    由上面的步骤可以看出,动捕相机的作用是采集本地用户的动捕数据并传输至相应的相机服务器。而相机服务器的作用有:与其它动捕数据采集系统的相机服务器建立p2p通信、将本地的动捕数据共享至本地的虚拟场景客户端、虚拟场景服务器以及其它动捕数据采集系统中的相机服务器。
    [0113]
    需要说明的是,相机服务器之间建立p2p通信的方式可以是:
    [0114]
    每一相机服务器均向所述虚拟场景服务器发送链接请求,该链接请求中携带有所述相机服务器的ip信息。虚拟场景服务器从接收到的链接请求中提取相机服务器的ip信息,并将提取的所有相机服务器的ip信息同步至网络中的每一在线相机服务器。
    [0115]
    对于每一相机服务器,在接收到来自虚拟场景服务器的所有相机服务器的ip信息之后,根据接收到的ip信息,向其他相机服务器发送链接请求,以建立p2p通信。
    [0116]
    在相机服务器之间建立p2p通信之后,便可实现动捕相机采集的动捕数据在相机服务器之间的共享,这样相机服务器可以获知其余相机服务器的动捕数据,并在交互有需求时同步至本地的虚拟场景客户端;如此,便可保证处于不同物理区域的各个虚拟场景客户端均能够获取虚拟场景交互中所有用户的动捕数据。
    [0117]
    本发明实施例的虚拟现实交互方法,采用多个动捕相机与相机服务器相结合的方式来采集用户的动捕数据,并通过虚拟场景服务器作为中转,建立相机服务器之间的p2p通信,以实现动捕数据的共享,这样可以保证动捕数据的传输不会受到外界网络的干扰。同时,在虚拟场景客户端在接收到用户的操作命令之后,将操作命令均上传至虚拟场景服务器。虚拟场景服务器作为交互控制中枢,根据接收到的所有用户的操作命令和所有用户的位置信息(动捕数据),对用户的操作命令进行响应并将响应结果下发至每一个虚拟场景客户端。每一个虚拟场景客户端根据接收到的响应结果,各个用户的位置信息以及客户端对应的用户的视角信息,进行相应的虚拟场景的渲染,并显示给用户,从而实现处于异地场景的多用户在同一虚拟场景的虚拟现实交互。
    [0118]
    如图6所示,本发明实施例提供的服务器的示意框图。如图6所示,该实施例的服务器6包括:一个或多个处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60上运行的计算机程序62。所述处理器60执行所述计算机程序62时实现上述各个数据同步的方法实施例中的步骤,例如步骤s401至s402,或者步骤s501至s505。
    [0119]
    示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述服务器6中的执行过程。
    [0120]
    所述服务器包括但不仅限于处理器60、存储器61。本领域技术人员可以理解,图6仅仅是服务器6的一个示例,并不构成对服务器6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器还可以包括输入设备、输出设备、网络接入设备、总线等。
    [0121]
    所述处理器60可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、
    分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
    [0122]
    所述存储器61可以是所述服务器6的内部存储单元,例如服务器4的硬盘或内存。所述存储器61也可以是所述服务器6的外部存储设备,例如所述服务器6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器61还可以既包括所述服务器6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
    [0123]
    在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
    [0124]
    本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
    [0125]
    所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
    [0126]
    本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备或处理器执行本发明实施例各个实施例所述方法的全部或部分步骤。
    [0127]
    以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。
    转载请注明原文地址:https://tc.8miu.com/read-143.html

    最新回复(0)