物理状态的更新方法和装置、存储介质、电子装置制造方法及图纸

技术编号:25785935 阅读:15 留言:0更新日期:2020-09-29 18:18
本申请公开了一种物理状态的更新方法和装置、存储介质、电子装置。其中,该方法包括:确定虚拟场景中的第一对象,第一对象为虚拟场景中不用进行物理状态模拟处理的对象;对第一对象进行对象状态更新;在对第一对象进行对象状态更新的过程中,调用物理引擎对第二对象和第三对象进行物理状态更新,第二对象和第三对象为虚拟场景中需要进行物理状态模拟处理的对象。本申请解决了相关技术中游戏流程处理效率较低的技术问题。

【技术实现步骤摘要】
物理状态的更新方法和装置、存储介质、电子装置
本申请涉及游戏领域,具体而言,涉及一种物理状态的更新方法和装置、存储介质、电子装置。
技术介绍
物理引擎主要包含游戏世界中的物体之间、物体和场景之间发生碰撞后的力学模拟,以及发生碰撞后的物体骨骼运动的力学模拟。近年来,随着硬件的发展,物理引擎广泛应用于游戏行业。世界三大物理引擎分别是Physx、Havok、Bullet,其中Physx物理引擎是Nvidia公司的一款开源物理引擎,性能优越,模拟效果稳定,尤其在Nvidia的显卡上模拟效率极高。Physx物理引擎包含刚体、关节、vehilce小车、布料、破碎等物理功能,这些功能极大的丰富了游戏的开发内容,提升游戏的效果表现。游戏引擎的模拟一般分为两部分,一部分是更新游戏数据,一部分是渲染游戏。物理引擎的模拟,需要用到游戏引擎更新后的数据,而游戏引擎的渲染需要用到物理引擎的模拟数据。Physx物理引擎的模拟流程:送入模拟数据;开始模拟;结束模拟;获取模拟结果。这种流程的处理效率较低。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种物理状态的更新方法和装置、存储介质、电子装置,以至少解决相关技术中游戏流程处理效率较低的技术问题。根据本申请实施例的一个方面,提供了一种物理状态的更新方法,包括:确定虚拟场景中的第一对象,第一对象为虚拟场景中不用进行物理状态模拟处理的对象;对第一对象进行对象状态更新;在对第一对象进行对象状态更新的过程中,调用物理引擎对第二对象和第三对象进行物理状态更新,其中,第二对象和第三对象为虚拟场景中需要进行物理状态模拟处理的对象。根据本申请实施例的另一方面,还提供了一种物理状态的更新装置,包括:确定单元,用于确定虚拟场景中的第一对象,第一对象为虚拟场景中不用进行物理状态模拟处理的对象;第一更新单元,用于对第一对象进行对象状态更新;第二更新单元,用于在对第一对象进行对象状态更新的过程中,调用物理引擎对第二对象和第三对象进行物理状态更新,其中,第二对象和第三对象为虚拟场景中需要进行物理状态模拟处理的对象。根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。在本申请实施例中,对于虚拟场景中的对象,可按照如下几个类型来进行处理,其一是需要用到物理引擎进行物理状态更新的游戏对象(即第二对象和第三对象);其二是不需要用到物理引擎进行物理状态更新的游戏对象(即第一对象),由于这几类对象不相关,所以可以采用并行处理的方式进行处理,而不是对这几类对象不分类的串行处理,从而可以解决相关技术中游戏流程处理效率较低的技术问题,进而达到提高处理效率的技术效果。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的物理状态的更新方法的硬件环境的示意图;图2是根据本申请实施例的一种可选的物理状态的更新方法的流程图;图3是根据本申请实施例的一种可选的物理状态的更新方法的流程图;图4是根据本申请实施例的一种可选的物理状态的更新装置的示意图;以及,图5是根据本申请实施例的一种终端的结构框图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。相关技术中游戏引擎进行游戏更新的步骤包括更新游戏数据和渲染游戏数据,如果结合物理引擎,则变为:更新游戏数据;PhysX开始模拟;PhysX结束模拟;更新依赖于PhysX计算结果的游戏数据;渲染游戏数据。以上流程必须等待游戏数据更新完毕后,才开始物理模拟,效率较低,这样的流程不能充分发挥计算机设备并行处理的特性。为了克服上述问题,根据本申请实施例的一方面,提供了一种物理状态的更新方法的方法实施例,该方案兼顾设备性能和游戏表现效果,既能利用多线程提高效率,也能够完整真实的表现游戏效果。可选地,在本实施例中,上述物理状态的更新方法可以应用于如图1所示的由游戏引擎101、物理引擎103、控制模块105所构成的硬件环境中。如图1所示,控制模块105通过总线与物理引擎103和游戏引擎101进行连接,物理引擎103可用于为游戏引擎101提供物体之间、物体和场景之间发生碰撞后的力学模拟的服务,以便于游戏引擎101在渲染中使用物理引擎103得到的模拟结果,可在控制模块105上或独立于控制模块105设置数据库107(可以是片上存储、寄存器、内存等),用于为控制模块105提供数据存储服务。上述游戏引擎101、物理引擎103、控制模块105为从功能上的区分,这些模块可以为独立的芯片,如游戏引擎101的功能基于图形处理器GPU(GraphicsProcessingUnit)实现、物理引擎103的功能基于物理运算处理器PPU(ParallelingandProtectionUnit)实现、控制模块105为中央处理器CPU(centralprocessingunit),游戏引擎101、物理引擎103、控制模块105也可以作为同一个芯片中的用于实现相应功能的模块存在于该芯片中,如为CPU中,后文以此为例进行说明;上述总线包括但不限于:片内总线(相当于此时上述三个模块为相同芯片中的功能模块)、片间总线(相当于此时上述三个模块为独立的芯片)。本申请实施例的物理状态的更新方法可以由中央处理器CPU(也可以由CPU、GPU等共同执行)来执行,图2是根据本申请实施例的一种可选的物理状态的更新方法的流程图,如图2所示,该方法可以包括以下步骤:步骤S202,在游戏数据发生更新时,中央处理器确定虚拟场景中的第一对象,第一对象为虚拟场景中不用进行物理状态模拟处理的对象,如仅仅需要更新与物理无关的游戏属性相关的信息(如衣服颜色、材质发生变化,武器发生变化等)的对象。步骤S204,中央处本文档来自技高网
...

【技术保护点】
1.一种物理状态的更新方法,其特征在于,包括:/n确定虚拟场景中的第一对象,其中,所述第一对象为所述虚拟场景中不用进行物理状态模拟处理的对象;/n对所述第一对象进行对象状态更新;/n在对所述第一对象进行对象状态更新的过程中,调用物理引擎对第二对象和第三对象进行物理状态更新,其中,所述第二对象和所述第三对象为所述虚拟场景中需要进行物理状态模拟处理的对象。/n

【技术特征摘要】
1.一种物理状态的更新方法,其特征在于,包括:
确定虚拟场景中的第一对象,其中,所述第一对象为所述虚拟场景中不用进行物理状态模拟处理的对象;
对所述第一对象进行对象状态更新;
在对所述第一对象进行对象状态更新的过程中,调用物理引擎对第二对象和第三对象进行物理状态更新,其中,所述第二对象和所述第三对象为所述虚拟场景中需要进行物理状态模拟处理的对象。


2.根据权利要求1所述的方法,其特征在于,
对所述第一对象进行对象状态更新包括:通过运行第一线程将所述第一对象从第一对象状态更新为第二对象状态,其中,所述第一对象状态为所述第一对象在第一时间的对象状态,所述第二对象状态为所述第一对象在第二时间的对象状态,所述第一时间早于所述第二时间;
调用物理引擎对第二对象和第三对象进行物理状态更新包括:通过运行目标线程将所述第二对象从第一物理状态更新为第二物理状态并将所述第三对象从第三物理状态更新为第四物理状态,其中,所述目标线程为与所述第一线程并行运行的属于所述物理引擎的线程,所述第一物理状态为所述第二对象在所述第一时间的物理状态,所述第二物理状态为所述第二对象在所述第二时间的物理状态,所述第三物理状态为所述第三对象在所述第一时间的物理状态,所述第四物理状态为所述第三对象在所述第二时间的物理状态。


3.根据权利要求2所述的方法,其特征在于,通过运行目标线程将所述第二对象从第一物理状态更新为第二物理状态并将第三对象从第三物理状态更新为第四物理状态包括在所述目标线程中执行如下步骤:
将所述第二对象从所述第一物理状态更新为所述第二物理状态;
利用所述第二物理状态将所述第三对象从所述第三物理状态更新为所述第四物理状态。


4.根据权利要求2所述的方法,其特征在于,通过运行目标线程将所述第二对象从第一物理状态更新为第二物理状态包括:
在所述第二对象为多个的情况下,通过并行运行多个第二线程将多个所述第二对象从所述第一物理状态更新为所述第二物理状态,其中,所述目标线程包括所述多个第二线程,每个所述第二线程用于更新一个所述第二对象的物理状态,任意两个所述第二线程所更新的所述第二对象不同。


5.根据权利要求2所述的方法,其特征在于,通过运行目标线程将所述第三对象从所述第三物理状态更新为所述第四物理状态...

【专利技术属性】
技术研发人员:汪成峰胡梓楠
申请(专利权)人:完美世界北京软件科技发展有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1