欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 物理结算的处理方法和装置独创技术25286字

物理结算的处理方法和装置

2020-10-29 00:40:13

  物理结算的处理方法和装置

  技术领域

  本发明涉及计算机领域,具体而言,涉及一种物理结算的处理方法和装置。

  背景技术

  在游戏场景中,游戏对象可能会发生碰撞,如果一个游戏场景中同时发生多处碰撞,则需要对每处碰撞都进行物理结算,相关技术中的物理结算方法,都是采用串行的方式计算的,例如,当前游戏场景中的不同位置发生了多处碰撞,一个一个串行计算导致总体计算时间过长,影响游戏体验。

  针对上述的问题,目前尚未提出有效的解决方案。

  发明内容

  本发明实施例提供了一种物理结算的处理方法和装置,以至少解决由于串行进行物理结算造成的结算速度慢的技术问题。

  根据本发明实施例的一个方面,提供了一种物理结算的处理方法,包括:获取当前待处理的多个物理结算对象,其中,每个物理计算对象分别对应于三维游戏场景内不同位置发生的碰撞事件;采用并行方式对所述多个物理结算对象进行物理结算。

  进一步地,获取所述多个物理结算对象包括:利用宽相位碰撞检测算法对所述三维游戏场景内的多个虚拟三维模型进行碰撞检测,从所述多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,所述第一类虚拟三维模型为所述三维游戏场景内不会发生碰撞的虚拟三维模型,所述第二类虚拟三维模型为所述三维游戏场景内潜在发生碰撞的虚拟三维模型;利用窄相位碰撞检测算法对所述第二类虚拟三维模型进行碰撞检测,确定所述多个物理结算对象。

  进一步地,利用所述宽相位碰撞检测算法对所述多个虚拟三维模型进行碰撞检测包括:选取步骤,从所述多个虚拟三维模型中选取当前待检测的虚拟三维模型;移除步骤,利用所述宽相位碰撞检测算法从所述多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,所述第一类虚拟三维模型与所述待检测的虚拟三维模型之间的距离大于预设阈值,所述第二类虚拟三维模型与所述待检测的虚拟三维模型之间的距离小于或等于所述预设阈值;判断步骤,判断所述多个虚拟三维模型中的所有虚拟三维模型是否均已遍历完毕,如果是,则将保留的所述第二类虚拟三维模型确定为所述多个目标三维模型,如果否,则返回所述选取步骤。

  进一步地,采用所述并行方式对所述多个物理结算对象进行物理结算包括:基于所述多个物理结算对象的数量创建多个线程;采用所述多个线程并行对所述多个物理结算对象进行物理结算。

  进一步地,采用所述并行方式对所述多个物理结算对象进行物理结算包括:通过预设编程接口获取所述多个物理结算对象;基于所述多个物理结算对象的数量创建多个任务;采用所述多个任务并行对所述多个物理结算对象进行物理结算。

  根据本发明实施例的另一方面,还提供了一种物理结算的处理装置,包括:获取模块,用于获取当前待处理的多个物理结算对象,其中,每个物理计算对象分别对应于三维游戏场景内不同位置发生的碰撞事件;处理模块,用于采用并行方式对所述多个物理结算对象进行物理结算。

  进一步地,所述获取模块包括:处理单元,用于利用宽相位碰撞检测算法对所述三维游戏场景内的多个虚拟三维模型进行碰撞检测,从所述多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,所述第一类虚拟三维模型为所述三维游戏场景内不会发生碰撞的虚拟三维模型,所述第二类虚拟三维模型为所述三维游戏场景内潜在发生碰撞的虚拟三维模型;确定单元,用于利用窄相位碰撞检测算法对所述第二类虚拟三维模型进行碰撞检测,确定所述多个物理结算对象。

  进一步地,所述处理单元包括:选取子单元,用于从所述多个虚拟三维模型中选取当前待检测的虚拟三维模型;移除子单元,用于利用所述宽相位碰撞检测算法从所述多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,所述第一类虚拟三维模型与所述待检测的虚拟三维模型之间的距离大于预设阈值,所述第二类虚拟三维模型与所述待检测的虚拟三维模型之间的距离小于或等于所述预设阈值;判断子单元,用于判断所述多个虚拟三维模型中的所有虚拟三维模型是否均已遍历完毕,如果是,则将保留的所述第二类虚拟三维模型确定为所述多个目标三维模型,如果否,则返回所述选取子单元。

  进一步地,所述处理模块包括:第一创建单元,用于基于所述多个物理结算对象的数量创建多个线程;第一处理单元,用于采用所述多个线程并行对所述多个物理结算对象进行物理结算。

  进一步地,所述处理模块包括:获取单元,用于通过预设编程接口获取所述多个物理结算对象;第二创建单元,用于基于所述多个物理结算对象的数量创建多个任务;第二处理单元,用于采用所述多个任务并行对所述多个物理结算对象进行物理结算。

  根据本发明实施例的另一方面,还提供了一种存储介质,存储有计算机程序,其中,所述计算机程序被设置为运行时执行本发明所述的物理结算的处理方法。

  根据本发明实施例的另一方面,还提供了一种处理器,用于运行程序,其中,所述程序被设置为运行时执行本发明所述的物理结算的处理方法。

  根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行本发明所述的物理结算的处理方法。

  在本发明实施例中,采用获取当前待处理的多个物理结算对象,其中,每个物理计算对象分别对应于三维游戏场景内不同位置发生的碰撞事件;采用并行方式对所述多个物理结算对象进行物理结算,达到了并行对物理结算对象进行物理结算的目的,从而实现了提高物理结算速度的技术效果,进而解决了由于串行进行物理结算造成的结算速度慢的技术问题。

  附图说明

  此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

  图1是根据本发明实施例的物理结算的处理方法;

  图2是根据本发明实施例的一种可选的物理结算的处理装置的示意图。

  具体实施方式

  为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

  需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

  根据本发明实施例,提供了一种物理结算的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

  图1是根据本发明实施例的物理结算的处理方法,如图1所示,该方法包括如下步骤:

  步骤S102,获取当前待处理的多个物理结算对象,其中,每个物理计算对象分别对应于三维游戏场景内不同位置发生的碰撞事件;

  步骤S104,采用并行方式对多个物理结算对象进行物理结算。

  通过上述步骤,可以实现提高物理结算速度的技术效果,进而解决了由于串行进行物理结算造成的结算速度慢的技术问题。

  本发明实施例的技术方案可以应用在游戏场景中,游戏场景中存在碰撞事件,如果不同位置都发生了碰撞事件,则在对当前待处理的多个物理结算对象进行物理结算时,采用并行方式进行结算,这样可以同时结算多个物理结算对象,相比于相关技术中的串行计算方式,能够提高物理结算的速度。

  可选地,获取多个物理结算对象包括:利用宽相位碰撞检测算法对三维游戏场景内的多个虚拟三维模型进行碰撞检测,从多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,第一类虚拟三维模型为三维游戏场景内不会发生碰撞的虚拟三维模型,第二类虚拟三维模型为三维游戏场景内潜在发生碰撞的虚拟三维模型;利用窄相位碰撞检测算法对第二类虚拟三维模型进行碰撞检测,确定多个物理结算对象。

  游戏场景中有多个对象,获取多个物理结算对象可以是:首先通过宽相位碰撞检测算法对三维游戏场景内的多个虚拟三维模型进行碰撞检测,移除不会发生碰撞的第一类虚拟三维模型,保留第二类可能发生碰撞的虚拟三维模型,再继续采用窄相位碰撞检测算法对第二类可能发生碰撞的虚拟三维模型进行碰撞检测,确定出多个发生碰撞的物理结算对象。

  可选地,利用宽相位碰撞检测算法对多个虚拟三维模型进行碰撞检测包括以下几个步骤:选取步骤,从多个虚拟三维模型中选取当前待检测的虚拟三维模型;移除步骤,利用宽相位碰撞检测算法从多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,第一类虚拟三维模型与待检测的虚拟三维模型之间的距离大于预设阈值,第二类虚拟三维模型与待检测的虚拟三维模型之间的距离小于或等于预设阈值;判断步骤,判断多个虚拟三维模型中的所有虚拟三维模型是否均已遍历完毕,如果是,则将保留的第二类虚拟三维模型确定为多个目标三维模型,如果否,则返回选取步骤。

  宽相位碰撞检测算法进行碰撞检测需要先选取当前待检测的虚拟三维模型,可以按照坐标位置选取,也可以按照其他顺序选取,再移除其中与当前虚拟三维模型的距离大于预设阈值因而不会发生碰撞的虚拟三维模型,直到将当前所有虚拟三维模型全部遍历完,剩下的虚拟三维模型作为多个目标三维模型,通过这样的碰撞检测步骤,可以减少计算量,提高计算效率。

  可选地,采用并行方式对多个物理结算对象进行物理结算包括:基于多个物理结算对象的数量创建多个线程;采用多个线程并行对多个物理结算对象进行物理结算。

  本实施例的并行方式对多个物理结算对象进行物理结算时通过多个线程并行的方式对多个物理结算对象进行物理结算的,其中,该步骤执行主体是CPU,CPU多个线程是基于多个物理结算对象的数量确定的,线程的数量可以与物理结算对象的数量相同,也可以少于物理结算对象的数量。

  可选地,采用并行方式对多个物理结算对象进行物理结算包括:通过预设编程接口获取多个物理结算对象;基于多个物理结算对象的数量创建多个任务;采用多个任务并行对多个物理结算对象进行物理结算。

  通过多个线程并行的方式对多个物理结算对象进行物理结算可以采用两种方式,第一种是上述的通过CPU计算,第二种是CPU通过预设的编程接口将并行计算交由GPU处理,前提是GPU支持这种物理结算,本步骤是由GPU执行的,GPU通过预设编程接口获取多个物理结算对象;GPU基于多个物理结算对象的数量创建多个任务;GPU采用多个任务并行对多个物理结算对象进行物理结算,任务的数量可以与物理结算对象的数量相同。上述两种计算方式,GPU计算方式比CPU计算速度更快。

  CPU计算的方案中,多个线程中,不同线程用于计算不同位置的碰撞,GPU计算的方案中,多个任务,不同任务用于计算不同位置的碰撞。

  需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

  通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

  根据本发明的另一实施例,还提供了一种用于实施上述碰撞形态的修正方法的碰撞形态的修正装置。

  图2是根据本发明实施例的一种可选的物理结算的处理装置的示意图,如图2所示,该装置可以包括:

  获取模块10,用于获取当前待处理的多个物理结算对象,其中,每个物理计算对象分别对应于三维游戏场景内不同位置发生的碰撞事件;

  处理模块20,用于采用并行方式对多个物理结算对象进行物理结算。

  通过上述装置达到了并行对物理结算对象进行物理结算的目的,从而实现了提高物理结算速度的技术效果,进而解决了由于串行进行物理结算造成的结算速度慢的技术问题。

  可选的,获取模块10包括:处理单元,用于利用宽相位碰撞检测算法对三维游戏场景内的多个虚拟三维模型进行碰撞检测,从多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,第一类虚拟三维模型为三维游戏场景内不会发生碰撞的虚拟三维模型,第二类虚拟三维模型为三维游戏场景内潜在发生碰撞的虚拟三维模型;确定单元,用于利用窄相位碰撞检测算法对第二类虚拟三维模型进行碰撞检测,确定多个物理结算对象。

  可选的,处理单元包括:选取子单元,用于从多个虚拟三维模型中选取当前待检测的虚拟三维模型;移除子单元,用于利用宽相位碰撞检测算法从多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,第一类虚拟三维模型与待检测的虚拟三维模型之间的距离大于预设阈值,第二类虚拟三维模型与待检测的虚拟三维模型之间的距离小于或等于预设阈值;判断子单元,用于判断多个虚拟三维模型中的所有虚拟三维模型是否均已遍历完毕,如果是,则将保留的第二类虚拟三维模型确定为多个目标三维模型,如果否,则返回选取子单元。

  可选的,处理模块20包括:第一创建单元,用于基于多个物理结算对象的数量创建多个线程;第一处理单元,用于采用多个线程并行对多个物理结算对象进行物理结算。

  可选的,处理模块20包括:获取单元,用于通过预设编程接口获取多个物理结算对象;第二创建单元,用于基于多个物理结算对象的数量创建多个任务;第二处理单元,用于采用多个任务并行对多个物理结算对象进行物理结算。

  根据本发明实施例,还提供了一种用于实施上述游戏场景内的物理结算方法的电子装置,该电子装置包括:

  1)处理器

  2)存储器

  可选地,本实施例中的具体示例可以参考上述实施例所描述的示例,本实施例在此不再赘述。

  具体地,存储器用于存储应用程序。

  处理器可以通过传输装置调用存储器存储的应用程序,以执行下述步骤:获取当前待处理的多个物理结算对象,其中,每个物理计算对象分别对应于三维游戏场景内不同位置发生的碰撞事件;采用并行方式对多个物理结算对象进行物理结算。

  处理器还用于执行下述步骤:利用宽相位碰撞检测算法对三维游戏场景内的多个虚拟三维模型进行碰撞检测,从多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,第一类虚拟三维模型为三维游戏场景内不会发生碰撞的虚拟三维模型,第二类虚拟三维模型为三维游戏场景内潜在发生碰撞的虚拟三维模型;利用窄相位碰撞检测算法对第二类虚拟三维模型进行碰撞检测,确定多个物理结算对象。

  处理器还用于执行下述步骤:选取步骤,从多个虚拟三维模型中选取当前待检测的虚拟三维模型;移除步骤,利用宽相位碰撞检测算法从多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,第一类虚拟三维模型与待检测的虚拟三维模型之间的距离大于预设阈值,第二类虚拟三维模型与待检测的虚拟三维模型之间的距离小于或等于预设阈值;判断步骤,判断多个虚拟三维模型中的所有虚拟三维模型是否均已遍历完毕,如果是,则将保留的第二类虚拟三维模型确定为多个目标三维模型,如果否,则返回选取步骤。

  处理器还用于执行下述步骤:基于多个物理结算对象的数量创建多个线程;采用多个线程并行对多个物理结算对象进行物理结算。

  处理器还用于执行下述步骤:通过预设编程接口获取多个物理结算对象;基于多个物理结算对象的数量创建多个任务;采用多个任务并行对多个物理结算对象进行物理结算。

  本发明的实施例还提供了一种存储介质。

  可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

  S1,获取当前待处理的多个物理结算对象,其中,每个物理计算对象分别对应于三维游戏场景内不同位置发生的碰撞事件;

  S2,采用并行方式对多个物理结算对象进行物理结算。

  利用宽相位碰撞检测算法对三维游戏场景内的多个虚拟三维模型进行碰撞检测,从多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,第一类虚拟三维模型为三维游戏场景内不会发生碰撞的虚拟三维模型,第二类虚拟三维模型为三维游戏场景内潜在发生碰撞的虚拟三维模型;利用窄相位碰撞检测算法对第二类虚拟三维模型进行碰撞检测,确定多个物理结算对象。

  选取步骤,从多个虚拟三维模型中选取当前待检测的虚拟三维模型;移除步骤,利用宽相位碰撞检测算法从多个虚拟三维模型中移除第一类虚拟三维模型并保留第二类虚拟三维模型,其中,第一类虚拟三维模型与待检测的虚拟三维模型之间的距离大于预设阈值,第二类虚拟三维模型与待检测的虚拟三维模型之间的距离小于或等于预设阈值;判断步骤,判断多个虚拟三维模型中的所有虚拟三维模型是否均已遍历完毕,如果是,则将保留的第二类虚拟三维模型确定为多个目标三维模型,如果否,则返回选取步骤。

  基于多个物理结算对象的数量创建多个线程;采用多个线程并行对多个物理结算对象进行物理结算。

  通过预设编程接口获取多个物理结算对象;基于多个物理结算对象的数量创建多个任务;采用多个任务并行对多个物理结算对象进行物理结算。

  可选地,存储介质还被设置为存储用于执行上述实施例中的方法中所包括的步骤的程序代码,本实施例中对此不再赘述。

  可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

  可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

  上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

  在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

  在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

  所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

  另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

  所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

  以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

《物理结算的处理方法和装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)