本文作者:kaifamei

基于可形变网格的碰撞处理方法、系统、设备及介质与流程

更新时间:2025-12-12 06:55:33 0条评论

基于可形变网格的碰撞处理方法、系统、设备及介质与流程



1.本发明涉及计算机仿真技术领域,尤其是基于可形变网格的碰撞处理方法、系统、设备及介质。


背景技术:

2.基于物理的仿真动画通过在计算机中求解基于物理的动力学微分方程实现逼真的物体运动和交互动画,在游戏、影视特效、工业设计和计算机图形学(cg)艺术中有着大量运用。现实中的可形变弹性物体如布料、头发、橡胶、塑料和金属薄壳制品等在受力下会发生形变,而形变又产生应力。在物理仿真动画的实际应用中,一般会将多个可形变弹性物体和预设的碰撞物一同组成场景并使其相互碰撞交互,产生丰富的视觉效果。
3.计算机图形学中,可形变弹性物体一般由网格(mesh)表示,其运动和形变自由度由各个顶点的位置坐标提供。对于单个可形变物,其总弹性势能一般可写为由网格所有顶点坐标决定的标量值函数。由总弹性势能对各顶点位置坐标求导可得到各顶点所受的弹力,而弹力对时间积分则可得到顶点的冲量。由于弹力是顶点坐标的函数,但顶点坐标随时间一直变化,因此弹力对时间的积分难以精确计算。应用中一般将整个仿真的时域划分为大量极短的时间步,并近似认为单个时间步中的弹力保持恒定,从而近似计算冲量积分。冲量积分计算完成后,将冲量除以顶点质量即可得到一个时间步中弹力对顶点施加的速度变化量。
4.但是,由于物理仿真往往涉及极高的三角面数,即使使用bvh(层次包围盒)和空间剖分等加速结构,碰撞处理在仿真中也常常占据大量的运行时间,且加速结构和碰撞处理的实现较为复杂。


技术实现要素:

5.有鉴于此,为至少部分解决上述技术问题或者缺陷之一,本发明实施例的目的在于提供一种快速且实现较简单的基于可形变网格的碰撞处理方法;此外,实施例还提供了能够实现这一方法的系统、装置以及存储介质。
6.一方面,本技术技术方案提供了基于可形变网格的碰撞处理方法,包括以下步骤:
7.获取可形变弹性物体表面中三角面的纤维向量;
8.构建可形变弹性物体的包围盒,根据所述包围盒构建得到笛卡尔网格;
9.对碰撞接触面进行采样,并根据所述三角面的顶点坐标构建得到采样点集;
10.根据所述三角面的顶点坐标以及所述纤维向量,进行塑性投影得到目标弹性形变梯度;
11.根据所述采样点集中的采样点以及所述目标弹性形变梯度,对动量方程进行离散化求解得到所述笛卡尔网格中格点的第一速度;
12.构建有向距离场,根据所述格点在所述有向距离场的第二速度以及法向量确定可形变弹性碰撞后的第三速度;
13.根据所述第三速度确定所述采样点的第一冲量,根据所述第一冲量确定所述三角面的速度变化量,根据所述速度变化量确定碰撞情况。
14.在本技术方案的一种可行的实施例中,所述构建可形变弹性物体的包围盒,根据所述包围盒构建得到笛卡尔网格这一步骤,包括:
15.获取所述包围盒的最大值坐标点以及最小值坐标点;
16.根据所述最大值坐标点、所述最小值坐标点以及元胞边长计算得到三轴元胞数,根据所述三轴元胞数确定所述笛卡尔网格。
17.在本技术方案的一种可行的实施例中,所述根据所述三角面的顶点坐标以及所述纤维向量,进行塑性投影得到目标弹性形变梯度这一步骤,包括:
18.根据所述三角面的顶点坐标以及所述纤维向量构建得到正交基;
19.获取初始构型下的第一向量,以及发生弹性形变后的第二向量,所述第二向量通过所述正交基进行表征;
20.根据所述第一向量的逆矩阵以及所述第二向量计算得到所述候选弹性形变梯度;
21.根据所述候选弹性形变梯度进行塑性投影得到所述目标弹性形变梯度。
22.在本技术方案的一种可行的实施例中,所述根据所述三角面的顶点坐标以及所述纤维向量,进行塑性投影得到目标弹性形变梯度这一步骤,包括:
23.获取所述三角面在法向量上的伸缩状态;
24.根据所述伸缩状态确定所述三角面所在表面为未接触状态,将接触弹力与摩擦力均置零,根据塑性约束条件对所述候选弹性形变梯度进行塑性投影得到所述目标弹性形变梯度;
25.或者,
26.根据所述伸缩状态确定所述三角面所在表面为接触状态,获取所述三角面在法向量上的剪切状态以及剪切方向,确定所述剪切状态以及所述剪切方向满足摩擦定律约束,对所述候选弹性形变梯度进行塑性投影得到所述目标弹性形变梯度。
27.在本技术方案的一种可行的实施例中,所述根据所述伸缩状态确定所述三角面所在表面为接触状态,获取所述三角面在法向量上的剪切状态以及剪切方向,确定所述剪切状态以及所述剪切方向满足摩擦定律约束,对所述候选弹性形变梯度进行塑性投影得到所述目标弹性形变梯度这一步骤,包括:
28.根据所述剪切状态以及剪切方向确定剪切弹性形变,根据所述剪切弹性形变以及弹性势能函数计算得到所述摩擦力;
29.根据伸缩弹性形变以及碰撞势垒函数计算得到所述接触弹力;
30.确定所述摩擦力的第一模长与所述接触弹力的第二模长满足库伦摩擦定律,对所述候选弹性形变梯度进行塑性投影得到所述目标弹性形变梯度。
31.在本技术方案的一种可行的实施例中,所述根据所述采样点集中的采样点以及所述目标弹性形变梯度,对动量方程进行离散化求解得到所述笛卡尔网格中格点的第一速度这一步骤,包括:
32.根据所述目标弹性形变梯度以及b样条权函数计算得到所述笛卡尔网格中由所述采样点产生的格点力;
33.根据所述采样点的坐标以及所述采样点的质量通过所述b样条权函数计算得到格
点质量;
34.根据所述格点力以及所述格点质量,对动量方程进行求解得到所述第一速度。
35.在本技术方案的一种可行的实施例中,所述构建有向距离场,根据所述格点在所述有向距离场的第二速度以及法向量确定可形变弹性碰撞后的第三速度这一步骤,包括:
36.将所述采样点的局部有向距离场进行聚合得到有向距离场值;
37.根据所述有向距离场值,结合所述第二速度、速度投影函数以及惩罚力确定所述第三速度。
38.另一方面,本技术技术方案还提供了基于可形变网格的碰撞处理系统,该系统包括:
39.第一单元,用于获取可形变弹性物体表面中三角面的纤维向量;
40.第二单元,用于构建可形变弹性物体的包围盒,根据所述包围盒构建得到笛卡尔网格;
41.第三单元,用于对碰撞接触面进行采样,并根据所述三角面的顶点坐标构建得到采样点集;
42.第四单元,用于根据所述三角面的顶点坐标以及所述纤维向量,进行塑性投影得到目标弹性形变梯度;
43.第五单元,用于根据所述采样点集中的采样点以及所述目标弹性形变梯度,对动量方程进行离散化求解得到所述笛卡尔网格中格点的第一速度;
44.第六单元,用于构建有向距离场,根据所述格点在所述有向距离场的第二速度以及法向量确定可形变弹性碰撞后的第三速度;
45.第七单元,用于根据所述第三速度确定所述采样点的第一冲量,根据所述第一冲量确定所述三角面的速度变化量,根据所述速度变化量确定碰撞情况。
46.另一方面,本技术技术方案还提供一种基于可形变网格的碰撞处理设备,该设备包括:
47.至少一个处理器;
48.至少一个存储器,用于存储至少一个程序;
49.当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器运行如第一方面中任一项所述的基于可形变网格的碰撞处理方法。
50.另一方面,本技术技术方案还提供一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行如第一方面中任一项所述的基于可形变网格的碰撞处理方法。
51.本发明的优点和有益效果将在下面的描述中部分给出,其他部分可以通过本发明的具体实施方式了解得到:
52.本技术技术方案提供了一种基于可形变网格的碰撞处理方法、系统、设备以及介质;方案针对可形变弹性物网格的物理仿真框架中的碰撞处理部分,通过在每个时间步的碰撞处理步中构造一个笛卡尔辅助网格(grid)实现快速的可形变网格间以及可形变网格与预设场景碰撞物的碰撞处理;方案中的碰撞处理方法在笛卡尔网格上只需记录和累加状态,而不需要维护网格格点从属的三角形列表等信息,使得本发明相对已有的碰撞检测和碰撞响应技术有实现简单和速度快的优势。
附图说明
53.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
54.图1为本技术实施例提供的基于可形变网格的碰撞处理方法的步骤流程图;
55.图2为本技术实施例提供的另一种基于可形变网格的碰撞处理方法的步骤流程图;
56.图3为本技术实施例提供中的弹性形变的示意图。
具体实施方式
57.下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
58.在相关技术方案中,多数可形变弹性物的物理仿真框架将时间步的计算流程分为两个步骤,即计算弹性势能对物体影响的动量方程(即冲量积分)求解步和碰撞处理步。动量方程求解中只涉及单个可形变弹性物的状态,要通过可形变弹性物间以及可形变弹性物与预设碰撞物间的碰撞交互产生期望的效果,则必须经过碰撞处理步,对涉及碰撞的可形变弹性物状态进行对应的更新。碰撞检测的主要目的是快速的检测出发生碰撞的三角面,碰撞处理的目的则是令系统状态从有碰撞态变为无碰撞态。常用的碰撞检测加速方法包括bvh(层次包围盒)与空间哈希。bvh通过将三角面的包围盒逐级组合成越来越大的包围盒将空间进行剖分,在进行三角面的碰撞查询时可以剔除掉未相交包围盒的三角面,从而减少检测次数。空间哈希使用笛卡尔网格将空间划分为一个个元胞(cell),在进行碰撞检测时先为各个元胞记录与其碰撞的三角面,然后对每个元胞下所属的三角面进行两两碰撞检测,从而减少检测次数。
59.基于前述的技术背景内容,本技术技术方案针对一般可形变弹性物的物理仿真框架,提出一种快速的碰撞处理步流程,对可形变弹性物网格的物理仿真框架中的碰撞处理部分,通过在每个时间步的碰撞处理步中构造一个笛卡尔辅助网格(grid)实现快速的可形变网格间以及可形变网格与预设场景碰撞物的碰撞处理。
60.在第一方面,如图1所示,本技术技术方案提供了基于可形变网格的碰撞处理方法;方法包括步骤s100-s700:
61.s100、获取可形变弹性物体表面中三角面的纤维向量;
62.具体在实施例中,在整个仿真过程中,实施例追踪可形变弹性物网格表面的相对位移信息,例如挤压和滑动,并由此定义势能函数,从而实现碰撞避免和相应的摩擦处理。在仿真开始前,为可形变弹性物表面的各个三角面记录纤维(fiber)向量ni,其中i为对应三角面的下标,纤维向量可以被初始化为三角面的法向量,并在仿真过程中随着三角面附近的物质相对运动发生挤压和偏转。
63.s200、构建可形变弹性物体的包围盒,根据所述包围盒构建得到笛卡尔网格;
64.具体在实施例中,在碰撞处理步中,首先计算场景内所有可形变弹性物的aabb包围盒,其包括但不限于轴对齐包围盒;并根据包围盒各条边在坐标轴上所能包括的元胞数,确定笛卡尔网格的三轴元胞数,从而确定笛卡尔网格。
65.在一些可行的实施例中,实施例方案中,构建可形变弹性物体的包围盒,根据所述包围盒构建得到笛卡尔网格这一步骤s200,可以包括步骤s210-s220:
66.s210、获取所述包围盒的最大值坐标点以及最小值坐标点;
67.s220、根据所述最大值坐标点、所述最小值坐标点以及元胞边长计算得到三轴元胞数,根据所述三轴元胞数确定所述笛卡尔网格。
68.具体在实施例中,包围盒的最小点记为最大点记为将包围盒在三个坐标轴上的长度除以元胞边长δx并向上取整,即可得到包裹所有可形变弹性物的最小的笛卡尔网格在三轴上的元胞数:
[0069][0070]
其中,i

,

,

为各坐标轴上的元胞数;进一步地,实施例将各轴上的元胞数加4,即为碰撞处理步中使用的笛卡尔网格的三轴元胞数[i,j,k]
t
=[i

+4,j

+4,k

+4]
t
。对于此前得到的aabb包围盒,将其在三轴上的最小值分别减去2δx,即得到碰撞处理步中使用的笛卡尔网格的最小点笛卡尔网格的格点集合可表示为:
[0071][0072]
s300、对碰撞接触面进行采样,并根据所述三角面的顶点坐标构建得到采样点集;
[0073]
具体在实施例中,在步骤s200之后,实施例将对于可形变弹性物网格的表面和预设的场景碰撞物网格的表面进行采样,对于每个三角面片,记其三个顶点坐标分别为x1,x2,x3,由顶点坐标可得到两个边向量和所有采样点的坐标均可表示为x1+(0.5+i)δxe1+(0.5+j)δxe2,其中i和j为任意非负整数,在这些坐标中落在三角面片内的点组成该三角面片的采样点集。对于较小的三角面,可能没有采样点落在面片内,此时实施例可以取三角面三个顶点坐标的平均为采样点。通过采样,实施例可以得到与笛卡尔网格分辨率相匹配的采样点集。
[0074]
s400、根据所述三角面的顶点坐标以及所述纤维向量,进行塑性投影得到目标弹性形变梯度;
[0075]
具体在实施例中,从可形变物三角面顶点坐标{x
vert
}和纤维向量{ni}重建形变梯度,进行塑性投影并更新纤维向量{ni},同时得到弹性形变梯度fe,采样点弹性形变梯度{f
ep
}取所在三角面的fe。
[0076]
s500、根据所述采样点集中的采样点以及所述目标弹性形变梯度,对动量方程进行离散化求解得到所述笛卡尔网格中格点的第一速度;
[0077]
具体在实施例中,如图2所示,通过可形变物采样点的坐标{x
p
},速度{v
p
},质量{m
p
}和弹性形变梯度{f
ep
}计算笛卡尔网格格点的格点力{fi},质量{mi}以及速度{vi},求解格点动量方程得到可形变物碰撞处理后的新格点速度即第一速度。
[0078]
s600、构建有向距离场,根据所述格点在所述有向距离场的第二速度以及法向量确定可形变弹性碰撞后的第三速度;
[0079]
具体在实施例中,如图2所示,通过预设碰撞物采样点的{x
p
}和{v
p
}计算笛卡尔网格格点的有向距离场的速度即第二速度和法向量结合可形变物碰撞处理后的投影得到预设碰撞物碰撞处理后的新格点速度即第三速度。
[0080]
s700、根据所述第三速度确定所述采样点的第一冲量,根据所述第一冲量确定所述三角面的速度变化量,根据所述速度变化量确定碰撞情况;
[0081]
具体在实施例中,如图2所示,根据格点和可形变物体的采样点{x
p
}得到新的{v
p
}和由得到采样点更新后的纤维向量{n
p
},平均得到三角面的新纤维向量{ni},由{v
p
}反求冲量得到顶点的速度变化量,进而更新顶点速度{v
vert
}。
[0082]
在一些可行的实施例中,实施例方法中,根据所述三角面的顶点坐标以及所述纤维向量,进行塑性投影得到目标弹性形变梯度这一步骤s400,可以包括步骤s410-s440:
[0083]
s410、根据所述三角面的顶点坐标以及所述纤维向量构建得到正交基;
[0084]
在实施例中,每个可形变物的表面采样点都对应可形变物的一部分表面积,该表面积s
p
可通过采样点所在的三角面面积除以三角面上的采样点数计算得到,其中p为采样点的下标。对于可形变物表面的采样点p,将其所属三角面的纤维向量作为采样点的纤维向量,记为n
p

[0085]
对于每个三角面片,记其三个顶点坐标分别为x1,x2,x3,假设顶点顺序满足右手系顺序,构造三个单位向量如下:
[0086][0087][0088]
e3=n;
[0089]
其中,n是三角面的纤维向量,在初始构型下取三角面的法向;从而e1,e2和e3构成了一组正交基。
[0090]
s420、获取初始构型下的第一向量,以及发生弹性形变后的第二向量,所述第二向量通过所述正交基进行表征;
[0091]
s430、根据所述第一向量的逆矩阵以及所述第二向量计算得到所述候选弹性形变梯度;
[0092]
s440、根据所述候选弹性形变梯度进行塑性投影得到所述目标弹性形变梯度;
[0093]
具体在实施例中,根据弹性形变梯度fe的定义,对于初始构型下的向量δx,即初始构型下的第一向量;其在经历弹性形变后的取值δx,即发生弹性形变后的第二向量,有如下估计:
[0094]
δx=feδx
[0095]
记这组基向量在初始构型下的取值为e1,e2和e3,则经历弹性形变后其形式可表示为:
[0096][0097]
实施例在已知经历弹性形变后的向量e1,e2和e3的情况下,可以反求弹性形变梯度fe,需要说明的是,此处计算得到的fe为候选弹性形变梯度:
[0098][0099]
对于与三角面共面的两个单位向量,由于面内的形变能量已体现在碰撞处理步前,碰撞处理步中将此类形变视为塑性形变,因此应当只发生旋转,不产生形变,即应当只发生旋转,不产生形变,即为纤维向量的弹性形变部分,可以记为ne。
[0100]
实施例中,对fe进行qr分解,可将旋转部分分离,如图3所示,进一步将r分解为三个矩阵:
[0101]
q=[q1,q2,q3]
[0102]
r=r1r2r3,
[0103][0104][0105][0106]
其中,如图3所示,实施例中,r1代表面内弹性形变,因此*部分的取值应当使其为单位阵,r2代表纤维向量即法向上的物质剪切形变,r3代表纤维向量的压缩。
[0107]
然后,实施例根据矩阵r,将候选弹性形变梯度fr进行塑性投影得到所述目标弹性形变梯度fe。
[0108]
在一些可行的实施例中,实施例方法中,根据所述三角面的顶点坐标以及所述纤维向量,进行塑性投影得到目标弹性形变梯度这一步骤s440,可以包括步骤s441-s443:
[0109]
s441、获取所述三角面在法向量上的伸缩状态;
[0110]
具体在实施例中,r3反映法方向的伸缩程度,当r3值为1时,在法方向既不发生压缩也不发生拉伸,当r3值小于1时,在法向量方向发生压缩,对应的压缩弹性势能导出的应力应抵抗压缩造成的形变,从而避免两表面进一步接近,而当r
33
值大于1时,则表明材料不处于接触状态,因此无需产生应力。根据以上分析,可选定一种满足要求的碰撞势垒函数,记为ψc:
[0111][0112]
其中;kc为压缩弹性势能的刚度系数,该能量函数仅惩罚材料法向量方向的压缩,而不惩罚拉伸。
[0113]
s442、根据所述伸缩状态确定所述三角面所在表面为未接触状态,将接触弹力与
[0129]
进一步地,可计算摩擦力ff的模长||ff||及接触弹力fn的模长||fn||:
[0130][0131]
||fn||=(1-r3)2[0132]
假设材料间摩擦系数为cf,则摩擦力的模长与接触弹力的模长需满足库伦摩擦定律:
[0133]
||ff||≤cf||fn||
[0134]
因此,由弹性形变fe得到的矩阵r应满足||ff||≤cf||fn||,从而对fe产生了约束,满足约束的fe为对应矩阵空间的一个子域。在实施例的计算过程中,通过将fe投影到该约束子域,可得到弹性形变。
[0135]
在一些可行的实施例中,实施例方法,根据所述采样点集中的采样点以及所述目标弹性形变梯度,对动量方程进行离散化求解得到所述笛卡尔网格中格点的第一速度这一步骤s500,可以包括步骤s510-s520:
[0136]
s510、根据所述目标弹性形变梯度以及b样条权函数计算得到所述笛卡尔网格中由所述采样点产生的格点力;
[0137]
s520、根据所述采样点的坐标以及所述采样点的质量通过所述b样条权函数计算得到格点质量
[0138]
s530、根据所述格点力以及所述格点质量,对动量方程进行求解得到所述第一速度。
[0139]
具体在实施例中,通过前序步骤得到能量密度与弹性形变梯度,可以进一步计算得到对应的应力,进而通过动量方程的求解改变物体的速度。实施例可以使用移动最小二乘物质点法对动量方程进行离散化求解,笛卡尔网格格点上由采样点产生的格点力可写为:
[0140][0141]
其中,ξi是以第i个格点为中心的二次b样条权函数,xi是第i个格点的坐标,x
p
是第p个采样点的坐标。ψ为总能量密度函数,具体为前述的碰撞势垒函数和抵抗剪切的能量密度函数的加和;v
p
的定义为采样点对应的移动最小二乘物质点体积,这里推荐取为采样点所在三角面的面积除以其上的采样点数再乘以一个厚度参数。需要说明的是,由于ψ也即总能量密度函数自身已有可控制的参数,厚度参数可以取1。格点上的质量与动量同样由b样条权函数得到,格点质量可写为:
[0142][0143]
动量可写为:
[0144][0145]
在格点处求解动量方程:
[0146][0147]
可得到格点的在可形变物碰撞处理后的新速度,即第一速度。
[0148]
在一些可行的实施方式中,实施例方法构建有向距离场,根据所述格点在所述有向距离场的第二速度以及法向量确定可形变弹性碰撞后的第三速度这一步骤s600,可以包括步骤s610-s620:
[0149]
s610、将所述采样点的局部有向距离场进行聚合得到有向距离场值;
[0150]
s620、根据所述有向距离场值,结合所述第二速度、速度投影函数以及惩罚力确定所述第三速度;
[0151]
具体在实施例中,实施例使用有向距离场处理可形变物与预设碰撞物的碰撞,并提出一种快速生成近似有向距离场的方式;对于预设碰撞物表面的采样点,其局部的有向距离场可使用一个等值面扫掠近似。等值面有多种选择,其形状约接近采样点表面形状越好,本发明选用平面等值面以加速计算,平面法向量与表面在采样点处的法向量一致,有向距离场的值与平面等值面的位移一致。
[0152]
在生成全局的有向距离场时,需要将来自各个采样点的局部有向距离场进行聚合,对于空间内任意一点,使用如下公式决定有向距离场的值:
[0153][0154][0155]
其中,表示采样点p生成的距离场在点x处的取值,d(x)为全局有向距离场。在x处的有向距离场法向量和速度取采样点p
*
的法向量和速度。
[0156]
在格点上完成可形变弹性物间的碰撞处理以及预设碰撞物的有向距离场生成后,对于格点速度进一步进行预设碰撞物的碰撞处理。有向距离场的取值为正代表格点在物体外侧,反之在物体内侧,对于d(xi)小于阈值的格点,首先进行速度投影。定义投影函数如下:
[0157][0158]
其中vn=《v,n》,v
t
=v-vnn。
[0159]
为了避免由于近似的有向速度场误差或物质点法误差造成的穿透现象,在格点上同时使用一个惩罚力改变格点速度:
[0160][0161]
其中α和β控制惩罚力的大小,最终在碰撞处理后的的格点速度为:
[0162][0163]
其中,为可形变弹性物间碰撞处理后的格点速度,和为格点有向距离场的速度和法向量。
[0164]
进一步地,实施例方法中,根据所述第三速度确定所述采样点的第一冲量,根据所述第一冲量确定所述三角面的速度变化量,根据所述速度变化量确定碰撞情况这一步骤
s700,可以具体为:
[0165]
在格点碰撞处理完成后,可以由格点回映射得到采样点的新速度和局部的速度场梯度估计:
[0166][0167][0168]
但采样点的实际运动自由度由三角面的三个顶点提供,因此需要将采样点的速度转换为顶点的速度。通过采样点的新速度可以求得采样点的速度变化量,从而得到时间步内采样点的冲量,该冲量可转换为三角形重心的动量和角动量变化量,并进一步由刚体旋转得到顶点的速度变化量,对顶点在各个三角面中的速度变化量求和,可得到总得顶点速度变化量,进而完成顶点的速度更新。
[0169]
对于三角面的纤维向量,由于ne=fee3,而对弹性梯度的更新有:
[0170][0171]
其中,δt为仿真的时间步长,因此纤维向量的更新可写为:
[0172][0173]
三角面的纤维向量取采样点纤维向量的均值。
[0174]
另一方面,本技术技术方案还提供了基于可形变网格的碰撞处理系统,该系统包括:
[0175]
第一单元,用于获取可形变弹性物体表面中三角面的纤维向量;
[0176]
第二单元,用于构建可形变弹性物体的包围盒,根据所述包围盒构建得到笛卡尔网格;
[0177]
第三单元,用于对碰撞接触面进行采样,并根据所述三角面的顶点坐标构建得到采样点集;
[0178]
第四单元,用于根据所述三角面的顶点坐标以及所述纤维向量,进行塑性投影得到目标弹性形变梯度;
[0179]
第五单元,用于根据所述采样点集中的采样点以及所述目标弹性形变梯度,对动量方程进行离散化求解得到所述笛卡尔网格中格点的第一速度;
[0180]
第六单元,用于构建有向距离场,根据所述格点在所述有向距离场的第二速度以及法向量确定可形变弹性碰撞后的第三速度;
[0181]
第七单元,用于根据所述第三速度确定所述采样点的第一冲量,根据所述第一冲量确定所述三角面的速度变化量,根据所述速度变化量确定碰撞情况。
[0182]
另一方面,本技术的技术方案还提供基于可形变网格的碰撞处理设备;其包括:
[0183]
至少一个处理器;至少一个存储器,该存储器用于存储至少一个程序;当至少一个程序被至少一个处理器执行,使得至少一个处理器运行如第一方面中的基于可形变网格的碰撞处理方法。
[0184]
本发明实施例还提供了一种存储介质,其存储有对应的执行程序,程序被处理器执行,实现第一方面中的基于可形变网格的碰撞处理方法。
[0185]
从上述具体的实施过程,可以总结出,本发明所提供的技术方案相较于现有技术存在以下优点或优势:
[0186]
本技术技术方案中提出的碰撞处理方法在笛卡尔网格上只需记录和累加状态,而不需要维护网格格点从属的三角形列表等信息,使得本发明相对已有的碰撞检测和碰撞响应技术有实现简单和速度快的优势。
[0187]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0188]
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
[0189]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
[0190]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0191]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0192]
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-7-1043-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-11-27 21:27:04

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论