Skip to content
字数
586 字
阅读时间
3 分钟

赛尔号! ​

和阿璇激情讨论赛尔号 有一说一她的背包里面,精灵都好厉害。我半夜还爬起来打开我的背包看了看,真是一坨 她买了一包糖,但是这个糖的目的是用来治疗过敏,说实话闻所未闻,简直是天才,感觉包装纸上的笑脸是在笑她天真。

ARAP数学推导 ​

为了搞定正定性的问题,首先我要复习一下ARAP这个模型的数学推导过程

对形变梯度矩阵进行极分解

F=RS

ARAP的定义如下

ΨARAP=∥F−R∥F2=∥F∥F2+∥R∥F2−2tr(FTR)=∥F∥F2+9−2tr(S).

它是形变梯度的二阶项,而stvk是四阶项,所以它的非线性弱于stvk。这个公式里的9哪里来的?

求力,也就是能量一阶导

∂Ψ∂x=∂Ψ∂F∂F∂x

其中,形变梯度对位置的导数可以表达为12个矩阵组成的向量,12x3x3,然后能量对形变梯度的导数是3x3。 The matrix ∂Ψ∂F is also known as the first Piola-Kirchhoff stress tensor

PK1公式如下

PARAP(F)=μ(F−R)

下面几个公式抄下来方便复习,推导中用到

∂I1∂F=∂tr(S)∂F=R,∂I2∂F=∂IC∂F=∂∥F∥F2∂F=2F,∂IIC∂F=∂∥FTF∥F2∂F=4FFTF,∂∥R∥F2∂F=∂tr(RTR)∂F=∂tr(I)∂F=0.

hessian矩阵计算公式:

∂2Ψ∂x2=∂FT∂x∂2Ψ∂F2∂F∂x

看完推导感觉我的ARAP的一阶导数和二阶导数算的没问题呀

实验验证 ​

找了个简单的case,单个四面体,仍然会出现pcg无法收敛的情况,来一探究竟。 我将12x12的矩阵导出到python中用numpy求解了一下,发现有解,但是用我的pcg却无法收敛,也就是说我的pcg出现了问题! 详细处理pcg的bug。

贡献者 ​

文件历史 ​

用 ♥ 撰写