CN113577773B - 一种碰撞数据处理方法、装置、电子设备及存储介质 - Google Patents
一种碰撞数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113577773B CN113577773B CN202110776668.5A CN202110776668A CN113577773B CN 113577773 B CN113577773 B CN 113577773B CN 202110776668 A CN202110776668 A CN 202110776668A CN 113577773 B CN113577773 B CN 113577773B
- Authority
- CN
- China
- Prior art keywords
- rigid body
- initial
- coordinates
- time interval
- time slice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 claims description 31
- 238000004088 simulation Methods 0.000 abstract description 22
- 238000004364 calculation method Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000035515 penetration Effects 0.000 description 3
- 230000000704 physical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000005489 elastic deformation Effects 0.000 description 1
- 239000004579 marble Substances 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/577—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种碰撞数据处理方法、装置、电子设备以及存储介质,其包括:获取游戏引擎中刚体的初始坐标、初始速度及当前帧时间间隔;当刚体需要修正时,将当前帧时间间隔和前一帧时间间隔均分为多个子帧时间间隔,并将子帧时间间隔进行编号,生成多个时间切片编号;确定多个时间切片编号中发生碰撞的备选时间切片编号;并确定备选时间切片编号中编号最小的目标时间切片编号,获取与目标时间切片编号对应的目标子帧时间间隔;根据目标子帧时间间隔、初始速度以及初始坐标确定刚体的调整坐标。本发明提高了碰撞模拟的准确度和同步性。
Description
技术领域
本发明涉及碰撞检测技术领域,具体涉及一种碰撞数据处理方法、装置、电子设备及存储介质。
背景技术
目前3D游戏大多使用游戏引擎内置的PhysX物理系统来模拟物理效果。但因为模拟物理效果的计算是非连续性的,因此若刚体运动速度较大或距离较近时,如果按照每次计算出来的结果直接渲染,那么可以看到刚体可能发生深度相交或者穿透现象,导致该物理引擎并不能保证同步性,即它无法保证在两次输入参数一致的情况下,运行出相同的物理结果,这就使得需要同步物理效果的游戏没法保障同步;同时,由于刚体可能发生的深度相交或穿透现象,导致部分物理碰撞效果产生失真,尤其是球类、多面体的碰撞,表现效果与理论计算出入较大。
发明内容
有鉴于此,有必要提供一种碰撞数据处理方法、装置、电子设备及存储介质,用以解决现有技术中存在的碰撞模拟不同步和不准确的技术问题。
为了解决上述技术问题,本发明提供了一种碰撞数据处理方法,包括:
获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔;
当所述刚体为待修正刚体时,将所述当前帧时间间隔和所述当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个所述子帧时间间隔进行编号,生成多个时间切片编号;
确定所述多个时间切片编号中发生碰撞的备选时间切片编号;并确定所述备选时间切片编号中编号最小的目标时间切片编号,获取与所述目标时间切片编号对应的目标子帧时间间隔;
根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标。
在一些可能的实现方式中,在所述获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔之后包括:
判断所述刚体是否为待修正刚体;
所述判断所述刚体是否为待修正刚体包括:
将所述刚体分别与游戏引擎中的其他刚体组成多个待处理刚体组,并根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正,若所述待处理刚体组需要修正,则所述刚体为所述待修正刚体。
在一些可能的实现方式中,所述待处理刚体组包括第一刚体和第二刚体,所述初始坐标包括所述第一刚体的第一初始坐标和所述第二刚体的第二初始坐标,所述初始速度包括所述第一刚体的第一初始速度和所述第二刚体的第二初始速度;所述根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正包括:
根据所述第一初始坐标和所述第二初始坐标计算所述第一刚体和所述第二刚体之间的空间距离;
确定所述第一初始速度和所述第二初始速度中速度较大的碰撞初始速度;
根据所述碰撞初始速度和所述当前帧时间间隔确定碰撞距离;
判断所述空间距离是否大于所述碰撞距离,若所述空间距离大于所述碰撞距离,则所述待处理刚体组不需要进行修正,若所述空间距离小于或等于所述碰撞距离,则所述待处理刚体组需要进行修正。
在一些可能的实现方式中,在所述根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正之前还包括:
计算所述第一初始速度和所述第二初始速度的差值;
判断所述差值是否大于阈值差值,若所述差值大于所述阈值差值,则再根据所述初始坐标和所述初始速度判断所述差值大于所述阈值差值的待处理刚体组是否需要进行修正。
在一些可能的实现方式中,在所述根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正之前还包括:
分别确定所述第一初始速度的第一向量方向和所述第二初始速度的第二向量方向;
判断所述第一向量方向和所述第二向量方向是否相交,若所述第一向量方向和所述第二向量方向相交,则再根据所述初始坐标和所述初始速度判断所述第一向量方向和所述第二向量方向相交的待处理刚体组是否需要进行修正。
在一些可能的实现方式中,所述确定所述多个时间编码切片中发生碰撞的备选时间切片编号包括:
获取所述第一刚体的第一弹性系数和所述第二刚体的第二弹性系数;
根据所述第一弹性系数、所述第二弹性系数以及所述子帧时间间隔的个数确定起始切片编号;
所述起始切片编号以及在所述起始切片编号之后的所述时间切片编号为所述备选时间切片编号。
在一些可能的实现方式中,在所述根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标之后还包括:
将所述目标子帧时间间隔和所述目标子帧时间间隔的前一子帧时间间隔进行至少一次均分,均分为多个次子帧时间间隔,并将每个所述次子帧时间间隔进行编号,生成多个次时间切片编号;
确定所述多个次时间切片编号中发生碰撞的备选次时间切片编号;
确定所述备选次时间切片编号中编号最小的目标次时间切片编号,并获取与所述次目标时间切片编号对应的目标次子帧时间间隔;
根据所述目标次子帧时间间隔、所述初始速度以及所述调整坐标确定所述刚体的优化坐标,并将所述优化坐标代替所述调整坐标。
本发明还提供一种碰撞数据处理装置,所述碰撞数据处理装置包括:
初始参数获取单元,用于获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔;
均分单元,当所述刚体为待修正刚体时,将所述当前帧时间间隔和所述当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个所述子帧时间间隔进行编号,生成多个时间切片编号;
子帧单元确定单元,用于确定所述多个时间切片编号中发生碰撞的备选时间切片编号;并确定所述备选时间切片编号中编号最小的目标时间切片编号,获取与所述目标时间切片编号对应的目标子帧时间间隔;
调整单元,用于根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标。
本发明还提供了一种电子设备,包括存储器和处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述任一种实现方式中的所述碰撞数据处理方法中的步骤。
本发明还提供了一种计算机可读存储介质,用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时,能够实现上述任一种实现方式中的所述碰撞数据处理方法中的步骤。
采用上述实施例的有益效果是:本发明提供的碰撞数据处理方法,通过在当刚体需要进行修正时,将当前帧时间间隔和当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个子帧时间间隔进行编号,生成多个时间切片编号;然后确定多个时间切片编号中发生碰撞的备选时间切片编号,并确定备选时间切片编号中编号最小的目标时间切片编号,获取与目标时间切片编号对应的目标子帧时间间隔,最后对目标子帧时间间隔的调整坐标作为刚体的初始坐标;通过对当前帧时间间隔和前一帧时间间隔进行均分,缓解由于非连续性的当前帧时间间隔导致的刚体发生深度相交和穿透的现象,从而提高碰撞模拟的准确度,实现碰撞模拟的可重复性,从而实现碰撞模拟的同步性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的碰撞数据处理方法的一个实施例流程示意图;
图2为本发明实施例中判断待处理刚体组是否需要修正的一个实施例流程示意图;
图3为本发明实施例在S201之前的一个实施例流程示意图;
图4为本发明实施例在S201之前的另一个实施例流程示意图;
图5为本发明实施例中S103的一个实施例流程示意图;
图6为本发明实施例在S104之后的一个实施例流程示意图;
图7为本发明实施例与现有技术的一个实施例对比效果示意图;
图8为本发明实施例提供的碰撞数据处理装置的一个实施例结构示意图;
图9为本发明实施例提供的电子设备的一个实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明提供了一种碰撞数据处理方法、装置、电子设备以及存储介质,以下分别进行说明。
如图1所示,为本发明实施例提供的碰撞数据处理方法的一个实施例流程示意图,该方法包括:
S101、获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔;
具体地,游戏引擎可以是BigWorld公司的BigWorld引擎,Emergent公司的Gamebryo引擎,Epic公司的unreal引擎,UnityTechnologies开发的Unity3D引擎,Crytek公司的CryEngine引擎,Garage Games公司的Torque 3D引擎,Hero公司的Hero Engine引擎、Quantumas引擎中的任意一种。
S102、当刚体需要修正时,将当前帧时间间隔和当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个子帧时间间隔进行编号,生成多个时间切片编号;
其中,在本发明的一些实施例中,子帧时间间隔的个数为20,时间切片编号为-10到10。
S103、确定多个时间切片编号中发生碰撞的备选时间切片编号;并确定备选时间切片编号中编号最小的目标时间切片编号,获取与目标时间切片编号对应的目标子帧时间间隔;
S104、根据目标子帧时间间隔、初始速度以及初始坐标确定刚体的调整坐标,并将调整坐标代替初始坐标。
其中,调整坐标为:
P’=P+V*T
式中,P’为调整坐标;P为初始坐标;V为初始速度;T为不同时间切片编码对应的子帧时间间隔。
与现有技术相比,本发明实施例提供的碰撞数据处理方法,通过在当刚体需要进行修正时,将当前帧时间间隔和当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个子帧时间间隔进行编号,生成多个时间切片编号;然后确定多个时间切片编号中发生碰撞的备选时间切片编号,并确定备选时间切片编号中编号最小的目标时间切片编号,获取与目标时间切片编号对应的目标子帧时间间隔,最后对目标子帧时间间隔的调整坐标作为刚体的初始坐标;通过对当前帧时间间隔和前一帧时间间隔进行均分,缓解由于非连续性的当前帧时间间隔导致的刚体发生深度相交和穿透的现象,从而提高碰撞模拟的准确度,实现碰撞模拟的可重复性,从而实现碰撞模拟的同步性。
其中,时间切片编号和子帧时间间隔为一一对应关系,且这一对应关系可以使用json、xml、byte等数据配置型文件,提前录入好时间切片编号和子帧时间间隔的对应关系。这样在计算时,可以使用查表的方法直接获取目标子帧时间间隔进行计算,从而大大减少即时计算的开销和内存占用。
在本发明的一些实施例中,在S101之后还包括:判断刚体是否为待修正刚体。
具体地,判断刚体是否为待修正刚体具体为:将刚体分别与游戏引擎中的其他刚体组成多个待处理刚体组,并根据初始坐标和初始速度判断多个待处理刚体组中的每一待处理刚体组是否需要进行修正,若待处理刚体组需要修正,则刚体为待修正刚体。
具体地,待处理刚体组包括第一刚体和第二刚体,初始坐标包括第一刚体的第一初始坐标和第二刚体的第二初始坐标,初始速度包括第一刚体的第一初始速度和第二刚体的第二初始速度;如图2所示,判断待处理刚体组是否需要修正的步骤包括:
S201、根据第一初始坐标和第二初始坐标计算第一刚体和第二刚体之间的空间距离;
S202、确定第一初始速度和第二初始速度中速度较大的碰撞初始速度;
S203、根据碰撞初始速度和当前帧时间间隔确定碰撞距离;
具体地,碰撞距离为:
L=(2*dt*Vmax)
式中,L为碰撞距离;dt为当前帧时间间隔;Vmax为碰撞初始速度。
S204、判断空间距离是否大于碰撞距离,若空间距离大于碰撞距离,则待处理刚体组不需要进行修正,若空间距离小于或等于碰撞距离,则待处理刚体组需要进行修正。
这是由于,当空间距离大于碰撞距离时,第一刚体和第二刚体不会发生碰撞,因此,无需进行修正;而当空间距离小于或等于碰撞距离时,第一刚体和第二刚体可能会发生碰撞,因此,需要对待处理刚体组进行修正。
进一步地,通过上述设置,无需对所有待处理刚体组都进行修正,降低了需进行修正的待处理刚体组的数量,进而可减少计算冗余,提高碰撞模拟过程的流畅性。
由于即使空间距离小于或等于碰撞距离,第一刚体和第二刚体也不一定会发生碰撞,因此,为了进一步降低需进行修正的待处理刚体组的数量,在本发明的一些实施例中,如图3所示,在S201之前还包括:
S301、计算第一初始速度和第二初始速度的差值;
S302、判断差值是否大于阈值差值,若差值大于阈值差值,则再根据初始坐标和初始速度判断差值大于阈值差值的待处理刚体组是否需要进行修正。
通过上述设置,仅需要对第一初始速度和第二初始速度的差值大于阈值差值的待处理刚体组进行修正即可,进一步降低了需要进行修正的待处理刚体组的数量,进而进一步减少计算冗余,使碰撞模拟过程更加流畅。
进一步地,由于速度为矢量,其具有方向,因此,即使空间距离小于或等于碰撞距离,第一刚体和第二刚体也不一定会发生碰撞,为了进一步降低进行修正的待处理刚体组的数量,在本发明的一些实施例中,如图4所示,在S201之前还包括:
S401、分别确定第一初始速度的第一向量方向和第二初始速度的第二向量方向;
S402、判断第一向量方向和第二向量方向是否相交,若第一向量方向和第二向量方向相交,则再根据初始坐标和初始速度判断第一向量方向和第二向量方向相交的待处理刚体组是否需要进行修正。
通过上述设置,仅需要对第一向量方向和第二向量方向相交待处理刚体组进行修正即可,进一步降低了需要进行修正的待处理刚体组的数量,进而进一步减少计算冗余,使碰撞模拟过程更加流畅。
需要说明的是:在本发明的一些实施例中,在S201之前,仅需要进行S301、S302或S401和S402即可。
但由于即使第一初始速度和第二初始速度的差值大于阈值差值,也不一定会发生碰撞,因此,在本发明的一些实施例中,先进行S401和S402,当第一向量方向和第二向量方向相交时,再进行S301和S302,当第一初始速度和第二初始速度的差值大于阈值差值时,再进行S201,可最大程度的降低计算冗余,并最大程度的提高碰撞模拟的流畅性。
应当理解的是:第一初始速度和第二初始速度的差值可根据实际情况或经验值进行设置或调整,在此不做具体限定。
进一步地,由于第一刚体和第二刚体均具有弹性系数,为了避免由于弹性碰撞导致碰撞检测发生错误,在发明的一些实施例中,如图5所示,S103包括:
S501、获取第一刚体的第一弹性系数和第二刚体的第二弹性系数;
S502、根据第一弹性系数、第二弹性系数以及子帧时间间隔的个数确定起始切片编号;
具体地,起始切片编号为:
N=[-Q*(a1+a2)/4]0
式中,N为起始切片编号;a1为第一弹性系数;a2为第二弹性系数;Q为子帧时间间隔的个数;[]0为向0取整函数。
S503、起始切片编号以及在起始切片编号之后的时间切片编号为备选时间切片编号。
通过确定起始切片编号,而不是遍历所有时间切片编号,一方面可以降低数据处理量,另一方面,可避免由于弹性碰撞导致的碰撞检测不准确的问题,提高了碰撞模拟的可靠性。这是由于:当不确定起始切片编号,而是直接遍历所有时间切片编号,由于刚体发生碰撞时的弹性形变,会导致发生碰撞的判断不准确性,例如:会在刚体碰撞前就判定已经发生碰撞,从而导致备选时间切片编号的不准确性,导致碰撞检测不准确。
进一步地,为了实现更高精度的要求,如需对台球碰撞、弹珠反弹效果、弹跳运动等进行模拟时,在本发明的一些实施例中,如图6所示,在S105之后还包括:
S601、将目标子帧时间间隔和目标子帧时间间隔的前一子帧时间间隔进行至少一次均分,均分为多个次子帧时间间隔,并将每个次子帧时间间隔进行编号,生成多个次时间切片编号;
S602、确定多个次时间切片编号中发生碰撞的备选次时间切片编号;
S603、确定备选次时间切片编号中编号最小的目标次时间切片编号,并获取与次目标时间切片编号对应的目标次子帧时间间隔;
S604、根据目标次子帧时间间隔、初始速度以及调整坐标确定刚体的优化坐标,并将优化坐标代替调整坐标。
通过上述设置,通过对子帧时间间隔的进一步均分,可实现更精细的计算,从而提高碰撞模拟的精度。
且应当理解的是:将子帧时间间隔进行均分的次数可根据实际所需要的精度进行调整,可以进行一次均分、两次均分甚至更多次,在此不做具体限定。
进一步地,如图7所示,①和③为现有技术中石油PhysX让两颗球运动并发生碰撞的模拟过程,①为一次运动过程的模拟,将连续三帧快照;②为另一次运动的模拟,也连续三帧进行快照。对比可以发现,两次模拟的过程有差异,且球与球发生碰撞时,相交的深度是不同的;②和④为使用本发明实施例让两颗球运动并发生碰撞的模拟过程,与①和③一样,②和④为分别模拟的一次运动的三帧快照,对比可以看到,两次模拟的过程是完全一致,且球与球发生碰撞时,相交深度几乎为零,且两次完全相同。
因此可以看出:本发明实施例中提出的方法可保证多端的同步性和准确性。
为了更好实施本发明实施例中的碰撞数据处理方法,在碰撞数据处理方法基础之上,对应的,如图8所示,本发明实施例还提供了一种碰撞数据处理装置800,包括:
初始参数获取单元801,用于获取游戏引擎中所有刚体的初始坐标、初始速度以及当前帧时间间隔;
均分单元802,用于当刚体需要修正时,将所述当前帧时间间隔和所述当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个所述子帧时间间隔进行编号,生成多个时间切片编号;
子帧单元确定单元803,用于确定所述多个时间切片编号中发生碰撞的备选时间切片编号;并确定所述备选时间切片编号中编号最小的目标时间切片编号,获取与所述目标时间切片编号对应的目标子帧时间间隔;
调整单元804,用于根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标。
这里需要说明的是:上述实施例提供的碰撞数据处理装置800可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述方法实施例中的相应内容,此处不再赘述。
图9示出了本发明实施例提供的电子设备的结构示意图。如图9所示,所述电子设备900包括存储器901和处理器902。其中,存储器901可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器901可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
所述存储器901,用于存储程序;
所述处理器902,与所述存储器901耦合,用于执行所述存储器901中存储的所述程序,以用于:
获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔;
当所述刚体需要修正时,将所述当前帧时间间隔和所述当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个所述子帧时间间隔进行编号,生成多个时间切片编号;
确定所述多个时间切片编号中发生碰撞的备选时间切片编号;并确定所述备选时间切片编号中编号最小的目标时间切片编号,获取与所述目标时间切片编号对应的目标子帧时间间隔;
根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标。
应当理解的是:处理器902在执行存储器901中的程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面相应方法实施例的描述。
进一步地,本发明实施例对提及的电子设备900的类型不做具体限定,电子设备900可以为手机、平板电脑、个人数字助理(personal digitalassistant,PDA)、可穿戴设备、膝上型计算机(laptop)等便携式电子设备。便携式电子设备的示例性实施例包括但不限于搭载iOS、android、microsoft或者其他操作系统的便携式电子设备。上述便携式电子设备也可以是其他便携式电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本发明其他一些实施例中,电子设备800也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的台式计算机。
相应地,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时,能够实现上述各方法实施例提供的方法步骤或功能。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上对本发明所提供的碰撞数据处理方法、装置、电子设备及可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种碰撞数据处理方法,其特征在于,包括:
获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔;
当所述刚体为待修正刚体时,将所述当前帧时间间隔和所述当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个所述子帧时间间隔进行编号,生成多个时间切片编号;
确定所述多个时间切片编号中发生碰撞的备选时间切片编号;并确定所述备选时间切片编号中编号最小的目标时间切片编号,获取与所述目标时间切片编号对应的目标子帧时间间隔;
根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标;
在所述获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔之后包括:
判断所述刚体是否为待修正刚体;
所述判断所述刚体是否为待修正刚体包括:
将所述刚体分别与游戏引擎中的其他刚体组成多个待处理刚体组,并根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正,若所述待处理刚体组需要修正,则所述刚体为所述待修正刚体;
所述待处理刚体组包括第一刚体和第二刚体,所述初始坐标包括所述第一刚体的第一初始坐标和所述第二刚体的第二初始坐标,所述初始速度包括所述第一刚体的第一初始速度和所述第二刚体的第二初始速度;所述根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正包括:
根据所述第一初始坐标和所述第二初始坐标计算所述第一刚体和所述第二刚体之间的空间距离;
确定所述第一初始速度和所述第二初始速度中速度较大的碰撞初始速度;
根据所述碰撞初始速度和所述当前帧时间间隔确定碰撞距离;
判断所述空间距离是否大于所述碰撞距离,若所述空间距离大于所述碰撞距离,则所述待处理刚体组不需要进行修正,若所述空间距离小于或等于所述碰撞距离,则所述待处理刚体组需要进行修正;
所述确定所述多个时间切片编号中发生碰撞的备选时间切片编号包括:
获取所述第一刚体的第一弹性系数和所述第二刚体的第二弹性系数;
根据所述第一弹性系数、所述第二弹性系数以及所述子帧时间间隔的个数确定起始切片编号;
所述起始切片编号以及在所述起始切片编号之后的所述时间切片编号为所述备选时间切片编号;
在所述根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标之后还包括:
将所述目标子帧时间间隔和所述目标子帧时间间隔的前一子帧时间间隔进行至少一次均分,均分为多个次子帧时间间隔,并将每个所述次子帧时间间隔进行编号,生成多个次时间切片编号;
确定所述多个次时间切片编号中发生碰撞的备选次时间切片编号;
确定所述备选次时间切片编号中编号最小的目标次时间切片编号,并获取与所述目标次时间切片编号对应的目标次子帧时间间隔;
根据所述目标次子帧时间间隔、所述初始速度以及所述调整坐标确定所述刚体的优化坐标,并将所述优化坐标代替所述调整坐标;
其中,调整坐标为:
P’= P + V * T
式中,P’为调整坐标;P为初始坐标;V为初始速度;T为不同时间切片编码对应的子帧时间间隔。
2.根据权利要求1所述的碰撞数据处理方法,其特征在于,在所述根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正之前还包括:
计算所述第一初始速度和所述第二初始速度的差值;
判断所述差值是否大于阈值差值,若所述差值大于所述阈值差值,则再根据所述初始坐标和所述初始速度判断所述差值大于所述阈值差值的待处理刚体组是否需要进行修正。
3.根据权利要求1所述的碰撞数据处理方法,其特征在于,在所述根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正之前还包括:
分别确定所述第一初始速度的第一向量方向和所述第二初始速度的第二向量方向;
判断所述第一向量方向和所述第二向量方向是否相交,若所述第一向量方向和所述第二向量方向相交,则再根据所述初始坐标和所述初始速度判断所述第一向量方向和所述第二向量方向相交的待处理刚体组是否需要进行修正。
4.一种碰撞数据处理装置,其特征在于,包括:
初始参数获取单元,用于获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔;
均分单元,当所述刚体为待修正刚体时,将所述当前帧时间间隔和所述当前帧时间间隔的前一帧时间间隔均分为多个子帧时间间隔,并将每个所述子帧时间间隔进行编号,生成多个时间切片编号;
子帧单元确定单元,用于确定所述多个时间切片编号中发生碰撞的备选时间切片编号;并确定所述备选时间切片编号中编号最小的目标时间切片编号,获取与所述目标时间切片编号对应的目标子帧时间间隔;
调整单元,用于根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标;
在所述获取游戏引擎中刚体的初始坐标、初始速度以及当前帧时间间隔之后包括:
判断所述刚体是否为待修正刚体;
所述判断所述刚体是否为待修正刚体包括:
将所述刚体分别与游戏引擎中的其他刚体组成多个待处理刚体组,并根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正,若所述待处理刚体组需要修正,则所述刚体为所述待修正刚体;
所述待处理刚体组包括第一刚体和第二刚体,所述初始坐标包括所述第一刚体的第一初始坐标和所述第二刚体的第二初始坐标,所述初始速度包括所述第一刚体的第一初始速度和所述第二刚体的第二初始速度;所述根据所述初始坐标和所述初始速度判断所述多个待处理刚体组中的每一待处理刚体组是否需要进行修正包括:
根据所述第一初始坐标和所述第二初始坐标计算所述第一刚体和所述第二刚体之间的空间距离;
确定所述第一初始速度和所述第二初始速度中速度较大的碰撞初始速度;
根据所述碰撞初始速度和所述当前帧时间间隔确定碰撞距离;
判断所述空间距离是否大于所述碰撞距离,若所述空间距离大于所述碰撞距离,则所述待处理刚体组不需要进行修正,若所述空间距离小于或等于所述碰撞距离,则所述待处理刚体组需要进行修正;
所述确定所述多个时间切片编号中发生碰撞的备选时间切片编号包括:
获取所述第一刚体的第一弹性系数和所述第二刚体的第二弹性系数;
根据所述第一弹性系数、所述第二弹性系数以及所述子帧时间间隔的个数确定起始切片编号;
所述起始切片编号以及在所述起始切片编号之后的所述时间切片编号为所述备选时间切片编号;
在所述根据所述目标子帧时间间隔、所述初始速度以及所述初始坐标确定所述刚体的调整坐标,并将所述调整坐标代替所述初始坐标之后还包括:
将所述目标子帧时间间隔和所述目标子帧时间间隔的前一子帧时间间隔进行至少一次均分,均分为多个次子帧时间间隔,并将每个所述次子帧时间间隔进行编号,生成多个次时间切片编号;
确定所述多个次时间切片编号中发生碰撞的备选次时间切片编号;
确定所述备选次时间切片编号中编号最小的目标次时间切片编号,并获取与所述目标次时间切片编号对应的目标次子帧时间间隔;
根据所述目标次子帧时间间隔、所述初始速度以及所述调整坐标确定所述刚体的优化坐标,并将所述优化坐标代替所述调整坐标;
其中,调整坐标为:
P’= P + V * T
式中,P’为调整坐标;P为初始坐标;V为初始速度;T为不同时间切片编码对应的子帧时间间隔。
5.一种电子设备,其特征在于,包括存储器和处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述权利要求1至3中任一项所述碰撞数据处理方法中的步骤。
6.一种计算机可读存储介质,其特征在于,用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时,能够实现上述权利要求1至3中任一项所述碰撞数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110776668.5A CN113577773B (zh) | 2021-07-08 | 2021-07-08 | 一种碰撞数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110776668.5A CN113577773B (zh) | 2021-07-08 | 2021-07-08 | 一种碰撞数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113577773A CN113577773A (zh) | 2021-11-02 |
CN113577773B true CN113577773B (zh) | 2024-01-23 |
Family
ID=78246644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110776668.5A Active CN113577773B (zh) | 2021-07-08 | 2021-07-08 | 一种碰撞数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113577773B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003038851A (ja) * | 2001-07-27 | 2003-02-12 | Namco Ltd | ゲーム情報、情報記憶媒体、及びゲーム装置 |
CN101947385A (zh) * | 2010-10-12 | 2011-01-19 | 刘铮 | 在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法 |
CN102253862A (zh) * | 2011-04-26 | 2011-11-23 | 浙江大学 | 一种基于SIMD的k-DOP包围盒碰撞检测方法 |
CN102663808A (zh) * | 2012-02-29 | 2012-09-12 | 中山大学 | 一种基于数字家庭娱乐中三维模型的刚体模型建立方法 |
CN104850726A (zh) * | 2014-02-13 | 2015-08-19 | 博雅网络游戏开发(深圳)有限公司 | 基于碰撞游戏的异常数据检测方法和系统 |
CN112619151A (zh) * | 2020-12-22 | 2021-04-09 | 上海米哈游天命科技有限公司 | 一种碰撞预测方法、装置、电子设备及存储介质 |
CN112915542A (zh) * | 2021-03-31 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 一种碰撞数据处理方法、装置、计算机设备及存储介质 |
-
2021
- 2021-07-08 CN CN202110776668.5A patent/CN113577773B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003038851A (ja) * | 2001-07-27 | 2003-02-12 | Namco Ltd | ゲーム情報、情報記憶媒体、及びゲーム装置 |
CN101947385A (zh) * | 2010-10-12 | 2011-01-19 | 刘铮 | 在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法 |
CN102253862A (zh) * | 2011-04-26 | 2011-11-23 | 浙江大学 | 一种基于SIMD的k-DOP包围盒碰撞检测方法 |
CN102663808A (zh) * | 2012-02-29 | 2012-09-12 | 中山大学 | 一种基于数字家庭娱乐中三维模型的刚体模型建立方法 |
CN104850726A (zh) * | 2014-02-13 | 2015-08-19 | 博雅网络游戏开发(深圳)有限公司 | 基于碰撞游戏的异常数据检测方法和系统 |
CN112619151A (zh) * | 2020-12-22 | 2021-04-09 | 上海米哈游天命科技有限公司 | 一种碰撞预测方法、装置、电子设备及存储介质 |
CN112915542A (zh) * | 2021-03-31 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 一种碰撞数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113577773A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3965431A1 (en) | Video data processing method and related device | |
US11423518B2 (en) | Method and device of correcting image distortion, display device, computer readable medium, electronic device | |
CN108830900B (zh) | 关键点的抖动处理方法和装置 | |
US20130271487A1 (en) | Position lag reduction for computer drawing | |
CN109966741B (zh) | 位置更新方法、装置、设备及存储介质 | |
CN110559647B (zh) | 虚拟射击游戏中准星显示的控制方法及装置、介质、设备 | |
CN102184572A (zh) | 三维图形裁剪方法、呈现方法及其图形处理装置 | |
CN105094623A (zh) | 一种信息处理方法及电子设备 | |
CN105205860A (zh) | 三维模型场景的展示方法及装置 | |
CN104142786A (zh) | 一种提示框显示方法及终端 | |
CN113577773B (zh) | 一种碰撞数据处理方法、装置、电子设备及存储介质 | |
EP2980531A1 (en) | Positioning device, method for controlling same, and program | |
CN117830487A (zh) | 一种虚拟对象的渲染方法、装置、设备及介质 | |
CN110478906A (zh) | 投射物运行轨迹处理方法及装置 | |
CN113378435A (zh) | 粒子生成方法、装置、设备及存储介质 | |
CN110751399B (zh) | 地震危险性并行分析方法、装置及设备 | |
US20170061668A1 (en) | Data processing apparatus and method of detecting position information | |
CN110187144B (zh) | 加速度传感器校准方法及装置 | |
CN106885567B (zh) | 一种惯导协作定位方法及定位设备 | |
CN104866143B (zh) | 一种触摸点的确定方法、装置及触屏设备 | |
EP4403888A1 (en) | Vibration assessment method and apparatus, computer device, storage medium, and computer program product | |
CN114470786B (zh) | 帧同步数据处理方法、装置、可读介质和电子设备 | |
CN106293447B (zh) | 显示方法及显示设备 | |
KR20140078681A (ko) | 멀티-포인터 간접 입력 장치들을 위한 가속도-기반 상호작용 기법 | |
CN110058780B (zh) | 一种终端的操作方法、终端和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |