虚拟或真实世界的多维3D引擎计算和基于虚拟化的动态负载平衡的制作方法

文档序号:25872647发布日期:2021-07-16 16:52阅读:182来源:国知局
虚拟或真实世界的多维3D引擎计算和基于虚拟化的动态负载平衡的制作方法
虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡
相关申请的交叉引用
1.本申请要求2019年12月30日提交的美国临时申请第62/955247号的优先权,所述申请通过引用的方式并入本公开。


背景技术:

2.被设计成运行虚拟世界的常规系统,尤其是大型多玩家在线游戏(mmog),在虚拟世界内支持大量玩家或实体的方式上受到限制。由于这些虚拟世界通常运行在单个物理计算机上,并且依赖于游戏或应用程序的单个实例,因此虚拟世界由有限的系统带宽和托管虚拟世界的服务器的处理器容量来支持。托管游戏或模拟引擎的服务器需要为虚拟世界中的每个对象和玩家提供模拟能力。然而,随着玩家和实体的数目增加,资源需求同样增加,从而降低了虚拟世界内的服务质量(qos)和用户体验。
3.其他方法包括分割和均匀分布地图,以及在多个服务器上运行地图的一部分,每一服务器负责地图的相应部分。虽然有更多的资源可用于提供整个地图,但这种方法仍然存在一些缺点。例如,一个区的拥挤会使这种类型的地理分区在虚拟世界中的使用效率低下,并且由于需要进行服务器切换,从一个区到另一区的迁移会为跨区的用户提供离散视图而不是连续视图。
4.另外,在虚拟世界的开发和处理中使用的当前3d引擎具有许多缺点,这些缺点限制了虚拟世界的供应能力。例如,当前典型的3d引擎往往是单片的,可能是集中式的并难以向上缩放,并且可能依赖于平台。这阻碍了在虚拟世界的开发和执行期间充分利用3d引擎的每一特定模块的能力的可能性,进一步增加了前述缺点。


技术实现要素:

5.提供此发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念的选择。此发明内容并不意图识别所要求保护的主题的关键特征,也不意图用于帮助确定所要求保护的主题的范围。
6.本公开大体上涉及计算机系统和方法,更具体来说涉及实现虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡的系统和方法。
7.本公开的系统包括一个或多个服务器计算机,所述服务器计算机包括存储器和至少一个处理器,所述存储器存储将虚拟或真实世界的至少一个部分虚拟化为存储形成持久虚拟世界系统的虚拟对象的多个单元的数据结构。在一些实施方式中,至少一些虚拟对象是相应真实世界元素的虚拟副本。所述存储器进一步存储实现在分布式部署中的分布式3d引擎,所述分布式3d引擎包括资源管理器和多个单独的分布式软件引擎。基于当前负载和一个或多个单元的相应计算和排序需求来经由所述分布式部署将资源动态地分配到一个或多个单元。在一些实施方式中,所述需求至少部分基于一个或多个单元内虚拟对象的数量或在一个或多个单元内用户化身可见的持久虚拟世界系统的部分内的交互级别、或者其
组合。在一些实施方式中,资源包括计算能力、存储器、网络资源(例如,带宽)或其组合。
8.在其他实施方式中,所述需求进一步基于访问一个或多个单元的用户装置和网络设备(例如,服务器和网络天线)之间的距离、用户正使用的应用类型、或者访问一个或多个单元的用户例如根据其个人用户配置文件或合同细节可能拥有的权利的类型或其组合。
9.在一些实施方式中,虚拟对象还包括真实世界中不可用的纯虚拟对象、真人的虚拟化身和应用。
10.在一些实施方式中,所述持久虚拟世界系统包括同一虚拟或真实世界的多个模拟,所述模拟从高保真度到低保真度变化,其中低保真度模拟用于需求评估和负载平衡,并且其中高保真度模拟用于提高用户体验。这使得能够根据情况和情形执行不同的模拟。lod管理还允许根据特定的需求和上下文提供优化的用户体验。因此,可以在不同的lod模拟相同的虚拟或真实世界,有助于本公开的负载平衡方法,同时向用户提供合适的体验。
11.在一些实施方式中,持久虚拟世界系统的虚拟对象包括数据和模型,所述数据和模型是指虚拟对象或相应真实对象的方面的任何图形、数学或逻辑表示。在一些实施方式中,数据和模型为持久虚拟世界系统的实体提供自我计算能力和自主行为。在一些实施方式中,合适的模型包括3d模型、几何模型、动态模型和机器学习模型中的一个或多个。虚拟对象可以被馈送从模拟获得的数据、由用户通过用户装置输入的数据、或者由传感器装置(例如,对于基于真实世界的持久虚拟世界系统)捕捉的数据,诸如由物联网装置捕捉的数据。连续的数据流可以维持持久虚拟世界系统周期性更新。
12.在一些实施方式中,持久虚拟世界系统可以包括虚拟世界层,所述虚拟世界层可以被分离为增强现实(ar)层和虚拟现实(vr)层。单独的层可以使得能够以增强现实或虚拟现实中的任一个来访问持久虚拟世界系统,并组合存储在每一层中的元素,并且可以在访问一种或另一种类型的现实时通过经由网络连接到至少一个服务器计算机的客户端装置来启用。每一层可以包括现实和虚拟对象的增强,其可以特定于每一层。
13.在一些实施方式中,单独的分布式软件引擎可以是被分解成多个动态且独立的软件模块的分布式3d引擎,当在本地配置时所述软件模块可以相互通信,或者与位于远程的单独的软件模块通信。在一些实施方式中,多个分布式软件引擎可以在网络内并行或依序使用,以创建彼此的协同作用。例如,托管在相同或不同服务器计算机上的多个3d图形引擎可以通过分布式消息交换平台依序地或并行地分配引擎服务,以便补充彼此的引擎服务用于实现一个或多个特定任务。
14.在一些实施方式中,所述一个或多个处理器是专用处理单元、通用处理单元或其组合,被配置成在硬件中处理来自相应的单独分布式软件引擎的任务。在实施方式中,与采用一个或多个标准中央处理单元(cpu)、图形处理单元(gpu)的典型系统相反,所述专用硬件引擎每一个都是专门为处理单独的分布式软件引擎而定制的,所述分布式软件引擎用于处理3d图形、人工智能操作、物理操作、3d结构处理操作、模拟操作、跟踪和定位以及通信等中的至少一个。在一些实施方式中,每一硬件引擎可以被耦合为芯片或系统级电子芯片,所述芯片包括被指定用于处理每一特定类型的操作的一个或多个特定硬件处理核心。一个或多个电子芯片的处理核心可以被视为电子芯片的电子电路的功能单元或模块,所述电子芯片被设计用于物理地执行每一3d引擎所需的算法。例如,一个或多个处理核心中的至少一个可以实现为fpga或实现专用功能性的任何其他形式的集成电路。因此,电子芯片包括实
现一个或多个处理核心中的至少一些的至少一个集成电路,其中处理核心中的至少一个实现不同的专用硬件引擎。这些电子芯片可以例如安装在一个或多个外部服务器或主要服务器中的任一个或两者上。在一些实施方式中,电子芯片可以另外包括通用处理核心,诸如cpu和/或gpu,或者可以连接到外部cpu和/或gpu,以向它们提供对每一引擎任务的额外支持。除了使每一3d引擎模块能够具有来自一个或多个硬件引擎的一个或多个专用硬件核心之外,在每一源上提供专用硬件引擎并以分布式和独立的方式配置每一3d引擎模块可以向整个系统提供更多资源。
15.在一些实施方式中,将虚拟或真实世界表示为单元的数据结构是八叉树数据结构,其中每一单元被表示为八叉树数据结构内的体元。在一些实施方式中,八叉树数据结构中使用的体元是稀疏体元,用于真实世界的较大部分的布置。在其他实施方式中,八叉树数据结构中使用的体元是密集体元,用于真实世界的较小部分的布置。八叉树和所选择的稀疏或密集体元是用于在虚拟世界中表示三维空间的合适数据结构,诸如在表示真实世界的持久虚拟世界系统中。八叉树能够快速且容易地组合多个对象,实现相对简单的渲染算法,能够执行快速空间搜索,并且能够通过真实对象的虚拟化(例如,通过lidar或其他图像扫描方法)来产生模型。对于包括表示真实世界的至少一个部分的3d虚拟世界的虚拟世界,世界的此类3d分区使得能够在用户可能正在观看和/或交互的区域上进行基于三维的引擎服务和云资源分配。
16.在一些实施方式中,表示来自所述世界的所述至少一个部分的较高资源密集型感兴趣区域的单元被进一步划分为更多数量的单元。在其他实施方式中,每一高资源密集型单元相应地被指派有来自一个或多个源的资源,其中较小的单元被分配了更大量的资源。在另一实施方式中,在结束与一个或多个请求相关联的事件之后,资源被从多个源恢复到原始的一个或多个源。随后,将所述世界的至少一个部分合并回原始数量的单元。通过这种方式,系统通过选择具有较高需求的感兴趣区域来实现资源的高效和动态分配。
17.在一些实施方式中,所述资源管理器通过分布式消息交换平台来执行所述分配。在其他实施方式中,所述分布式消息交换平台利用发布

订阅模型,其中一个或多个虚拟对象订阅其中发布资源的一个或多个单元。在又一实施方式中,所述分布式消息交换平台与客户端装置和服务器中的一个或多个共享存储在所述存储器中的世界的至少一个部分的动态更新状态。因此,本公开的分布式3d引擎的资源管理器向分布式消息交换平台发布每一资源一次,并通过订阅具有发布的资源的单元而被递送给需要它们的每一虚拟对象。这与为供应虚拟世界而定制的典型3d引擎系统形成对比,所述系统为地图内的每一客户端装置输出完整的数据更新包,为客户端装置定制每一包,使得客户端装置仅接收可能与客户端装置和可视对象相关的数据,导致游戏或模拟引擎可能为对象可见的每一客户端装置多次发送相同的数据。
18.根据实施方式,世界的至少一个部分的状态通过多个连接装置而进一步更新,所述连接装置包括向持久虚拟世界系统提供传感器数据的传感器。连接装置可以是例如物联网(iot)装置,其可以通过网络相互通信并与服务器通信,并且可以从真实世界连续捕捉多源传感器数据,以便更新持久虚拟世界系统的虚拟副本。因此,状态更新可能由传感器数据引起。然而,状态更新也可以由用户输入引起,或者由来自一个或多个3d引擎的计算(例如,人工智能推理)引起。然后,可以在分布式消息交换平台上发布世界的状态更新,供所有客
户端装置和源按需订阅和查看。
19.在一些实施方式中,所述多个单元的每一单元包括一个或多个流,每一流包括一个或多个流特定的虚拟对象,并且被配置成被启用或禁用以供在所述客户端装置上查看和交互。在另一实施方式中,每一流与一个或多个用户应用相关联。每一流可以被配置成从相应的虚拟对象获得数据,并执行主题和/或目标特定的模拟。每一流可以连接到生成多个流相关虚拟对象的根节点或根模拟对象。所述流可以另外连接到定义流执行模拟所需的虚拟副本的导入功能。在一些实施方式中,在预定环境中,诸如在一个单元或多个单元中,包括全部或大部分虚拟副本的多个流、它们的上下文以及每一虚拟副本之间的关系和交互形成宇宙或子宇宙。子宇宙的网络可以形成持久虚拟世界系统的宇宙。例如,城市的子宇宙可以称作城市宇宙,它可以代表一个城市的所有建筑物、树木、人、街道、交通信号灯、车辆等以及它们之间的关系、交互和环境。在子宇宙内也可能有另一子宇宙,诸如在城市宇宙内的房屋宇宙。房屋宇宙可以包括房屋的外部和内部的3d设计,房屋的所有家电、人、墙壁、能耗数据等。所有子宇宙的网络可以形成持久虚拟世界系统的宇宙,所述系统可以在虚拟或增强现实中查看。这些子宇宙中的每一个可以动态地划分为在其中动态分配资源的多个单元。
20.在本公开的实施方式中,系统可以在可以显示分布式计算能力的云到边缘基础设施中实现,包括采用公共云或私有云、雾服务器、对等云服务器系统、分布式基于分类账的基础设施、微云和边缘系统,诸如企业系统、移动平台和用户装置。所述分布式基于分类帐的基础设施可以是分散式且不可变的区块链或分布式分类账网络,其有助于广泛分配持久虚拟世界系统所必需的数据的转移和存储,包括虚拟副本、纯虚拟对象、应用以及持久虚拟世界系统内的任何事件或交互。通过云到边缘基础设施,包括物理服务器和网络设备的资源实现了共享存储和计算,所述共享存储和计算可以允许根据诸如用户到资源和网络的距离以及用户相对于彼此和相对于他们所处的位置的计算需求等因素对其进行动态分配,从而相应地命令或多或少的计算。在一些实施方式中,使用分布式分类帐基础设施将资源的动态分配编入智能合同,自动化事务逻辑(例如,每次存储和计算分配背后的计算机逻辑)以及此类分配的后果或结果。
21.根据实施方式,一种使分布式3d引擎能够通过虚拟世界执行动态负载平衡的方法包括在至少一个服务器计算机的存储器中虚拟化数据结构,所述数据结构将虚拟或真实世界的至少一个部分表示为存储形成持久虚拟世界系统的虚拟对象的多个单元,其中所述虚拟对象中的至少一些是相应真实世界元素的虚拟副本。所述方法通过在至少一个服务器计算机的存储器中提供实现在分布式部署中的分布式3d引擎而继续,所述分布式3d引擎包括资源管理器和多个单独的分布式软件引擎。随后,所述方法通过由资源管理器基于当前负载计算多个单元中的单独单元的需求而继续,其中所述需求是至少部分基于单独单元内的虚拟对象的数量或在单独单元内用户化身可见的所述持久虚拟世界系统的部分内的交互级别。然后,所述方法通过根据需求对单独单元进行排序而继续。最后,基于排序的需求,所述方法通过动态地将资源分配给单独单元(例如,一个或多个较高的资源密集型单元)而结束。
22.根据实施方式,方法还包括:基于计算的需求,将虚拟或真实世界的至少一个部分的感兴趣区域划分为附加的单元;以及将相应的资源指派到附加的单元(例如,表示资源密集型感兴趣区域的每一单元)。在实施方式中,方法还包括在结束与较高资源密集型感兴趣
区域内的一个或多个请求相关联的事件之后,将资源恢复为原始一个或多个源;以及将所述持久虚拟世界系统内世界的至少一个部分合并回原始数量的单元。
23.在一些实施方式中,所述分配是通过资源管理器的分布式消息交换平台使用发布

订阅模型向相应的单元发布资源来执行的;以及由一个或多个虚拟对象订阅感兴趣的单元,以便获得所需的资源。
24.在一些实施方式中,方法还包括通过分布式消息交换平台与一个或多个客户端装置和/或服务器计算机共享世界的至少一个部分的动态更新状态,所述客户端装置和/或服务器计算机已订阅所述动态更新状态以便获得世界的更新版本。在又一实施方式中,世界的至少一个部分的状态通过多个连接装置、通过用户输入、通过服务器计算或其组合而获得,所述连接装置包括向持久虚拟世界系统提供传感器数据的传感器。
25.上述发明内容并不包括本公开所有方面的详尽列表。可以设想,本公开包括可以从上文概述的各方面的所有合适的组合来实践的所有系统和方法,以及在以下具体实施方式中公开的,并且在与本申请一起提交的权利要求中特别指出的那些系统和方法。此类组合具有在以上发明内容中没有具体叙述的特殊优点。本公开的其他特征和优点将从附图以及从下文的详细描述中显而易见。
附图说明
26.参考以下描述和附图,将更好地理解本公开的具体特征、方面和优点,其中:
27.图1示出了根据实施方式的实现虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡的系统的示意图。
28.图2示出了根据实施方式的实现虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡的系统的服务器的示意图。
29.图3示出了根据实施方式的通过分布式消息交换平台的资源分配的示意图。
30.图4a

4b示出了根据实施方式的通过分布式消息交换平台的引擎服务分配的示意图。
31.图5a

5c示出根据实施方式的持久虚拟世界系统的元素之间的关系的示意图。
32.图6a

6b示出了根据实施方式的分区成多个单元的示意图。
33.图7示出了根据实施方式的分区成多个单元的另一实施方式的示意图。
34.图8示出了根据实施方式的客户端装置的示意图。
35.图9示出了根据实施方式的实现虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡的计算机实现的方法的框图。
36.图10示出了根据实施方式的包括实现虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡的计算机实现的方法的其他步骤的框图。
37.图11示出了根据实施方式的描述通过分布式消息交换平台的资源分配步骤的框图。
具体实施方式
38.在以下描述中,参考了通过图示方式示出各种实施方式的附图。而且,下文将通过参考几个实施例来描述各种实施方式。应理解,在不偏离所要求保护的主题的范围的情况
下,实施方式可以包括设计和结构上的改变。
39.图1示出了根据实施方式的实现虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡的系统100的示意图。
40.系统100包括通过网络104实现分布式3d引擎的多个服务器计算机102(例如,外部服务器a

c),分布式3d引擎包括分布式部署106中的资源管理器。分布式部署106是通过使用诸如系统100中的一个的分布式架构在多个服务器计算机102中的分布式3d引擎的软件实现方式。服务器计算机102使用发布

订阅模型通过资源管理器向多个单元108(例如,单元1

3)中的一个或多个动态分配资源,每一单元108虚拟地表示真实世界或虚拟世界的一个或多个不同区域。所述分配基于当前负载以及相应的计算和排序需求。在一些实施方式中,需求还考虑虚拟对象110的数量和用户化身可见的持久虚拟世界系统的部分内的交互级别中的一个或多个,如下文更详细描述。
41.多个单元108中的一个或多个包括虚拟对象110,并且单元108内的多个虚拟对象110形成持久虚拟世界系统112。在一些实施方式中,至少一些虚拟对象110是相应真实世界元素的虚拟副本。在一些实施方式中,单独单元的需求考虑了单独单元中虚拟对象110的数量、用户通过相应的客户端装置114可见的持久虚拟世界系统的部分内的交互级别或其组合,如下文更详细描述。在其他实施方式中,请求考虑了其他参数,诸如客户端装置114和诸如服务器和/或天线等网络设备之间的距离、用户正使用的应用类型、或者用户根据其个人用户配置文件或合同细节可能拥有的权利类型,如下文更详细描述。
42.在本公开中,术语“持久”用于表征系统的状态,所述状态可以在没有持续执行的过程或网络连接的情况下继续存在。例如,术语“持久”可以用于表征虚拟世界系统,其中虚拟世界系统和其中包括的所有对象在用于创建虚拟对象的过程停止之后继续存在,并且独立于连接到虚拟世界系统的用户。因此,虚拟世界系统被保存在非易失性存储位置(例如,服务器中)。以此方式,虚拟副本、纯虚拟对象和应用程序在被配置成实现特定目标时,即使用户没有连接到服务器,也可以相互交互和协作。
43.在一些实施方式中,为了减少硬件和网络需求,有助于减少网络等待时间,并改进一般的融合现实体验,系统可以通过包括毫米波(mmw)或mmw和亚6ghz通信系统的组合的网络104连接,诸如通过第五代无线系统通信(5g)。在其他实施方式中,系统可以通过无线局域网(wi

fi)连接。所提供的通信系统可以允许到现场终点的低(例如,约1至约5毫秒)等待时间和高(例如,1

10gbps)下行链路速度,符合执行典型的高度交互式数字现实应用或其他高要求应用所必需的参数。这导致高质量、低等待时间、实时的数字应用内容串流。在其他实施方式中,系统可以通过第四代无线系统通信(4g)进行通信连接,可以由4g通信系统支持,或者可以包括其他有线或无线通信系统。
44.在其他实施方式中,全球导航卫星系统(gnss)可以用于实现装置的定位,全球导航卫星系统是指基于卫星的导航系统,如gps、bds、格洛纳斯(glonass)、qzss、伽利略和irnss。利用来自足够数量卫星的信号和诸如三角测量和三边测量等技术,gnss可以计算装置的位置、速度、高度和时间。在实施方式中,外部定位系统通过现有蜂窝式通信网络的架构由辅助gnss(agnss)增强,其中现有架构包括5g。在其他实施方式中,agnss跟踪系统进一步由4g蜂窝式通信网络支持。在室内实施方式中,gnss经由无线电无线局域网进一步增强,诸如wi

fi,优选但不限于提供60ghz的数据。在替代实施方式中,gnss经由此项技术中已知
的其他技术来增强,诸如经由差分gps(dgps)、基于卫星的增强系统(sbas)、实时动态(rtk)系统。在一些实施方式中,通过装置中的agnss和惯性传感器的组合来实现装置的跟踪。
45.在本公开的一些实施方式中,系统100可以在云到边缘基础设施中实现,所述基础设施可以使用计算装置和系统来显示分布式计算能力,所述计算装置和系统诸如公共云或私有云、雾(fog)服务器、微云、对等云服务器系统、分布式基于分类账的基础设施以及边缘装置和系统,诸如企业系统、移动平台和用户装置,所有这些都可以通过网络104连接。使用云到边缘计算网络,对计算能力、计算机基础设施(例如,通过所谓的基础设施即服务,或iaas)、应用和业务流程的访问可以作为服务经由客户端装置114按需交付给用户。这样,包括物理服务器和网络设备在内的资源能够实现可以动态分配的共享存储和计算。在一些实施方式中,客户端装置114包括用户装置和其他装置。用户装置可以包括例如移动装置、个人计算机、游戏控制台、媒体中心、头戴式显示器和透视装置(例如,数字现实隐形眼镜)。其他装置可以被具体配置成经由传感器机构从真实世界对象捕获多源传感器数据,以便更新和丰富相应真实世界对象的虚拟副本。根据实施方式,其他装置是一个或多个监控摄像机、车辆、交通信号灯、建筑物、街道、火车轨道、家用电器等。
46.图2示出了根据实施方式的实现虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡的系统100的服务器102的示意图。
47.一个或多个服务器102包括一个或多个处理器202和存储器204,所述存储器存储将虚拟或真实世界的至少一个部分虚拟化为多个单元(例如,图1的单元108)的数据结构,每一单元包括虚拟对象110,形成持久虚拟世界系统112。在持久虚拟世界系统112基于真实世界的实施方式中,一些虚拟对象110是相应真实世界元素的虚拟副本206。在其他实施方式中,虚拟对象110还包括真实世界中不存在的应用208和纯虚拟对象210。存储器204还存储分布式3d引擎212,其包括管理资源的资源管理器214。资源管理器214利用使用发布

订阅模型的分布式消息交换平台216,通过在虚拟对象可以订阅的一个或多个单元上发布资源来分配包括计算能力、存储器和网络的资源。资源管理器214可以用作对接管理资源的硬件和软件部件的虚拟层。管理动作可以包括通过分布式消息交换平台216对资源的评估、供应、缩放和复制。
48.在当前实施方式中,术语“虚拟副本”是指真实世界元素的精确且持久的虚拟表示。在实施方式中,本公开的虚拟副本206是指真实世界元素或真实双胞胎的虚拟版本或虚拟双胞胎,其可以通过计算机辅助绘图(cad)或计算机辅助工程(cae)方法来映射或建模,通过真实对象的计算机模型(例如,建筑信息模型

bim)或其他合适的现有技术方法来输入,并且这可能不仅反映真实双胞胎的外观也反映了其行为。一些真实世界对象可以另外包括传感器,所述传感器可以向虚拟副本206提供多源输入数据,用于丰富虚拟副本206并使其与它们各自的真实对应物同步。
49.在一些实施方式中,虚拟副本206包括3d世界和建筑数据中的一个或多个,诸如基于slam或衍生映射的数据;3d几何数据;3d点云数据;或表示真实世界结构性质的地理信息系统数据,这些数据可以用于为应用建模3d结构。
50.在本公开中,术语“虚拟化”是指创建虚拟或真实世界的至少一个部分的抽象虚拟版本或持久虚拟世界系统112的动作。对于真实世界的情况,虚拟化指的是创建在真实世界中发现的元素以及真实世界的任何资源(例如,计算能力、存储器或网络)和相关设备的虚
拟版本,使得用户(例如,人类用户、计算机程序或机器)能够通过持久虚拟世界系统112与真实世界的元素交互。以此方式,用户可以感觉到交互是直接与真实世界的元素发生的。例如,人类用户可以通过用户装置(例如,移动电话或头戴式显示装置)的用户界面在增强现实或虚拟现实中通过虚拟城市中真实城市的元素进行交互,其中真实城市的多个元素已经在持久虚拟世界系统112中被虚拟化。为了通过虚拟副本对真实世界进行物理操纵,可以在真实世界对象上安装机电装置,以便将通过虚拟副本发送到真实世界对象的远程命令转化成来自真实世界元素的物理动作。不管持久虚拟世界系统112是基于虚拟世界还是真实世界,虚拟对象可以还包括模型,所述模型是指虚拟对象或相应真实对象的方面的任何图形、数学或逻辑表示。在一些实施方式中,此类模型为持久虚拟世界系统112的实体提供自我计算能力和自主行为。在一些实施方式中,合适的模型包括3d模型、几何模型、动态模型和机器学习模型中的一个或多个。
51.本公开的分布式3d引擎212是指在分布式部署(例如,在多个服务器或客户端计算机中)中实现的3d引擎的分布式版本。分布式3d引擎212被配置成通过资源管理器214虚拟地汇集、分配、提供和动态地负载平衡和分配资源(例如,计算能力、存储器和网络)。分布式3d引擎212到持久虚拟世界系统112的连接和访问使得能够通过使用空间计算原理来评估代表真实或虚拟世界的至少一个部分的每一单元中的需求来准确地执行负载平衡。作为资源供应的一部分,分布式3d引擎212通过多个单独的分布式软件引擎按需提供多个引擎服务(例如,3d渲染、图形、物理、音频、人工智能、定位和通信)。为提供每一提及的引擎服务而执行的硬件操作可以由多个相应的硬件引擎来提供。如上文所述,这种资源汇集是通过虚拟化实现的。因此,本公开的分布式3d引擎212的概念不应被简单地解释为可以在不同应用(例如,视频游戏)之间重复使用的库中抽象的功能性的聚集,而是包括引擎操作的分布式硬件和软件实现方式,所述引擎操作通过资源管理器214使用空间计算原理采用持久虚拟世界系统作为所述操作的基础来汇集、分配、提供和负载平衡。
52.在本公开中,术语“空间计算”指的是物理空间的使用,以便从计算机发送输入和接收输出。因此,空间计算使用虚拟对象的几何性质及其位置和方向,以便执行所需的计算和动态负载平衡。
53.虚拟对象110可以被馈送从模拟获得的数据、由用户通过用户装置输入的数据、或者由传感器装置(例如,对于基于真实世界的持久虚拟世界系统)捕捉的数据,诸如由物联网装置捕捉的数据。连续的数据流可以维持持久虚拟世界系统112周期性更新。因此,来自真实世界的至少一个部分的持久虚拟世界系统112不仅仅是真实世界的视觉3d表示,正如许多当前虚拟世界系统的情况,而是真实世界的多维表示,因为虚拟对象110包括来自真实世界的其他维度或方面的模型和数据。例如,多个虚拟对象110可以包括与温度、燃料消耗、速度、功率、压力、质量、声音等相关的数据,还实现每一虚拟对象之间的连接和通信。
54.在一些实施方式中,虚拟或真实世界的虚拟化包括在多种细节层次(lod)中执行同一世界的多个模拟。lod管理通过减少图形管道使用的工作负载(通常是顶点变换)或者通过增强物理模拟来提高计算过程的效率,诸如渲染过程,因为不同的物理模型可以与虚拟副本相关联,从低保真度模型到高保真度模型。这使得能够根据情况和情形执行不同的模拟。lod管理还允许根据特定的需求和上下文提供优化的用户体验。因此,可以在不同的lod模拟相同的虚拟或真实世界,有助于本公开的负载平衡方法,同时向用户提供合适的体
验。例如,持久虚拟世界系统112中的真实世界模拟可以包括用于人类用户可视化目的的真实世界的至少一个部分的高保真度模拟,以及用于评估每一单元的需求并有助于高保真度模拟的负载平衡的较低保真度模拟。因此,低保真度模拟可以有助于查看哪些区域可能过载并且哪些区域没有过载,同时利用较少的资源。在另一实施例中,除了与制造厂的每一机器的当前能耗、生产率、效率等相关的数据和模型之外,由于对象之间的精确空间表示和关系,制造厂的虚拟化可以通过分布式3d引擎212实现制造厂的精确管理,包括需求评估和相应的资源分配。出于管理制造厂的目的(例如,控制生产过程和工厂中的所有元件),可以以高保真度来模拟制造厂,并且为了管理制造厂的负载平衡的目的,还可以以低保真度进行模拟。上述相同的lod原理可以应用于基于虚拟世界的持久虚拟世界系统112,其中为了虚拟世界的低平衡的目的,可以在持久虚拟世界系统112内模拟虚拟世界的低保真度版本,而可以模拟虚拟世界的高保真度版本以提供更好的用户体验。
[0055]“自我计算能力”也称为“自我管理能力”,在此是指应用人工智能算法以便自主管理计算资源的能力。在实施方式中,在持久虚拟世界系统中具有自我计算能力的虚拟副本能够自主管理计算资源以适应相应真实世界元素的环境或真实世界元素本身的变化。自我管理的规则和条件可以通过使用运行在区块链或分布式分类账技术上的智能合同来进一步控管,以分布式和透明的方式进一步编入规则和条件。因此,在实施方式中,每一虚拟对象,诸如真实对象的虚拟副本,可以表现出自主行为,根据持久虚拟世界系统中反映的真实世界中的条件自主地动作(例如,通过分配所需的资源、自主发送和执行命令和/或产生每一环境所需的事件)。实现这种类型的行为可能需要在虚拟对象建模期间用人工智能算法训练虚拟对象。
[0056]
虚拟副本可以从一个或多个源(例如,从一个或多个真实世界对象、环境传感器、计算装置等)获得数据。如本公开所使用,术语“多源数据”是指可以从多个源获得的数据。虚拟副本可以基于多源数据来更新,诸如通过更新已知参数或特征、通过用附加参数或特征丰富虚拟副本等。
[0057]
在本公开中,术语“丰富”用于描述基于多源传感器数据向虚拟副本提供其他性质的动作。例如,丰富虚拟副本可以指提供从客户端装置上的传感器机构捕捉的真实世界数据,其中其他真实世界数据包括视频数据、温度数据、实时能耗数据、实时耗水量数据、速度或加速度数据等。
[0058]
在一些实施方式中,一些虚拟副本206可以是经由客户端装置访问持久虚拟世界系统112的真实用户的虚拟化身。在这些实施方式中,资源被发布在用户的虚拟化身活动的相应单元上,例如,对应于用户可能通过他们的客户端装置观看的位置和定向,使得资源由用户通过经由用户客户端装置订阅相应单元的相应虚拟化身接收。同样,当应用208和/或纯虚拟对象210在单元中活动时,这些虚拟对象110订阅所述单元,触发资源管理器214评估需求,并相应地发布虚拟对象110通过订阅相应的单元可以获得的更多或更少的资源。
[0059]
例如,城市中的特定交通信号灯与道路或街道相关联,并且还可以与其他对象相关联,诸如传感器或其他交通信号。这些关系可以触发事件,所述事件可以在持久虚拟世界系统112中创建新的交互,例如,街道中的急救车可以自动触发优先级事件,这将基于急救车的轨迹和区域中的实际交通状况的模拟来改变交通信号灯模式以避免十字路口的任何停车。在此类事件期间的资源管理,包括在此类事件中涉及的装置(例如,汽车)的供应,由
资源管理器212执行。在一些实施方式中,此类条件、事件和结果可以被编程为绑定到特定于交通的分布式分类账的智能合同,例如,具有许多智能合同的交通侧链,所述智能合同定义了各种编入的交通规则和预期行为,因此自动化并记录此类事件的发生。
[0060]
在一些实施方式中,纯虚拟对象210是指仅存在于持久虚拟世界系统112中的对象,且因此在真实世界中没有对应对象。
[0061]
在一些实施方式中,应用208可以是一个或多个传统应用、分布式应用或分散式应用。传统应用通常基于传统的客户端

服务器模型,并在静态基础架构中的专用服务器上运行。分布式应用是主要存储在云计算平台上的应用,诸如本公开的云服务器,并且可以在同一网络上的多个系统和装置上同时运行,或者可以在区块链或基于分布式分类账的分布式数据库上运行。分散式应用主要运行在分散式基础设施上,诸如区块链或基于分布式分类帐的分布式数据库。
[0062]
在一些实施方式中,持久虚拟世界系统112可以包括虚拟世界层,所述虚拟世界层可以被分离为增强现实(ar)层和虚拟现实(vr)层。单独的层可以使得能够以增强现实或虚拟现实中的任一个来访问持久虚拟世界系统,并组合存储在每一层中的元素,并且可以在访问一种或另一种类型的现实时通过经由网络连接到至少一个服务器计算机102的客户端装置来启用。每一层可以包括现实和虚拟对象110的增强,其可以特定于每一层。例如,ar层可以仅包括虚拟副本206、应用208和纯虚拟对象210,它们可以仅在增强现实中访问持久虚拟世界系统112时可见。类似地,vr层可以仅包括虚拟副本206、应用208和纯虚拟对象210,它们可以仅在虚拟现实中访问持久虚拟世界系统112时可见。然而,用户可以决定启用两个层,或者调整每一层的级别,使得一个层的至少一些对象在另一层是可见的。例如,当访问虚拟现实中的场景时,有可能启用增强现实层,使得能够查看在vr层中虚拟化的真实对象的增强,例如查看建筑物或旅游场所的进一步描述。
[0063]
在一些实施方式中,分布式3d引擎212还包括一个或多个单独的分布式软件引擎218。分布式软件引擎218可以是分解成多个动态和独立软件模块的3d引擎,每一软件模块被编程用于执行特定的引擎任务。单独的分布式软件引擎218可以经由例如分布式消息交换平台216相互通信。每一单独的分布式3d引擎218可以使用消息交换平台216来调用其他单独的分布式软件引擎218中的服务功能。此类调用可以间接执行(例如,通过分布式消息交换平台216调用的通用代理功能),或者直接执行(例如,通过与每一单独的分布式3d引擎218保持直接通信的分布式消息交换平台216)。
[0064]
在一些实施方式中,一个或多个处理器202可以是一个或多个专用硬件引擎220。在其他实施方式中,一个或多个处理器202是通用处理单元,或者是由通用处理单元支持的专用处理单元。在一些实施方式中,专用处理单元是专门为处理一个或多个单独的分布式软件引擎218以执行引擎任务而定制的处理单元。专用硬件引擎220因此可以被单独设计和配置用于处理与3d图形、人工智能操作、物理操作、3d结构处理操作、模拟操作、跟踪和定位或其通信中的一个或多个相关的操作。在一些实施方式中,每一硬件引擎220可以耦合在一个或多个电子芯片或系统级芯片上,所述芯片包括被指定用于处理每一特定类型的操作的一个或多个特定硬件处理核心。一个或多个电子芯片的处理核心可以被视为电子芯片的电子电路的功能单元或模块,所述电子芯片被设计用于物理地执行每一单独的分布式软件引擎218所需的算法。例如,一个或多个处理核心中的至少一个可以实现为fpga或实现专用功
能性的任何其他形式的集成电路。因此,一个或多个电子芯片可以包括实现一个或多个处理核心中的至少一些的至少一个集成电路,其中处理核心中的至少一个实现不同的专用硬件引擎220。在一些实施方式中,电子芯片可以另外包括通用处理核心,诸如cpu和/或gpu,或者可以连接到外部cpu和/或gpu,以向它们提供对每一引擎任务的额外支持。由于每一单独的分布式3d引擎218可以从一个或多个硬件引擎220的一个或多个专用硬件核心获得资源,所以提供专用硬件引擎220使得每一单独的分布式软件引擎218能够具有更大的资源吸引力,用于在持久虚拟世界系统内执行更多数量的任务。
[0065]
处理器202可以指单个专用处理器、单个共享处理器或多个单独的处理器,其中一些可以被共享。此外,术语“处理器”的明确使用不应被解释为专门指能够执行软件的硬件,并且可以隐含地包括但不限于数字信号处理器(dsp)硬件、网络处理器、专用集成电路(asic)和fpga等。
[0066]
存储器204可以是能够存储处理器202可访问的信息的任何合适的类型,包括计算机可读介质,或者存储可以借助于电子装置读取的数据的其他介质,诸如硬盘驱动器、存储卡、闪存驱动器、rom、ram、dvd或其他光盘,以及其他可写和只读存储器。除了持久性存储体之外,存储器可以包括临时存储体。指令可以由处理器202直接执行(例如,机器代码),或者间接执行(例如,脚本)。指令可以以目标代码格式存储用于由处理器202直接处理,或者以任何其他计算机语言存储,包括可以按需解译或预先编译的脚本或独立源代码模块的集合。处理器202可以根据指令检索、存储或修改数据。例如,数据可以存储在计算机寄存器、关系数据库中,作为具有多个不同字段和记录的表、xml文档或平面文件等。数据还可以以任何计算机可读格式格式化。
[0067]
在一些实施方式中,通过使用包括在计算机脚本和计算机程序中的计算机代码来定义与虚拟对象110以及虚拟对象110之间的交互机制,并且可以通过在发生交互和交互应用的持久虚拟世界系统112中提供的应用、智能合同或其组合来实现。因此,应用、智能合同或其组合使得能够通过持久虚拟世界系统112对真实世界的所有元素之间的可能和期望的交互以及交互界面进行数字编入和表示。用户可以通过类似游戏的交互式应用的形式或通过类似游戏的交互机制来体验交互。
[0068]
图3示出了根据实施方式的通过资源管理器的分布式消息交换平台216的资源分配系统300的示意图。
[0069]
资源分配系统300将资源302分配给分布式消息交换平台216,其中资源302包括计算能力304、存储器306和网络308,并且其中资源302可以从一个或多个服务器计算机102和/或客户端装置114获得。分布式消息交换平台216从单元108中存在的一个或多个虚拟对象110接收请求,并通过向单元108发布来执行相应的分配。在一些实施方式中,为了执行这些资源分配,分布式消息交换平台216利用发布

订阅模型,由此一个或多个虚拟对象110订阅资源302已经被发布的一个或多个单元108。例如,表示用户或用户虚拟化身的虚拟对象可以在特定单元108中是活动的,触发资源管理器将用户虚拟化身所需的资源发布到相应的单元,其中所述发布通过分布式消息交换平台216来执行。因此,资源302被发布给分布式消息交换平台216一次,并被递送给订阅310它们的每一虚拟对象110。这与为提供虚拟世界而开发的典型3d引擎系统形成对比,所述系统为地图内的每一客户端装置输出完整的数据更新包,为客户端装置定制每一包,使得客户端装置仅接收可能与客户端装置和可视对象
相关的数据,导致3d引擎可能为对象可见的每一客户端装置多次发送相同的数据。
[0070]
发布

订阅模型是一种基于内容产生和消费的通信模型,它不同于通常使用的基于客户端/服务器的通信模型,在这种模型中,通信通常发生在两个节点之间:客户端和服务器。通过发布

订阅模型的此类通信可以是匿名的,这意味着服务器计算机102和/或客户端装置114不需要知道谁订阅了哪个单元108来获得资源302;同样,获得资源的虚拟对象110不需要知道资源302来自哪里。典型的发布

订阅模型实现信息交换,每个人都可以发布和接收信息,比典型的客户端

服务器模型具有更大的灵活度。然而,发布服务模型的使用也会带来低效率的问题,因为通常每一份公布都被传送给每一个参与者,他们必须分析信息以确定其相关性。另一方面,本公开的发布

订阅模型使得能够动态地将更大量的资源集中到最需要它们的单元108,例如虚拟对象110可以订阅的资源要求更高的单元108。而且,由于发布的资源量考虑了虚拟对象110的量、用户可见的持久虚拟世界系统的部分内的交互级别以及其他参数,每一虚拟对象110仅从每一订阅单元获得在相应模拟期间所需的资源。
[0071]
在一些实施方式中,资源302的计算能力304包括从一个或多个单独的分布式3d引擎(例如,图2的单独的分布式软件引擎218)获得的引擎服务314。在其他实施方式中,资源302的存储器306存储世界状态,这些状态也被发布到相应的单元108,以通过虚拟世界向订阅单元108的客户端装置提供真实世界的更新版本。在另一实施方式中,分布式消息交换平台308被包括作为相应共享的网络资源的一部分。在一些实施方式中,多个分布式软件引擎218可以在网络308内并行或依序使用,以创建彼此的协同作用。
[0072]
如本公开所使用的术语“引擎服务”是指由一个或多个3d引擎执行和提供的操作,以便实现一个或多个任务,诸如游戏或其他应用相关任务。3d引擎通常包括执行此类任务所需的软件部件,诸如库、软件开发工具包(sdk)、对象等。引擎服务包括例如与3d渲染、图形、物理、音频、人工智能、定位和通信相关的服务。每一引擎服务可以由硬件引擎所提供的单独的分布式软件引擎来执行,硬件引擎可以是专用硬件引擎、通用硬件引擎或其组合,每一硬件引擎包括专用于执行来自由单独的分布式3d引擎调用的功能的指令的电路。
[0073]
如本公开所使用的术语“世界状态”是指持久虚拟世界系统中的每一虚拟对象的状态,其可以通过包括向持久虚拟世界系统提供传感器数据的传感器的多个连接装置及时更新。连接装置可以是例如物联网(iot)装置,其可以通过网络相互通信并与服务器通信,并且可以从真实世界连续捕捉多源传感器数据,以便更新持久虚拟世界系统的虚拟副本。因此,状态更新可能由传感器数据引起。然而,世界状态的更新也可以由用户输入引起,或者由来自一个或多个3d引擎的计算(例如,人工智能推理)引起。
[0074]
在一些实施方式中,通过发布到单元108对虚拟对象110的分配可以基于当前负载和相应的计算和排序需求。参考图2,此类需求的计算和排序可以由例如分布式3d引擎212的资源管理器214来执行。排序可以帮助确定要发布给每一单元108的资源302的量,使得较低需求排序的单元可以获得比较高需求排序的单元更少的资源302。在一些实施方式中,所述需求考虑了用户通过单元内的相应客户端装置可见的持久虚拟世界系统的部分内的虚拟对象110的数量。用户化身可见的持久虚拟世界系统的部分可以由单元内化身的视野或领域来定义。例如,当用户在增强现实或虚拟现实中查看世界的一部分时,相应的化身在持久虚拟世界系统中可能是可用的,且因此用户化身的视锥可以定义此类视野。在其他实施
方式中,当用户通过“平面”用户界面(诸如通过计算机或移动电话屏幕)使用化身时,实际的用户化身在计算机屏幕中可以是可见的,其中用户化身在持久虚拟世界系统的一部分内查看和交互。在此类实施例中,用户化身可以以第一人称视角查看持久虚拟世界系统,并且第一人称的化身的视锥可以定义视野。在从俯视图看到用户化身的实施方式中,视野可以由用户化身周围的半径来定义。在所有情况下,视野可以包括用户有可能通过用户化身进行交互的多个虚拟对象110。因此,用户化身的视野内的虚拟对象越多,对特定单元的资源需求就越高,且因此经排序的需求分数就越高。在其他实施方式中,所述需求还考虑用户可见的持久虚拟世界系统的部分内的交互级别。例如,在持久虚拟世界系统的两个不同区域中和在两个不同的单元内可能有两个用户化身,两者都具有可用于交互的5个虚拟对象110。如果第一用户决定同时与所有虚拟对象110交互(例如,通过参与群体活动、对话、战斗等),则如果第二用户化身不与任何虚拟对象110交互,或者与此类虚拟对象110进行较低级别的交互,则此类单元可以具有比第二用户化身更高的排序需求且因此被分配更多的资源。在此实施例中,第一用户化身所在的虚拟单元的排序需求高于第二用户化身所在的虚拟单元。
[0075]
在其他实施方式中,所述需求还包括其他参数中的因素,诸如客户端装置和网络设备(例如,服务器和/或天线)之间的距离、用户正使用的应用类型、或者用户根据其个人用户配置文件或合同细节可能拥有的权利的类型。作为客户端装置和网络设备之间的距离的实施例,用户可能离持久虚拟世界系统的特定单元内的网络设备较远,因为每一单元可能分配有特定的网络设备,所以可能有更多的网络设备可以被同时激活以补偿潜在的较低服务质量(qos),从而导致对所述单元的较高排序的需求。作为用户正使用的应用的实施例,如果应用由于需要更高的实时渲染速率或更好的详细程度和清晰度而消耗更多的资源,诸如带宽或计算能力,那么这将代表所述单元所需资源的增加,且因此排序需求的相应增加。作为权利类型的实施例,用户可以注册为高级账户用户,以获得比其他用户更高的服务质量(qos)和更高的数据传送速度,从而导致比其他用户更高的资源分配。此外,上述所有因素可以相互组合来计算,以确定每一单元的排序需求。
[0076]
图4a

4b示出了根据实施方式的通过分布式消息交换平台216的引擎服务分配的示意图400a

b。
[0077]
图4a的示意图400a包括托管在一个或多个服务器上的多个单独的分布式软件引擎218,诸如图1的服务器计算机102。每一单独的分布式软件引擎218提供特定的引擎服务,这些服务可以经由分布式消息交换平台216发布到单元108。然后,虚拟对象110,诸如虚拟对象a

d,可以通过订阅它们所在的单元108(例如单元1

2)来获得那些引擎服务。
[0078]
如图4a所示,单独的分布式软件引擎218可以是为一个或多个特定类型的任务设计的多个动态和独立的软件模块。单独的分布式软件引擎218是独立的实体,提供单独的分布式软件引擎218已经被编程的功能性。因此,单独的分布式软件引擎218可以是例如人工智能引擎402a、3d图形引擎402b、模拟引擎402c、通信引擎402d、音频引擎402e、3d结构引擎402f、位置引擎402g和渲染引擎402h等。单独的分布式软件引擎218之间的通信通过由分布式消息交换平台216管理的功能调用来实现。
[0079]
在一些实施方式中,多个分布式软件引擎218可以在网络内并行或依序使用,以创建彼此的协同作用。例如,托管在相同或不同服务器计算机上的多个3d图形引擎402b可以
通过分布式消息交换平台216依序地或并行地分配引擎服务,以便补充彼此的引擎服务用于实现一个或多个特定任务。在一个实施例中,不同的3d图形引擎402b计算不同位置的3d模型,其中所述位置可以在相同或不同的单元108中。在另一实施例中,不同的3d图形引擎402b可以计算位于相同区域中的不同应用,其中至少一些应用被配置在ar层中,并且其中至少一些应用被配置在vr层中。举例来说,相同单元内的相同位置由vr层中的计算,而诸如在ar层中配置的纯虚拟对象和应用等任何增强部分地由和计算。此外,在此实施例中,相同或不同单元108内的连续位置可以在vr层中由计算,而ar层中的增强部分地由和计算。
[0080]
此外,在图4a中,虚拟对象a

b当前位于持久虚拟世界系统的单元1中,并且正在接收多个引擎服务,诸如由ai引擎402a提供的ai服务404、由渲染引擎402h提供的渲染服务406以及由模拟引擎402c提供的模拟服务408,这些服务对于当前单元1中虚拟对象和交互的当前应用和处理可能是必需的。另一方面,虚拟对象c

d当前位于来自持久虚拟世界系统的单元2中,并且正在接收多个引擎服务,诸如由音频引擎402e提供的音频服务410、由通信引擎402d提供的通信服务412以及由模拟引擎402c提供的模拟服务408,这些服务对于当前单元2中虚拟对象和交互的当前应用和处理可能是必需的。这些引擎服务可以由托管单独的分布式软件引擎218的同一服务器计算机、托管单独的分布式软件引擎218的多个服务器计算机或其组合来提供。
[0081]
图4b示出了示出一个或多个服务器102的单独的分布式软件引擎218、硬件引擎220和分布式3d引擎212之间的关系的示意图400b。当从位于单元108中的一个或多个虚拟对象接收请求时,一个或多个服务器计算机102上托管的资源管理器214接收请求,评估需求,并通过分布式消息交换平台216向分别托管软件和硬件引擎218

220的一个或多个服务器计算机102请求引擎服务。每一引擎服务可以由单独的分布式软件引擎218提供,诸如由相应的硬件引擎220提供的3d引擎1

n,诸如硬件引擎1

n,其可以是专用硬件引擎、通用硬件引擎或其组合。分布式消息交换平台216然后接收相应的引擎服务,并将它们发布到需要引擎服务的一个或多个单元108。然后,请求服务的虚拟对象订阅相应的单元来通过分布式消息交换平台216接收必要的引擎服务。
[0082]
图5a

5c示出了根据实施方式的持久虚拟世界系统的子宇宙(在本公开还简称为“宇宙”)、流和其他元素之间的关系的示意图500a

c。
[0083]
参考图5a的示意图500a,可以用于特定目标模拟的多个连接的虚拟对象110可以构成流502,其中每一流502被配置成从相应的虚拟对象110获得数据并执行特定目标模拟。每一流502可以连接到根节点504或根模拟对象,根节点504或根模拟对象生成多个流相关虚拟对象110。流502可以另外连接到导入功能506,所述导入功能定义了流502为了执行所需的模拟而需要的虚拟对象110。例如,可能存在交通流502,其包括车辆、人、交通信号灯和甚至天气状况的多个虚拟副本。换句话说,流502包括可能与流502的特定功能相关的任意数量的虚拟对象110,诸如虚拟副本。在此实施例中,导入功能506可以定义交通模拟要考虑哪些虚拟对象110。流502然后可以通过使用虚拟和/或真实传感器的组合并执行交通场景的特定目标模拟来读取每一相应虚拟对象110的行为。例如,目标可以是优化交通流,以预定的平均速度运行,或者减少交通堵塞的机会。例如,此类模拟可以用于驾驶无人驾驶汽车
或无人机。流502的另一实施例可以是能耗,其可以包括建筑物的虚拟副本,包括电力消耗数据,以及特定的能耗虚拟副本,诸如机器、计算机、家电等。
[0084]
继续参照图5a的描述,包括预定环境中的所有或大多数虚拟对象110的多个流502形成子宇宙,在本公开称为宇宙508。例如,城市宇宙508可以表示城市的所有或大部分建筑物、树木、人、街道、交通信号灯、车辆等。在一些实施方式中,在宇宙508内还可以有宇宙508,诸如在城市宇宙内的房屋宇宙,其可以包括房屋的外部和内部的3d设计,以及房屋的所有或大部分家电、人、墙壁、能耗数据等。
[0085]
参考图5b的示意图500b,宇宙508的网络(诸如宇宙1

n)可以形成持久虚拟世界系统112。例如,城市宇宙可以连接到其他城市宇宙以形成国家宇宙。如果国家宇宙没有连接到任何其他宇宙508,则国家宇宙可以表示持久虚拟世界系统112的宇宙。
[0086]
参考图5c的示意图500c,示出了包括多个流502(诸如流1

4)的宇宙508的空间图,每一流包括多个流相关虚拟对象110。
[0087]
图6a

6b示出了根据实施方式的将宇宙508划分为多个单元108的示意图600a

b。
[0088]
如图6a所示,在资源管理器基于来自虚拟对象110的请求来请求资源时,表示世界的一个区域的未分区宇宙602可以被划分为包括多个单元606的分区宇宙604。较高的资源密集型单元608,诸如包括较高数量的虚拟对象110的单元,可以被进一步划分为更多数量的单元606。同样,具有较少数量的虚拟对象110的单元606可以被划分为较少数量的单元606。因此,每一单元606被指派有资源,其中较高资源密集型单元608比较低资源密集型单元606接收更多的资源。例如,较高资源密集型单元608内的一些单元606比剩余单元606包括更多的虚拟对象110。然而,可以理解,分配给每一单元606的资源量不仅与特定单元606中的虚拟对象110的数量相关联,还与以下各项相关联:用户可见的持久虚拟世界系统的部分内的交互级别;用户与诸如服务器和/或天线等网络设备之间的距离;用户正使用的应用类型;用户可能拥有的权利类型,取决于他的个人用户配置文件或合同细节;或它们的组合。然而,为了简化和说明性目的,图6a

6b仅利用虚拟对象110作为用于评估需求和管理对一个或多个单元的分配的参数。
[0089]
在一些实施方式中,将真实世界表示为单元的数据结构是八叉树数据结构,其中每一单元被表示为八叉树数据结构内的体元。在一些实施方式中,八叉树数据结构中使用的体元是稀疏体元,用于真实世界的较大部分的布置。在其他实施方式中,八叉树数据结构中使用的体元是密集体元,用于真实世界的较小部分的布置。八叉树和所选择的稀疏或密集体元是用于在虚拟世界中表示三维空间的合适数据结构,诸如在表示真实世界的持久虚拟世界系统中。八叉树能够快速且容易地组合多个对象,实现相对简单的渲染算法,能够执行快速空间搜索,并且能够通过真实对象的虚拟化(例如,通过lidar或其他图像扫描方法)来产生模型。对于包括表示真实世界的至少一个部分的3d虚拟世界的虚拟世界,因此世界的此类3d分区使得能够在用户可能正在观看和/或交互的区域上进行基于三维的引擎服务和云资源分配。然而,在处理2d世界的情况时,也可以使用四叉树。在其他实施方式中,可以利用其他合适的数据结构,诸如bsp树、稀疏体元八叉树、3d阵列、kd树、点云、线框、边界表示(b

rep)、构造性立体几何树(csg树)、二叉树和六边形结构等。
[0090]
在一些实施方式中,数据结构包括可以应用于数据的数据值、关系和功能或操作的集合,其中数据至少定义了持久虚拟世界系统中虚拟对象的几何形状和坐标。例如,正确
的数据结构选择取决于数据的来源、渲染期间寻求的几何精度;渲染是实时完成的还是预先渲染的;渲染是否经由云服务器、经由用户装置、雾装置或其组合来执行;使用持久虚拟世界系统的特定应用,例如,与其他类型的应用相比,医疗或科学应用可能需要更高级别的清晰度;来自服务器和来自用户装置的存储器容量,以及因此期望的存储器消耗;以及其他。
[0091]
此外,在图6a中,在结束与一个或多个请求相关联的事件之后,资源被恢复到原始的一个或多个源。随后,分区的宇宙604被合并回原始数量的单元606,如从分区的宇宙604返回指向未分区的宇宙602的弯曲箭头610所示。通过这种方式,系统通过选择具有较高需求的感兴趣区域,并在不再需要资源时将资源返回到它们的来源,来实现资源的高效和动态分配。
[0092]
图6b示出了八叉树数据结构600b的图示。八叉树数据结构600b直接表示数据结构中的体积,诸如表示现实世界的至少一部分的体积。八叉树数据结构600b的主要优点是快速和容易地组合几个对象;实现简单的渲染;能够执行快速空间搜索;以及通过真实对象的数字化(例如,lidar或其他图像扫描)实现模型产生。
[0093]
八叉树数据结构600b是树数据结构,其中每一内部节点具有八个子节点或八分区。宇宙被分区得越深,所产生的子节点的层级就越深,并且分配给需要资源的更深分区的单元的资源就越多。因此,在图6b的实施例中,八叉树数据结构600b已产生三个层级612的子节点,层级1

3,加上代表整个宇宙的根节点614。八叉树数据结构600b中已经加粗的区域表示具有虚拟对象110的区域。宇宙的八叉树数据结构600b的上部层级表示需要较少分区的区域,且因此需要较少资源,因为例如位于其中的虚拟对象110较少。相比来说,包括更多数量的虚拟对象110的下部层级需要更多的分区,且因此需要更多的资源。
[0094]
图7示出了根据实施方式将宇宙划分为多个单元的另一实施方式的示意图700。
[0095]
示意图700示出了包括三个流702(流1

3)的分区宇宙604,其中每一流702包括一个或多个特定于流的虚拟对象110,并且其中每一流702被编程为被启用或禁用以供在客户端装置上查看和交互。在其他实施方式中,每一流702与一个或多个用户应用相关联。每一流702可以被配置成从相应的虚拟对象110获得数据,并执行主题和/或目标特定的模拟。每一流702可以连接到生成多个流相关虚拟对象110的根节点或根模拟对象。流702可以另外连接到定义流执行模拟所需的虚拟对象110的导入功能。
[0096]
例如,如果观众正在利用餐馆应用程序,则用户可以选择启用分区的宇宙704的餐馆流(例如,流1),由此只有餐馆将被展示或突出显示给用户。类似地,交通相关的应用可以被配置成实现向用户展示或突出显示交通的交通流(例如,流2)。在另一实施例中,包括多个纯虚拟对象的游戏相关应用可以启用游戏流(例如,流3),展示或突出显示与游戏应用相关联的纯虚拟对象。在当前实施例中,由于具有更多的虚拟对象110,流3可能比其他流1

2需要更多的资源量。因此,所有流1

3的总和将产生分区的宇宙704。在一些实施方式中,根据启用了哪些流702,启用的流702被用户视为在客户端装置上输出的渲染或未渲染的媒体流,其中流702包括3d图像数据、3d几何图形、3d实体、3d感官数据、3d动态对象、视频数据、音频数据、文本数据、时间数据、位置数据、定向数据、触觉数据和照明数据等,或者此类媒体内容的组合。因此,每一流702可以由一个或多个硬件引擎所提供的一个或多个单独的分布式软件引擎来计算,并且任选地被渲染。在一些实施方式中,一个或多个单独的分布式软
件引擎包括指令,所述指令一旦被一个或多个硬件引擎执行,就触发流702的端到端加密(e2ee),使得只有与特定流702相关的用户可以接收和解密流702的媒体内容。例如,此类实施方式可以在利用端到端串流服务的视频通话期间使用。
[0097]
图8示出了根据实施方式的客户端装置114的示意图。图9的一些元件可以类似于图1

8的元件,且因此相似或相同的附图标记可以用来描述那些元件。
[0098]
本公开的客户端装置114可以包括操作部件,诸如输入/输出(i/o)模块802;电源804;存储器806;形成跟踪模块812的感测机构808和收发器810;和网络接口814,它们都可操作地连接到处理器816。
[0099]
i/o模块802被实现为计算硬件和软件,其被配置成与用户交互并向一个或多个其他系统部件提供用户输入数据。例如,i/o模块802可以被配置成与用户交互,基于所述交互产生用户输入数据,并且在经由网络传送到其他处理系统(例如服务器)之前,将用户输入数据提供给处理器816。在另一实施例中,i/o模块802被实现为被配置成与客户端装置114交互的外部计算指向装置(例如,触摸屏、鼠标、3d控件、操纵杆、游戏手柄等)和/或文本输入装置(例如,键盘、听写工具等)。在其他实施方式中,i/o模块802可以提供与上文所描述相比附加、更少或不同的功能性。
[0100]
电源804被实现为被配置成向客户端装置114供电的计算硬件和软件。在一个实施方式中,电源804可以是电池。电源804可以内置于客户端装置114中或者可从客户端装置114移除,并且可以是可充电的或者不可充电的。在一个实施方式中,可以通过用另一电源804替换一个电源804来为客户端装置114重新供电。在另一实施方式中,电源804可以通过连接到充电源的电缆来再充电,诸如附接到个人计算机的通用串行总线(“usb”)、firewire、以太网、雷电(thunderbolt)或头戴式耳机电缆。在另一实施方式中,电源804可以通过感应充电来再充电,其中当两者紧密接近时,电磁场用于将能量从感应充电器转移到电源804,但是不需要经由电缆彼此插入。在另一实施方式中,扩展坞可以用于方便充电。
[0101]
存储器806可以被实现为适于存储应用程序指令和存储由多个感测机构808捕捉的传感器数据的计算硬件和软件。存储器806可以是能够存储处理器816可访问的信息的任何合适的类型,包括计算机可读介质,或者存储可以借助于电子装置读取的数据的其他介质,诸如硬盘驱动器、存储卡、闪存驱动器、rom、ram、dvd或其他光盘,以及其他可写和只读存储器。除了持久性存储体之外,存储器806可以包括临时存储体。
[0102]
感测机构808可以被实现为适于从真实世界获得各种传感器数据并确定/跟踪客户端装置114的位置和定向的计算硬件和软件。感测机构808可以包括但不限于以下各项中的一个或多个,包括:一个或多个温度传感器、接近传感器、惯性传感器、红外传感器、污染传感器(例如,气体传感器)、压力传感器、光传感器、超声波传感器、烟雾传感器、触摸传感器、色度传感器、湿度传感器、水传感器、电传感器或其组合。特别地,感测机构808包括一个或多个惯性测量单元(imu)、加速度计和陀螺仪。imu被配置成通过使用加速度计和陀螺仪的组合来测量和报告客户端装置114的速度、加速度、角动量、平移速度、旋转速度和其他遥测元数据。imu内和/或与imu分开配置的加速度计可以被配置成测量交互装置的加速度,包括地球引力场引起的加速度。在一个实施方式中,加速度计包括能够在三个正交方向上测量加速度的三轴加速度计。
[0103]
收发器810可以被实现为计算硬件和软件,其被配置成使得客户端装置114能够从
天线接收无线无线电波并将数据发送回天线。在一些实施方式中,可以使用mmw收发器,其可以被配置成从天线接收mmw波信号,并且在与沉浸式内容交互时将数据发送回天线。收发器810可以是双向通信收发器810。
[0104]
在实施方式中,跟踪模块812可以通过将imu、加速度计和陀螺仪的能力与收发器810所提供的位置跟踪相结合来实现,并且基于mmw的天线所提供的精确跟踪、低等待时间和高qos功能性可以实现亚厘米或亚毫米的位置和定向跟踪,这可以在跟踪客户端装置114的实时位置和定向时提高精度。在替代实施方式中,感测机构808和收发器810可以在单个跟踪模块装置中耦合在一起。
[0105]
网络接口814可以被实现为计算软件和硬件,以通信地连接到网络,从网络接收由服务器或由客户端装置114发送的计算机可读程序指令,并且转发计算机可读程序指令以存储在存储器806中供处理器816执行。
[0106]
处理器816可以被实现为被配置成接收和处理传感器数据的计算硬件和软件。例如,处理器816可以被配置成提供成像请求、接收成像数据、将成像数据处理成环境或其他数据、处理用户输入数据和/或成像数据以产生用户交互数据、执行基于边缘的(装置上的)机器学习训练和推理、提供服务器请求、接收服务器响应、和/或向一个或多个其他系统部件提供用户交互数据、环境数据和内容对象数据。例如,处理器816可以从i/o模块802接收用户输入数据,并且可以分别实现存储在存储器806中的应用程序。在其他实施例中,处理器816可以从感测机构808接收从真实世界捕捉的传感器数据,或者可以通过跟踪模块812接收客户端装置114的精确位置和定向,并且可以在将数据发送到服务器以供进一步处理之前准备一些数据。举例来说,处理器816可以实现数据准备期间所需的一些步骤,包括模拟或数字信号处理算法,诸如在将数据发送到服务器之前进行原始数据缩减或对传感器数据进行过滤。
[0107]
图9示出了根据实施方式的通过分布式3d引擎实现动态负载平衡的计算机实现的方法900的框图。
[0108]
在步骤902,实现虚拟或真实世界的多维3d引擎计算和基于虚拟化的动态负载平衡的方法900通过在服务器计算机的存储器中提供数据结构而开始,所述数据结构将真实世界的至少一个部分表示为存储形成持久虚拟世界系统的虚拟对象的多个单元,其中至少一些虚拟对象是相应真实世界元素的虚拟副本。方法在步骤904中在至少一个服务器计算机的存储器中继续,分布式3d引擎包括在分布式部署中实现的资源管理器和多个单独的分布式软件引擎。
[0109]
然后,在步骤906,方法通过资源管理器基于当前负载继续计算每一单独单元的需求,其中所述需求进一步考虑虚拟对象的数量和用户化身可见的持久虚拟世界系统的部分内的交互级别中的一个或多个。在其他实施方式中,所述需求考虑了其他参数,诸如用户和网络设备(诸如服务器和/或天线)之间的距离、用户正使用的应用类型、或用户根据其个人用户配置文件或合同细节可能拥有的权利类型。基于需求,方法在步骤908继续,根据需求对单元进行排序。随后,基于排序的需求,方法在步骤910中通过动态地将资源分配给一个或多个较高的资源密集型单元来继续。
[0110]
图10示出了根据实施方式的计算机实现的方法1000的框图,所述方法包括通过分布式3d引擎实现动态负载平衡的方法900的其他步骤。
[0111]
根据实施方式,方法1000从步骤1002开始,基于所计算的需求,将世界的至少一个部分的较高资源密集型的感兴趣区域分区成更多数量的单元。然后,在步骤1004,方法1000通过将来自一个或多个源的相应资源分配给每一单元来继续。在结束与较高资源密集型的感兴趣区域内的一个或多个请求相关联的事件之后,方法1000在步骤1006中通过将资源恢复到原始的一个或多个源来继续。最后,在步骤1008,方法1000通过将宇宙合并回原始数量的单元而结束。
[0112]
图11示出了根据实施方式的描述通过分布式消息交换平台的资源分配步骤的方法1100的框图。
[0113]
方法1100可以在步骤1102开始,通过资源管理器的分布式消息交换平台使用发布

订阅模型向相应的单元发布相应的资源。然后,在步骤1104,方法1100通过由一个或多个虚拟对象订阅感兴趣的单元来结束,以便通过分布式消息交换平台获得所需的资源。
[0114]
在一些实施方式中,方法1200还包括通过分布式消息交换平台与一个或多个客户端装置、服务器计算机或其组合共享世界的至少一个部分的动态更新状态,所述客户端装置和/或服务器计算机可以订阅所述动态更新状态以获得世界的更新版本。在又一实施方式中,世界的至少一个部分的状态通过多个连接装置、通过用户输入、通过服务器计算或其组合而获得,所述连接装置包括向持久虚拟世界系统提供传感器数据的传感器。
[0115]
虽然已经在附图中描述和示出了某些实施方式,但是应理解,此类实施方式仅仅是说明性的,而不是对广泛的公开内容的限制,并且本公开不限于所示出和描述的具体构造和布置,因为本领域普通技术人员可以想到各种其他修改。因此,所述描述被视为是说明性的而不是限制性的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1