一种基于应变的ADMM的Cosserat弹性杆高效仿真方法

摘要: 本发明属于计算机图形学中基于物理的动画与仿真,具体涉及一种基于应变的交替方向乘子法(admm)的cosserat弹性杆(微极弹性杆)仿真方法。背景技术:1、细长...
一种基于应变的ADMM的Cosserat弹性杆高效仿真方法

本发明属于计算机图形学中基于物理的动画与仿真,具体涉及一种基于应变的交替方向乘子法(admm)的cosserat弹性杆(微极弹性杆)仿真方法。

背景技术:

1、细长杆状结构在计算机图形学中无处不在,包括头发、绳索、手术缝合线、电缆、树干以及各类结构件。细长杆同时经历拉伸、剪切、弯曲和扭转变形,其相互作用产生了诸如树木随风摇曳、头发随身体运动飘动、肌肉与肌腱运动等复杂的自然现象。

2、cosserat弹性杆模型为杆上每一点配备一个材料框架,能够准确再现包括扭转和剪切在内的上述效果。采用直接牛顿求解器求解cosserat弹性杆系统虽然结果精确,但需要在每个时间步的每次迭代都重新组装并求解一个新的线性系统,计算开销巨大。投影动力学(projective dynamics,pd)则在初始状态对系统矩阵进行一次预分解,并在后续所有时间步复用该分解,从而实现每个时间步的快速求解。在该框架下,pd将第  个约束的弹性能近似为标准代理二次形:

3、

4、其中  为该约束所涉及的局部自由度, 为常数线性算子, 为约束流形上的局部投影目标;求解时在局部步计算投影目标 ,在全局步以预分解的常数系统矩阵一次性求解,即pd的局部-全局迭代。为:该约束对应的刚度系数,用于表征该约束在总弹性能中所占的权重。

5、然而,现有基于pd的cosserat弹性杆仿真器在拉伸-剪切刚度与弯曲-扭转刚度之比很大时收敛很差,迫使使用者人为降低材料刚度。由于刚度比与横截面半径的平方成反比,越细的杆刚度比越大,这一矛盾尤为突出。这种为了迁就求解器而进行的参数篡改,不可避免地会在真实物理场景中引入明显的下垂或虚假拉伸等视觉缺陷。

6、另一方面,已有研究提出用admm增强pd,使其能够处理一般非线性弹性材料。该类方法的局部更新有两种形式:基于投影的形式与基于优化的形式。将基于投影的形式直接应用于cosserat弹性杆会割裂位置与朝向之间的信息传播,导致收敛变慢;基于优化的形式虽然通过近端算子内部的局部优化处理了这种耦合、加快了信息传播,但显著增加了局部更新的成本,相对pd的总体提升仍然有限。此外,在交互式应用中,未收敛的残差会引入肉眼可见的数值阻尼。这些方法的辅助变量均定义在状态(位置、四元数)层级,当应用于cosserat弹性杆时限制了位置更新与朝向更新之间的信息交换。因此,业界亟需一种在真实物理参数下既高效又稳健的cosserat弹性杆仿真方法。

技术实现思路

1、本发明的目的是解决现有方法在真实物理参数(高刚度比)下无法高效、稳健地仿真cosserat弹性杆的问题,提出一种基于应变的admm的cosserat弹性杆仿真方法。其核心在于:将admm的辅助变量定义在应变层级而非状态层级,从而在增广拉格朗日的惩罚项中直接暴露位置-朝向耦合,并使admm的原变量更新(x-更新)得以恢复pd的局部-全局结构,且避免了非线性局部求解。

2、本发明的技术方案如下:

3、一种基于应变的admm的cosserat弹性杆高效仿真方法,所述方法建立cosserat弹性杆的离散模型,在弹性杆的顶点上布置位置变量 、在相邻顶点之间的线段上布置表示材料框架的单位四元数 ,定义每段线段的拉伸-剪切(ss)约束与每个顶点的弯曲-扭转(bt)约束,并以隐式欧拉积分在每个时间步内迭代更新弹性杆的位置与朝向;所述每个时间步内的迭代更新包括:

4、(1)仅针对拉伸-剪切约束,在应变层级引入辅助变量 ,其中 为线段方向、 为材料框架第三轴、 为该线段静息长度,并引入缩放对偶变量 ,将弹性杆的位置-朝向耦合显式置于增广拉格朗日函数的惩罚项内,重写增广拉格朗日函数;

5、在本发明的一些实施方式中,所述增广拉格朗日函数将非线性的位置-朝向耦合项整体置于admm惩罚项内,使该惩罚项同时包含位置变量与朝向变量并对二者进行显式耦合。

6、在本发明的一些实施方式中,所述辅助变量  与缩放对偶变量  分别具有闭式更新  与;更新后的值用于后续的弹性杆朝向更新与位置更新。

7、(2)原变量更新的不精确求解与局部-全局恢复,通过块坐标下降与投影动力学两级数学松弛进行不精确求解,将位置与朝向解耦为两个子问题,并使二者均化归为局部-全局迭代;

8、在本发明的一些实施方式中,所述块坐标下降与投影动力学的两级数学松弛均在所述admm的原变量更新内完成;其中块坐标下降将位置与朝向解耦为两个子问题,再以投影动力学的局部-全局形式分别求解:位置子问题恢复投影动力学全局步并将当前材料框架方向  显式嵌入线性系统右端项,朝向子问题在局部步以最短弧旋转得到目标单位四元数、在全局步以四元数二次势能替换非线性方向惩罚;由此两个全局系统矩阵均为常数且状态无关,仅在初始化时预分解一次并在所有时间步复用,各线段、各顶点的局部步彼此解耦且能够并行计算。

9、(3)对弯曲-扭转约束进行重构,得到关于四元数显式线性的约束形式,将相邻材料框架之间的旋转耦合烘焙进全局系统矩阵的朝向块,通过系统矩阵增广实现对弯曲-扭转约束处理;

10、在本发明的一些实施方式中,所述弯曲-扭转约束的重构是对约束两端同时左乘单位四元数 ,得到关于 、 线性的约束;在初始化全局系统矩阵时假设符号项 以构造常数线性算子 ,并将状态相关的符号项  修正迁移至局部步,通过投影向量  动态修正全局线性系统的右端项。

11、(4)采用惩罚参数钳制策略 ,将拉伸-剪切惩罚参数钳制于较软的局部平均弯曲-扭转刚度,保证全局线性系统良态。

12、在本发明的一些实施方式中,所述惩罚参数钳制策略中,拉伸-剪切约束按每段线段定义,弯曲-扭转约束按顶点定义,先为每段线段计算平均的局部弯曲-扭转刚度 ,再取 ,从而在极端刚度比下无需手动调参即保持全局步线性系统的良态与快速稳定收敛。

13、本发明的优点和有益效果:

14、(1)在真实物理参数(高刚度比)下无需逐场景调参即可稳健仿真,有助于减轻人为软化刚度导致的下垂、过度拉伸、果冻状振荡及枝条扭动等视觉伪影;(2)保留了pd一次预分解、局部-全局快速迭代的优势,避免了非线性局部求解;(3)对比于已有的状态层级admm,在代表性高刚度比场景(稠密树)下,相同迭代次数、模拟100帧的总运行时间降低约21%,其中局部求解阶段的耗时约为其1/8;(4)在有限迭代预算下数值阻尼更小,有助于保留更生动的高频动态响应。

1.一种基于应变的admm的cosserat弹性杆高效仿真方法,所述方法建立cosserat弹性杆的离散模型,在弹性杆的顶点上布置位置变量 、在相邻顶点之间的线段上布置表示材料框架的单位四元数 ,定义每段线段的拉伸-剪切约束与每个顶点的弯曲-扭转约束,并以隐式欧拉积分在每个时间步内迭代更新弹性杆的位置与朝向;其特征在于,所述每个时间步内的迭代更新包括:

2.根据权利要求1所述的方法,其特征在于:步骤(1)所述增广拉格朗日函数将非线性的位置-朝向耦合项整体置于admm惩罚项内,使该惩罚项同时包含位置变量与朝向变量并对二者进行显式耦合。

3.根据权利要求1所述的方法,其特征在于:步骤(1)所述辅助变量  与缩放对偶变量  分别具有闭式更新  与;更新后的值用于后续的弹性杆朝向更新与位置更新。

4.根据权利要求1所述的方法,其特征在于:步骤(2)所述块坐标下降与投影动力学的两级数学松弛均在所述admm的原变量更新内完成;其中块坐标下降将位置与朝向解耦为两个子问题,再以投影动力学的局部-全局形式分别求解:位置子问题恢复投影动力学全局步并将当前材料框架方向  显式嵌入线性系统右端项,朝向子问题在局部步以最短弧旋转得到目标单位四元数、在全局步以四元数二次势能替换非线性方向惩罚;由此两个全局系统矩阵均为常数且状态无关,仅在初始化时预分解一次并在所有时间步复用,各线段、各顶点的局部步彼此解耦且能够并行计算。

5.根据权利要求1所述的方法,其特征在于:步骤(3)所述弯曲-扭转约束的重构是对约束两端同时左乘单位四元数 ,得到关于 、 线性的约束;在初始化全局系统矩阵时假设符号项  以构造常数线性算子 ,并将状态相关的符号项  修正迁移至局部步,通过投影向量  动态修正全局线性系统的右端项。

6.根据权利要求1所述的方法,其特征在于:步骤(4)所述惩罚参数钳制策略中,拉伸-剪切约束按每段线段定义,弯曲-扭转约束按顶点定义,先为每段线段计算平均的局部弯曲-扭转刚度 ,再取 ,从而在极端刚度比下无需手动调参即保持全局步线性系统的良态与快速稳定收敛。

7.权利要求1至6任一项所述方法的应用,其特征在于:所述方法用于头发、绳索、缝合线、电缆、树木枝干中的任一种细长弹性结构在真实物理参数下的物理仿真与动画生成,并应用于影视特效、虚拟现实/增强现实及交互式仿真系统。