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

物理模拟同步方法、系统、介质和计算机程序产品与流程

2022-04-25 03:05:20 来源:中国专利 TAG:


1.本发明涉及虚拟场景物理模拟技术领域,特别涉及物理模拟同步方法、系统、介质和计算机程序产品。


背景技术:

2.物理模拟是指通过计算机计算一个或多个虚拟物体发生物理运动行为时的状态变化过程,比如车辆的加减速、车辆的碰撞等等,该过程的计算结果需要尽可能接近真实世界中的物理运动规律。随着3d虚拟场景的广泛应用,无论是工程仿真、动画效果还是游戏中的物理效果,都需要大量的物理模拟运算,也就是在虚拟场景中对目标物体进行物理状态计算。
3.特别是对于电子游戏,物理模拟计算都放在客户端(如计算机、手机等)完成,但是受限于技术水平,支持物理模拟计算的以单机游戏为主,少有支持物理模拟的联机游戏,即便有,需要在服务器完成计算过程并同步计算结果给所有参与的客户端,服务器资源开销也很高,无法支持大规模玩家参与的场景。现有技术中也有两机互联的情况,这种情况不需要服务器参与,其中一台作为主机进行物理模拟计算。仍然无法满足大批量客户端参与时的物理模拟计算需求。
4.因此,亟需对服务器性能消耗小、物理模拟同步效果好的物理模拟同步方案。


技术实现要素:

5.本发明的目的在于提供物理模拟同步方法、系统、介质和计算机程序产品,在充分利用用户设备算力的情况下大大减少了服务器对物理模拟的计算量。
6.本技术的实施方式公开了一种物理模拟同步方法,用于运行有虚拟场景的第二用户设备,包括:
7.对该虚拟场景中的第一区域进行物理模拟,得到第一物理模拟结果;
8.接收来自第一用户设备的对第一区域的第二物理模拟结果;
9.判断第二物理模拟结果与第一物理模拟结果是否一致,如果不一致,则输出第二物理模拟结果,如果一致,则输出第一物理模拟结果。
10.可选地,第一用户设备根据预定规则,在虚拟场景中确定第一用户设备的核心区域,该核心区域包括第一区域。
11.可选地,预定规则包括:核心区域为虚拟场景中,以第一用户设备在虚拟场景中控制的第一虚拟物为中心的预定范围内的区域。
12.可选地,预定规则还包括:以第一虚拟物的中心位置为球心,以第一虚拟物的运动速度与预定间隔时间的乘积为半径的球形区域为核心区域。
13.可选地,预定规则还包括:根据已有的物理模拟结果,确定与第一虚拟物关联的关联虚拟物,其中,该关联虚拟物包括在预定时间内第一虚拟物将会碰撞的其他虚拟物;
14.将该其他虚拟物在虚拟场景中所占的区域归入核心区域。
15.可选地,方法还包括:
16.对虚拟场景中的第二区域进行物理模拟,得到第三物理模拟结果,第一区域为第二区域与第一用户设备的核心区域的交集区域,第三物理模拟结果包括第一物理模拟结果。
17.可选地,方法还包括:
18.输出第三物理模拟结果中第一物理模拟结果以外的物理模拟结果。
19.可选地,第一物理模拟结果和第二物理模拟结果包括帧数据,帧数据包括帧号、虚拟场景中的虚拟物的位置、角速度、线速度、旋转姿态。
20.可选地,进行物理模拟,包括:
21.每经过预定间隔时间,基于已有的帧数据,根据物理约束,计算出新的帧数据,其中,新的帧数据的帧号相比前一帧数据的帧号增加预定值。
22.可选地,输出第二物理模拟结果,还包括:
23.对第二物理模拟结果进行追帧,追帧包括,在第二物理模拟结果的基础上,继续进行物理模拟,直到最新的帧数据的帧号与第一物理模拟结果的最新的帧数据的帧号同步。
24.根据权利要求10的方法,输出第二物理模拟结果,还包括:
25.对第二物理模拟结果中的帧数据进行平滑处理,平滑处理包括插值处理。
26.一种物理模拟同步系统,包括运行有虚拟场景的第一用户设备和第二用户设备,其中,
27.第一用户设备根据预定规则,在虚拟场景中确定第一用户设备的核心区域,该核心区域包括第一区域,并且
28.对第一区域进行物理模拟,得到第二物理模拟结果,并且
29.发送第二物理模拟结果;
30.第二用户设备对虚拟场景中的第一区域进行物理模拟,得到第一物理模拟结果,并且
31.接收第二物理模拟结果,并且
32.判断第二物理模拟结果与第一物理模拟结果是否一致,如果不一致,则输出第二物理模拟结果,如果一致,则输出第一物理模拟结果。
33.可选地,预定规则包括:核心区域为虚拟场景中,以第一用户设备在虚拟场景中控制的第一虚拟物为中心的预定范围内的区域。
34.一种计算机存储介质,在该计算机存储介质上存储有指令,当该指令在计算机上运行时,使得该计算机执行根据本发明的实施方式的物理模拟同步方法。
35.一种计算机程序产品,包括计算机可执行指令,该指令被处理器执行以实施根据本发明的实施方式的物理模拟同步方法。
36.本发明实施方式与现有技术相比,主要区别及其效果在于:
37.在本发明中,第一用户设备根据预定规则,在虚拟场景中确定第一用户设备的核心区域,该核心区域包括第一区域,并且对第一区域进行物理模拟,得到第二物理模拟结果,并且发送第二物理模拟结果;第二用户设备对虚拟场景中的第一区域进行物理模拟,得到第一物理模拟结果,并且接收第二物理模拟结果,并且判断第二物理模拟结果与第一物理模拟结果是否一致,如果不一致,则输出第二物理模拟结果,如果一致,则输出第一物理
模拟结果。采用分布式同步,不同的用户设备对虚拟场景中不同的区域进行模拟,并且每个用户设备具有对应的核心区域。对于每个客户端来说,会将核心区域的模拟结果发送给其他用户设备,而如果非核心区域内的模拟结果与接收到来自其他用户设备的该区域的模拟结果存在冲突,则使用该接收到的其他用户设备的模拟结果以进行修正(因为该区域属于该其他用户设备的核心区域)。每个用户设备只需模拟虚拟场景中的一部分区域,服务器只需负责数据分发就能实现各用户设备上的模拟结果一致,在充分利用用户设备算力的情况下大大减少了服务器对物理模拟的计算量,使物理联机游戏成为可能。用户设备本地的模拟策略使物理联网游戏的物理表现更加自然合理。
38.在本技术中,物理模拟结果包括帧数据,该帧数据包括帧号、虚拟场景中的虚拟物的位置、角速度、线速度、旋转姿态;进行物理模拟包括:每经过预定间隔时间,基于已有的帧数据,根据物理约束,计算出新的帧数据,其中,新的帧数据的帧号相比前一帧数据的帧号增加预定值。所有状态存为帧数据,是物理状态的比对,减少网络延迟对于物理状态的影响,使物理状态的比较更加准确。
39.在本技术中,对第二物理模拟结果进行追帧,该追帧包括,在该第二物理模拟结果的基础上,继续进行物理模拟,直到最新的帧数据的帧号与第一物理模拟结果的最新的帧数据的帧号同步。追帧可以让冲突产生之后的物体回到当前帧的正确状态,否则会由于帧落后产生不太好的网络同步效果。
40.在本技术中,对该第二物理模拟结果中的帧数据进行平滑处理,该平滑处理包括插值。平滑策略让物体的运动更加柔顺自然。
41.在本技术中,第一用户设备根据预定规则,在虚拟场景中确定第一用户设备的核心区域;预定规则包括:核心区域为虚拟场景中,以第一用户设备在虚拟场景中控制的第一虚拟物为中心的预定范围内的区域;根据已有的物理模拟结果,确定与第一虚拟物关联的关联虚拟物,其中,关联虚拟物包括在预定时间内该第一虚拟物将会碰撞的其他虚拟物;将该其他虚拟物在虚拟场景中所占的区域归入核心区域。良好的辖区(即,用户设备的核心区域)划分算法让属于不同辖区的物体基本没有交集,减少了属于不同辖区物体的模拟造成的不一致性。
附图说明
42.图1a示出根据本技术的实施例的物理模拟同步方法的实施场景的示意图。
43.图1b示出根据本技术的实施例的物理模拟同步方法的虚拟场景的示意图。
44.图2a示出了根据本技术的实施例的物理模拟同步方法的流程图。
45.图2b示出了根据本技术的实施例的物理模拟同步方法的流程图。
46.图3示出根据本技术的实施例的物理模拟的帧数据的示意图。
47.图4示出根据本技术的实施例的物理模拟同步系统的框图。
48.图5示出根据本技术的实施例的用户设备的框图。
具体实施方式
49.下面结合具体实施例和附图对本技术做进一步说明。可以理解的是,此处描述的具体实施例仅仅是为了解释本技术,而非对本技术的限定。此外,为了便于描述,附图中仅
示出了与本技术相关的部分而非全部的结构或过程。应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项。
50.应当理解的是,虽然在本文中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了进行区分,而不能理解为指示或暗示相对重要性。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
51.在本技术的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本实施例中的具体含义。
52.本技术的说明性实施例包括但不限于物理模拟同步方法、系统、介质和计算机程序产品。
53.将使用本领域技术人员通常采用的术语来描述说明性实施例的各个方面,以将他们工作的实质传达给本领域其他技术人员。然而,对于本领域技术人员来说,使用部分所描述的特征来施行一些替代性实施例是显而易见的。出于解释的目的,阐述了具体的数字和配置,以便对说明性实施例进行更加透彻的理解。然而,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实施替代实施例。在一些其他情况下,本文省略或简化了一些众所周知的特征,以避免使本技术的说明性实施例模糊不清。
54.此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个彼此分离的操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖描述的顺序,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序也可以被重新安排。当所描述的操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
55.说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用表示所描述的实施例可以包括特定特征、结构或性质,但是每个实施例也可能或不是必需包括特定的特征、结构或性质。而且,这些短语不一定是针对同一实施例。此外,当结合具体实施例描述特定特征,本领域技术人员的知识能够影响到这些特征与其他实施例的结合,无论这些实施例是否被明确描述。
56.除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义词。短语“a和/或b”表示“(a)、(b)或(a和b)”。
57.如本文所使用的,术语“模块”可以指代,作为其中的一部分,或者包括:用于运行一个或多个软件或固件程序的存储器(共享、专用或组)、专用集成电路(asic)、电子电路和/或处理器(共享、专用或组)、组合逻辑电路、和/或提供所述功能的其他合适组件。
58.在附图中,可能以特定布置和/或顺序示出了一些结构或方法特征。然而,应当理解的是,这样的特定布置和/或排序不是必需的。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来进行说明。另外,特定附图中所包含得结构或方法特征并不意味着所有实施例都需要包含这样的特征,在一些实施例中,可以不包含这些特征或者可以与将这些特征与其他特征进行组合。
59.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术的实施方式作进一步地详细描述。
60.图1a示出根据本技术的实施例的物理模拟同步方法的实施场景的示意图。
61.如图1a所示,场景包括用户设备101和103,用户设备101和103可以是台式用户设备或移动用户设备,移动用户设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。用户设备101和103可以安装有可以进行访问远程服务的应用,例如浏览器或者客户端。本技术实施例涉及的应用可以是软件客户端,也可以是网页、小程序等客户端,若应用为网页、小程序等客户端时,后台服务器则是与软件或是网页、小程序等相对应的后台服务器,不限制客户端的具体类型。
62.场景还包括网络设备105,网络设备105可以为用户设备101和103上安装的应用所对应的后台服务器,例如可以是独立的物理服务器或者是多个服务器组成的服务器集群或分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
63.用户设备101和103与网络设备105之间通过网络(图中未示出)连接,网络包括一个或多个,并且可以包括各种连接类型,例如有线、无线通信链路、云或者光纤电缆等等,上述的网络具体实例可包括用户设备101和103的通信供应商提供的互联网。
64.图1b示出根据本技术的实施例的物理模拟同步方法的虚拟场景的示意图。
65.用户设备101和103可以是作为客户端的智能手机,用户设备101和103上分别运行着虚拟场景100(例如,网络游戏场景),虚拟场景100中包括一个或多个虚拟物体。当用户a和用户b分别操作用户设备101和103运行虚拟场景100进行联机游戏时,用户设备101和103分别对该一个或多个虚拟物体进行物理模拟,其中,用户a操作用户设备101控制虚拟物体102a,用户b操作用户设备103控制虚拟物体106a。物理模拟可以指根据力学原理对虚拟场景中的虚拟物体进行运动学或动力学模拟。在该情景中,用户设备101和103分别运行的虚拟场景100需要同步,也就是同一场景下的物理过程状态在不同用户设备上显示一致。目前的同步技术都存在一定的问题,如背景技术所述,以服务器运算为主并向各客户端同步计算结果的方式很难支持多用户参与的场景,运算资源消耗非常高
66.针对以上问题,本技术的实施例提出了一种物理模拟同步方法,下面结合图1a和1b进行示例性说明。如图1a所示的用户设备101控制着虚拟物体102a,用户设备101根据预定规则,如图1b所示的虚拟场景100中确定用户设备101(即第一用户设备)关联的第一核心区域102,该第一核心区域102中包括虚拟物体102a、102b和102c。用户设备101会根据用户输入的指令操控虚拟物体102a,并在此基础上对虚拟场景100中区域104(该区域104可以根据虚拟物体102a在虚拟场景100中的位置和用户设备101的屏幕尺寸来确定,也可以根据用户设备101的算力容量来确定,但不限于此)内所有的虚拟物体进行物理模拟,其中,区域104包括第一核心区域102。然后,用户设备101将第一核心区域102中的虚拟物体102a、102b和102c的物理模拟结果发送给服务器105。同样的,用户设备103(即第二用户设备)控制着虚拟物体106a,用户设备103根据预定规则,在虚拟场景100中确定用户设备103关联的第二核心区域106,该第二核心区域106中包括虚拟物体106a。用户设备103会根据用户输入的指令操控虚拟物体106a,并在此基础上对虚拟场景100中区域108(即,第二区域,该区域108可
以根据虚拟物体106a在虚拟场景100中的位置和用户设备103的屏幕尺寸来确定,也可以根据用户设备103的算力容量来确定,但不限于此)内所有的虚拟物体进行物理模拟,其中,区域108包括第二核心区域106。其中,区域108与第一核心区域102的交集为交集区域110(即第一区域),用户设备103对区域108的物理模拟结果包括了用户设备103对该交集区域110的第一物理模拟结果,用户设备101对第一核心区域102的物理模拟结果包括了用户设备101对该交集区域110的第二物理模拟结果。然后,在本发明其他实施方式中,用户设备103将第二核心区域106中的虚拟物体106a的物理模拟结果作为另一第二物理模拟结果发送给服务器105,供其他相关用户设备接收后进行判断比较。同时,服务器105会将用户设备101的第二物理模拟结果发送给用户设备103,用户设备103将该第二物理模拟结果与第一物理模拟结果进行对比,如果一致,则用户设备103输出自身对区域108的第三物理模拟结果(例如,根据这些物理模拟结果生成动画,然后将该动画通过显示屏输出),显然,第三物理模拟结果包含了第一物理模拟结果,因为第三物理模拟结果对应的区域108包含了第一物理模拟结果对应的交集区域110;如果不一致,则输出第二物理模拟结果和用户设备103对区域108中交集区域110以外的其他区域的物理模拟结果,这一过程中,可以将第二物理模拟结果与区域108中交集区域110以外的其他区域的物理模拟结果进行拼接后作为整体输出。同样地,用户设备101也执行与用户设备103类似的操作。
67.可以理解的是,本技术中示出了两个用户设备,但不限于此,用户设备的数量可以是任意,且其中任意两个用户设备之间都可以实施本技术中的物理模拟同步方法。
68.在本技术中,采用分布式同步,不同的用户设备对虚拟场景中不同的区域进行模拟,并且每个用户设备具有对应的核心区域。对于每个客户端来说,会将核心区域的模拟结果发送给其他用户设备,而如果非核心区域内的模拟结果与接收到来自其他用户设备的该区域的模拟结果存在冲突,则使用该接收到的其他用户设备的模拟结果以进行修正(因为该区域属于该其他用户设备的核心区域)。每个用户设备只需模拟虚拟场景中的一部分区域,服务器只需负责数据分发就能实现各用户设备上的模拟结果一致,在充分利用用户设备算力的情况下大大减少了服务器对于物理模拟的计算量,使物理联机游戏成为可能。用户设备本地的模拟策略使物理联网游戏的物理表现更加自然合理。
69.图2a和2b示出了根据本技术的实施例的物理模拟同步方法的流程图。结合图1a和1b说明,图2a的流程图所显示的方法用于运行有虚拟场景的第二用户设备,该流程图中包括:
70.步骤202,对该虚拟场景中的第一区域进行物理模拟,得到第一物理模拟结果;例如,用户设备103(即第二用户设备)会根据用户输入的指令操控虚拟物体106a,并在此基础上对虚拟场景100中区域108(该区域108可以根据虚拟物体106a在虚拟场景100中的位置和用户设备103的屏幕尺寸来确定,也可以根据用户设备103的算力容量来确定,但不限于此)内所有的虚拟物体进行物理模拟,其中,区域108包括第二核心区域106。其中,区域108与第一核心区域102的交集为交集区域110(即第一区域),用户设备103对区域108的物理模拟结果包括了用户设备103对该交集区域110的第一物理模拟结果。
71.步骤204,接收来自第一用户设备的对该第一区域的第二物理模拟结果;例如,用户设备101(即第一用户设备)将第一核心区域102的物理模拟结果发送给服务器105,其中,用户设备101对第一核心区域102的物理模拟结果包括了用户设备101对该交集区域110的
第二物理模拟结果;然后服务器105会将用户设备101的第二物理模拟结果发送给用户设备103。
72.步骤206,判断该第二物理模拟结果与该第一物理模拟结果是否一致,
73.如果是,则在步骤208,输出该第一物理模拟结果,
74.否则在步骤210,输出该第二物理模拟结果。例如,用户设备103将该第二物理模拟结果与第一物理模拟结果进行对比,如果一致,则用户设备103输出自身对区域108的第三物理模拟结果(例如,根据这些物理模拟结果生成动画,然后将该动画通过显示屏输出),显然,第三物理模拟结果包含了第一物理模拟结果,因为第三物理模拟结果对应的区域108包含了第一物理模拟结果对应的交集区域110;如果不一致,则输出第二物理模拟结果和自身对区域108中交集区域110以外的其他区域的物理模拟结果,这一过程中,可以将第二物理模拟结果与区域108中交集区域110以外的其他区域的物理模拟结果进行拼接后作为整体输出。
75.结合图1a和1b说明,图2b的流程图所显示的方法用于运行有虚拟场景的第一用户设备,该流程图中包括:
76.步骤212,根据预定规则,在该虚拟场景中确定该第一用户设备的核心区域,该核心区域包括第一区域;例如,用户设备101(即第一用户设备)控制着虚拟物体102a,用户设备101根据预定规则,在虚拟场景100中确定用户设备101关联的第一核心区域102,该第一核心区域102中包括虚拟物体102a、102b和102c。其中,区域108与该第一核心区域102的交集为交集区域110(即第一区域)。
77.步骤214,对该第一区域进行物理模拟,得到第二物理模拟结果;例如,用户设备101会根据用户输入的指令操控虚拟物体102a,并在此基础上对虚拟场景100中区域104(该区域104可以根据虚拟物体102a在虚拟场景100中的位置和用户设备101的屏幕尺寸来确定,也可以根据用户设备101的算力容量来确定,但不限于此)内所有的虚拟物体进行物理模拟,其中,区域104包括第一核心区域102。其中,区域108与第一核心区域102的交集为交集区域110(即第一区域),用户设备101对第一核心区域102的物理模拟结果包括了用户设备101对该交集区域110的第二物理模拟结果。
78.步骤216,将该第二物理模拟结果发送给第二用户设备。例如,用户设备101将第一核心区域102中的虚拟物体102a、102b和102c的物理模拟结果发送给服务器105。后面,服务器105会将用户设备101的第二物理模拟结果发送给用户设备103。
79.在本技术中,采用分布式同步的方法在充分利用用户设备算力的情况下大大减少了服务器对于物理模拟的计算量,使物理联机游戏成为可能。用户设备本地的模拟策略使物理联网游戏的物理表现更加自然合理。
80.根据本技术的一些实施例,物理模拟结果包括帧数据,该帧数据包括帧号、虚拟场景中的虚拟物的位置、角速度、线速度、旋转姿态,其中旋转姿态的参数包括旋转轴的矢量方向、旋转角速度。当两个物理模拟结果中的上述参数完全相同时,视为一致。物理模拟的计算过程包括:每经过预定间隔时间,基于已有的帧数据,根据物理约束,计算出新的帧数据,其中,新的帧数据的帧号相比前一帧数据的帧号增加预定值。例如,图3示出根据本技术的实施例的物理模拟的帧数据的示意图。如图3所示,帧数据301是用户设备在0ms时刻根据力学原理对虚拟场景中的虚拟物体进行运动学或动力学模拟计算得到的计算结果,包括虚
拟场景中的虚拟物的位置、角速度、线速度、旋转姿态,帧号为1。经过预定间隔时间(例如,此处以0.016ms为例),用户设备在0.016ms时刻基于帧数据201,又进行一次物理模拟,得到帧数据202,帧数据202的帧号相较于帧数据201的帧号增加预定值(例如,此处以1为例),即帧号为2。然后在0.032ms时刻基于帧数据201和帧数据202,又进行一次物理模拟,得到帧号为3的帧数据203。以此重复,图中示出在0.176ms时刻模拟到帧数据212。
81.在本技术中,可以为每个虚拟物体分配单独的帧数据和帧号。所有状态存为帧数据,以方便进行物理状态的比对,减少网络延迟对于物理状态的影响,使物理状态的比较更加准确。
82.根据本技术的一些实施例,输出第二物理模拟结果,还包括:对第二物理模拟结果进行追帧,该追帧过程包括,在该第二物理模拟结果的基础上,继续进行物理模拟,直到最新的帧数据的帧号与第一物理模拟结果的最新的帧数据的帧号同步;输出经过追帧的该第二物理模拟结果。结合图1a、1b和图3,例如,用户设备103接收到的来自用户设备101对交集区域110的第二物理模拟结果,该第二物理模拟结果包括帧数据201’、203’、205’、207’、209’,用户设备103自身对交集区域110的第一物理模拟结果包括帧数据201-212,将第二物理模拟结果与第一物理模拟结果进行对比,发现不一致,例如帧数据201’、205’、207’、209’分别与帧数据201、205、207、209一致,但是帧数据203’与帧数据203不一致。并且可以看到,第二物理模拟结果最新的帧数据209’的帧号为9,而第一物理模拟结果最新的帧数据212的帧号为12,于是用户设备103在帧数据201’、203’、205’、207’、209’的基础上继续对交集区域110进行物理模拟,得到帧数据210’、211’、212’,即直到帧数据212’的帧号与帧数据212同步,为12。然后输出经过追帧的第二物理模拟结果的帧数据201’、203’、205’、207’、209’、210’、211’、212’和自身对区域108中交集区域110以外的其他区域的物理模拟结果。
83.在本技术中,追帧可以是对一定区域的全局追帧,也可以是针对某一虚拟物体的追帧(例如,当一个用户设备正在模拟虚拟物体进入其他用户设备的核心区域时,可以进行追帧,以避免拉回、抖动等问题)。追帧可以让冲突产生之后的物体回到当前帧的正确状态,否则会由于帧落后产生不太好的网络同步效果。
84.根据本技术的一些实施例,输出第二物理模拟结果,还包括:
85.对该第二物理模拟结果中的帧数据进行平滑处理,该平滑处理采用渐进式策略,该平滑处理可以包括插值。结合图1和图3,例如,第二物理模拟结果包括帧数据201’、203’、205’、207’、209’,在此基础上进行插值,插入新的帧数据202’、204’、206’、208’。
86.在本技术中,平滑策略让物体的运动更加柔顺自然。
87.根据本技术的一些实施例,预定规则包括:核心区域为虚拟场景中,以用户设备在虚拟场景中控制的第一虚拟物为中心的预定范围内的区域。具体的,以用户设备在虚拟场景中控制的第一虚拟物的中心位置为球心,以该第一虚拟物的运动速度与预定间隔时间的乘积为半径的球形区域作为该用户设备的核心区域。结合图1,例如,用户设备103控制着虚拟物体106a,用户设备103根据虚拟物体106a运动速度v与单位间隔时间δt的乘积确定半径r=v
×
δt,则以虚拟物体106a的位置为球心,r为半径,确定虚拟场景100中用户设备103关联的球形第二核心区域106,该第二核心区域106中包括虚拟物体106a。同理可以确定用户设备101关联的球形第一核心区域102,该第一核心区域102包括第一虚拟物体102a。
88.根据本技术的一些实施例,预定规则还包括:根据已有的物理模拟结果,确定与第
一虚拟物关联的关联虚拟物,其中,关联虚拟物包括在预定时间内该第一虚拟物将会碰撞的其他虚拟物;将该其他虚拟物在虚拟场景中所占的区域归入核心区域。结合图1,例如,用户设备103控制着虚拟物体106a,用户设备103预测虚拟物体106a将要碰撞虚拟物体106b,则将虚拟物体106b所占区域也归入第二核心区域106。同理,用户设备101控制着第一虚拟物体102a,用户设备101预测虚拟物体102a将要碰撞虚拟物体102d,则将虚拟物体102d所占区域也归入第一核心区域102。已有的物理模拟结果,是指用户设备101或用户设备103在上一帧中完成计算的物理模拟结果,如针对区域104或区域108的物理模拟结果。
89.在本技术中,良好的辖区划分算法让属于不同辖区的物体基本没有交集,减少了属于不同辖区物体的模拟造成的不一致性。
90.根据本技术的一些实施例,由网络设备转发物理模拟结果,并且该网络设备抽取部分物理模拟结果,与该网络设备的自身的相应的物理模拟结果进行比较,如果发现来自特定用户设备的物理模拟结果总是与该网络设备的自身的相应的物理模拟结果不一致,则判定该用户设备作弊,使该用户设备下线。
91.在本技术中,作弊抽样可以排除作弊用户设备,在分布式环境中保证游戏的公平性。
92.图4示出根据本技术的实施例的物理模拟同步系统。
93.如图4所示,系统400包括运行有虚拟场景的第一用户设备402和第二用户设备404,其中,
94.第一用户设备402根据预定规则,在虚拟场景中确定第一用户设备402的核心区域,该核心区域包括第一区域,并且
95.对第一区域进行物理模拟,得到第二物理模拟结果,并且
96.发送第二物理模拟结果;
97.第二用户设备404对虚拟场景中的第一区域进行物理模拟,得到第一物理模拟结果,并且
98.接收第二物理模拟结果,并且
99.判断第二物理模拟结果与第一物理模拟结果是否一致,如果不一致,则输出第二物理模拟结果,如果一致,则输出第一物理模拟结果。
100.第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
101.图5是实施根据本发明实施例的物理模拟同步方法的电子设备的硬件结构框图。
102.如图5所示,电子设备500可以包括一个或多个处理器502、与处理器502中的至少一个连接的系统主板508、与系统主板508连接的系统内存504、与系统主板508连接的非易失性存储器(nvm)506、以及与系统主板508连接的网络接口510。
103.处理器502可以包括一个或多个单核或多核处理器。处理器502可以包括通用处理器和专用处理器(例如,图形处理器、应用处理器、基带处理器等)的任何组合。在本发明的实施例中,处理器502可以被配置为执行根据如图2a和2b所示的各种实施例的一个或多个实施例。
104.在一些实施例中,系统主板508可以包括任意合适的接口控制器,以向处理器502中的至少一个和/或与系统主板508通信的任意合适的设备或组件提供任意合适的接口。
105.在一些实施例中,系统主板508可以包括一个或多个存储器控制器,以提供连接到系统内存504的接口。系统内存504可以用于加载以及存储数据和/或指令。在一些实施例中电子设备500的系统内存504可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dram)。
106.nvm 506可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,nvm 506可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如hdd(hard disk drive,硬盘驱动器)、cd(compact disc,光盘)驱动器、dvd(digital versatile disc,数字通用光盘)驱动器中的至少一个。
107.nvm 506可以包括安装在电子设备500的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口510通过网络访问nvm 506。
108.特别地,系统内存504和nvm 506可以分别包括:指令520的暂时副本和永久副本。指令520可以包括:由处理器502中的至少一个执行时导致电子设备500实施如图2a和2b所示的方法的指令。在一些实施例中,指令520、硬件、固件和/或其软件组件可另外地/替代地置于系统主板508、网络接口510和/或处理器502中。
109.网络接口510可以包括收发器,用于为电子设备500提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(例如,前端模块、天线等)进行通信。在一些实施例中,网络接口510可以集成于电子设备500的其他组件。例如,网络接口510可以集成于处理器502、系统内存504、nvm 506、和具有指令的固件设备(未示出)中的至少一种,当处理器502中的至少一个执行所述指令时,电子设备500实现图2a和2b所示的各种实施例的一个或多个实施例。
110.网络接口510可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口510可以是网络适配器、无线网络适配器、电话调制解调器和/或无线调制解调器。
111.在一个实施例中,处理器502中的至少一个可以与用于系统主板508的一个或多个控制器封装在一起,以形成系统封装(sip)。在一个实施例中,处理器502中的至少一个可以与用于系统主板508的一个或多个控制器集成在同一管芯上,以形成片上系统(soc)。
112.电子设备500可以进一步包括:输入/输出(i/o)设备512,与系统主板508连接。i/o设备512可以包括用户界面,使得用户能够与电子设备500进行交互;外围组件接口的设计使得外围组件也能够与电子设备500交互。在一些实施例中,电子设备500还包括传感器,用于确定与电子设备500相关的环境条件和位置信息的至少一种。
113.在一些实施例中,i/o设备512可包括但不限于显示器(例如,液晶显示器、触摸屏显示器等)、扬声器、麦克风、一个或多个相机(例如,静止图像照相机和/或摄像机)、手电筒(例如,发光二极管闪光灯)和键盘。
114.在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
115.在一些实施例中,传感器可包括但不限于陀螺仪传感器、加速度计、近程传感器、环境光线传感器和定位单元。定位单元还可以是网络接口510的一部分或与网络接口510交
互,以与定位网络的组件(例如,全球定位系统(gps)卫星)进行通信。
116.可以理解的是,本发明实施例示意的结构并不构成对电子设备500的具体限定。在本技术另一些实施例中,电子设备500可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
117.可将程序代码应用于输入指令,以执行本发明描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,包括处理器502的用于处理指令的系统包括具有诸如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。
118.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本发明中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
119.至少一个实施例的一个或多个方面可以由存储在计算机可读存储介质上的指令来实现,指令在被处理器读取并执行时使得电子设备能够实现本发明中所描述的实施例的方法。
120.根据本技术的一些实施例,公开了一种计算机存储介质,在该计算机存储介质上存储有指令,当该指令在计算机上运行时,使得该计算机执行上述第一实施例的任意一种可能的方法。
121.第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
122.根据本技术的一些实施例,公开了一种计算机程序产品,包括计算机可执行指令,该指令被处理器执行以实施根据本发明的实施方式的物理模拟同步方法。
123.第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
124.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合形式来实现。所公开的实施例还可以以承载或储存在一个或多个瞬态或非瞬态的机器可读(例如,计算机可读)存储介质上的指令或程序形式实现,其可以由一个或多个处理器等读取和执行。当指令或程序被机器运行时,机器可以执行前述的各种方法。例如,指令可以通过网络或其他计算机可读介质分发。因此,机器可读介质可以包括但不限于,用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,例如,软盘,光盘,光盘只读存储器(cd-roms),磁光盘,只读存储器(rom),随机存取存储器(ram),可擦除可编程只读存储器(eprom),电子式可清除程序化只读存储器(eeprom),磁卡或光卡,或者用于通过电、光、声或其他形式信号(例如,载波、红外信号、数字信号等)传输网络信息的闪存或有形的机器可读存储器。因此,机器可读介质包括任何形式的适合于存储或传输电子指令或机器(例如,计算机)可读信息的机器可读介质。
125.上面结合附图对本技术的实施例做了详细说明,但本技术技术方案的使用不仅仅局限于本专利实施例中提及的各种应用,各种结构和变型都可以参考本技术技术方案轻易地实施,以达到本文中提及的各种有益效果。在本领域普通技术人员所具备的知识范围内,在不脱离本技术宗旨的前提下做出的各种变化,均应归属于本技术专利涵盖范围。
再多了解一些

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

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

相关文献