System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 虚拟布料碰撞的处理方法、装置、电子设备及存储介质制造方法及图纸_技高网

虚拟布料碰撞的处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:42665751 阅读:13 留言:0更新日期:2024-09-10 12:21
本申请提供一种虚拟布料碰撞的处理方法、装置、电子设备及存储介质,该方法包括先获取目标虚拟布料对应的多个四面体;其中,每个四面体包括所述目标虚拟布料的四个顶点;然后当所述目标虚拟布料发生碰撞时,确定所述多个四面体中的任意一个四面体的矢量体积;其中,所述矢量体积包括体积的大小和正负值;然后当确定任意一个四面体的矢量体积为负值时,确定矢量体积为负值的目标四面体对应的四个目标顶点;并移动所述四个目标顶点,以使所述目标四面体的矢量体积恢复为正值,通过四面体的矢量体积是否为负值,可以准确的进行碰撞检测,减少了碰撞检测的次数的同时,避免了直接通过球体之间的相互碰撞检测出现的检测漏洞。

【技术实现步骤摘要】

本申请涉及虚拟布料碰撞处理的,尤其涉及一种虚拟布料碰撞的处理方法、装置、电子设备及存储介质


技术介绍

1、本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

2、虚拟布料模拟(碰撞)在游戏中是一个非常重要的效果。真实的模拟效果有利于提升游戏的沉浸感。目前相关技术中,游戏的布料往往是使用的基于位置的动力学(position-based dynamics,pbd)加弹簧质点模型进行解算的。即虚拟布料把一个网格的每一个顶点作为一个粒子。在处理碰撞时先将粒子假设为一个球体,然后通过球体之间的相互碰撞,来实现布料之间的碰撞。但是,这种虚拟布料碰撞方式,不仅碰撞检测耗时较长,而且容易出现碰撞漏检测。


技术实现思路

1、有鉴于此,本申请的目的在于提出一种虚拟布料碰撞的处理方法、装置、电子设备及存储介质,用以解决或部分解决上述
技术介绍
中的问题。

2、基于上述目的,本申请提供了一种虚拟布料碰撞的处理方法,包括:

3、获取目标虚拟布料对应的多个四面体;其中,每个四面体包括所述目标虚拟布料的四个顶点;

4、响应于所述目标虚拟布料发生碰撞,确定所述多个四面体中的任意一个四面体的矢量体积;其中,所述矢量体积包括体积的大小和正负值;

5、响应于确定任意一个四面体的矢量体积为负值,确定矢量体积为负值的目标四面体对应的四个目标顶点;

6、移动所述四个目标顶点,以使所述目标四面体的矢量体积恢复为正值。

7、基于同一专利技术构思,本申请示例性实施例还提供了一种虚拟布料碰撞的处理装置,包括:

8、获取模块,获取目标虚拟布料对应的多个四面体;其中,每个四面体包括所述目标虚拟布料的四个顶点;

9、碰撞响应模块,响应于所述目标虚拟布料发生碰撞,确定所述多个四面体中的任意一个四面体的矢量体积;其中,所述矢量体积包括体积的大小和正负值;

10、确定模块,响应于确定任意一个四面体的矢量体积为负值,确定矢量体积为负值的目标四面体对应的四个目标顶点;

11、恢复模块,移动所述四个目标顶点,以使所述目标四面体的矢量体积恢复为正值。

12、基于同一专利技术构思,本申请示例性实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上所述的虚拟布料碰撞的处理方法。

13、基于同一专利技术构思,本申请示例性实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序由一个或多个处理器执行以使得所述处理器执行如上所述的虚拟布料碰撞的处理方法。

14、从上面所述可以看出,本申请提供的虚拟布料碰撞的处理方法、装置、电子设备及存储介质,先获取目标虚拟布料对应的多个四面体;其中,每个四面体包括所述目标虚拟布料的四个顶点;然后当所述目标虚拟布料发生碰撞时,确定所述多个四面体中的任意一个四面体的矢量体积;其中,所述矢量体积包括体积的大小和正负值;然后当确定任意一个四面体的矢量体积为负值时,确定矢量体积为负值的目标四面体对应的四个目标顶点;并移动所述四个目标顶点,以使所述目标四面体的矢量体积恢复为正值,通过四面体的矢量体积是否为负值,可以准确的进行碰撞检测,并根据矢量体积恢复为正值准确的实现虚拟布料碰撞恢复,减少了碰撞检测的次数的同时,避免了直接通过球体之间的相互碰撞检测出现的检测漏洞,提高了虚拟布料碰撞处理的准确性和效率。

本文档来自技高网...

【技术保护点】

1.一种虚拟布料碰撞的处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在获取目标虚拟布料对应的多个四面体之前,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,确定所述多个四面体中的任意一个四面体的矢量体积,具体包括:

4.根据权利要求3所述的方法,其特征在于,通过以下公式确定所述四面体的矢量体积:

5.根据权利要求1所述的方法,其特征在于,移动所述四个目标顶点,以使所述目标四面体的矢量体积恢复为正值,具体包括:

6.根据权利要求5所述的方法,其特征在于,确定所述目标顶点的移动方向和移动距离,包括:

7.根据权利要求6所述的方法,其特征在于,通过以下公式确定每个所述目标顶点的移动方向和移动距离:

8.根据权利要求6所述的方法,其特征在于,通过以下公式计算每个所述目标顶点针对所述目标四面体的梯度:

9.一种虚拟布料碰撞的处理装置,其特征在于,包括:

10.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器执行所述程序时实现如权利要求1至8中任意一项所述的方法。

11.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行根据权利要求1至8中任一项所述的方法。

...

【技术特征摘要】

1.一种虚拟布料碰撞的处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在获取目标虚拟布料对应的多个四面体之前,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,确定所述多个四面体中的任意一个四面体的矢量体积,具体包括:

4.根据权利要求3所述的方法,其特征在于,通过以下公式确定所述四面体的矢量体积:

5.根据权利要求1所述的方法,其特征在于,移动所述四个目标顶点,以使所述目标四面体的矢量体积恢复为正值,具体包括:

6.根据权利要求5所述的方法,其特征在于,确定所述目标顶点的移动方向和移动距离,包括:

7.根据权...

【专利技术属性】
技术研发人员:刘忠源赵钰琨
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

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

1