文章标题
2016-11-26 20:16
211 查看
[⎧⎩⎨x˙=vMv˙=Fext+JTλc(x)+ελ=0
Fint=Fconstraint=JTλ
c(pa,pb)=||pa−pb||
Fpenalty=−kJTc(x)=Fconstraint=JTλ
−kc(x)=λ⟹c(x)+ελ=0,ε=1k
取λ~为时间段内的平均值,即,
λ~=△t−1∫tn+△ttnc(t)dt≈△t−1cn+12Jnvn+1
并替换λ,可得,
AY=b其中,
A =
[MJn−JTn2△t−2ε]
Y=
[vn+1△t−1λ~]
b=
[Mvn+△tFn−2△t−1cn]
令,
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪g(x,λ)=M(xn+1−x~)−( ∇Cn+1)Tλn+1=0h(x,λ)=C(xn+1)+α~λn+1=0x~=2xn−xn−1=xn+△tvn(predicated position)α~=εΔt2
使用Implicit Euler,并将Fpenalty(xn+1)在predicted position x~处展开,得,
⎧⎩⎨⎪⎪⎪⎪⎪⎪Mδv=h(f(x~)+Kδxx~=xn+hv~v~=vn+hfextK=∇xf=−∂2U∂x2
舍弃K中的二阶偏导[BW98]得到
K=−kJTJ整理上式得,(M+h2kJTiJi)δvi+1=hf(xi)
上式左右两端同乘以T=1hkA−1J其中,A=JM−1JT,并做替换δv=hM−1JTλ可得,
(h2A+εI)δλ+c(x)=0
此式为soft constraint的Fast Projection[GHF07]形式。
称T是从configuration space到constraint space的转换。
迭代公式:
PBD:Δx=M−1∇Cj(xi)−kjCj(xi)∇CjM−1∇CTj
XPBD:Δx=M−1∇Cj(xi)−Cj(xi)−αj~λij∇CjM−1∇CTj+αj~
XPBD优势:
弹性系数α~与“真实的”布料参数相关。
保证了布料的拉伸量与迭代次数无关。
相比于PBD增加约2%的计算量,且需要存储一个m维的向量λ。
从constraint:c(x)=0到soft constraint:c(x)+ελ=0,从而,
将constrained dynamics(通常认为是不太精确的方法)与penalty force dynamics
(通常认为是比较精确的方法)联系起来.
证明了soft constraint的Fast Project形式与Implicit Euler等价(3.3节).
soft constrained dynamics可使用通用的弹性参数(e.g. Youg’s modulus)。
当ε→0则soft constraint退化成原始的constraint,相当于penalty force →∞.
接下来,
实现上述三种方法,并应用到bending约束,以实现布料仿真中褶皱的保持。
C1=ll0−1
C2=l2l0−l0
[AJ−JTC]
{(h2JK−1J−α)λn+1=C−JK−1M(xn−x0)Δx=−h2K−1JTλn+1−K−1M(xn−x0)
其中,
等式右边第二项为约束力对位置的偏导,可
⎧⎩⎨K=M+∂(JTλ)∂x∂(JTλ)∂x=JT∂λ∂CJ+∂JT∂xλ
∂JT∂xλ即为geometric stiffness,可用此项代替约束力对位置的导数,即,
K=M+∂JT∂xλ
而使用距离平方的距离约束,geometric stiffness具有特殊性质,即如果只考了一个距离约束力,对一个粒子的位置的偏导:
∂fi∂xi=−∂fi∂xj=λI3
使用PBD求解方法,第i个约束的K矩阵,
Ki=Mi+λi[I−I−II]
其中Mi是第i个距离约束关联的两个粒子的质量构成的6×6矩阵。
那么接下来就是速求出Ki的逆,这篇论文的方式可以使用:On the Inverse of the Sum of Matrices。基本看懂了。
{(h2JM−1J)λn+1=C(xn)Δx=−h2M−1JTλn+1
{(h2JM−1J−α)λn+1=C−J(xn−x0)Δx=−h2M−1JTλn+1−(xn−x0)
{(h2JM−1J−α)λn+1=C−Jβ(xn−x0)Δx=−h2M−1JTλn+1−β(xn−x0)
ei=θ1(1−AinterAreal)+θ2(1−AinterAcand)
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪e=θ1ecolor+θ2ewh+θ3eedgeecolor=(1−max(blueRatio,yellowRatio))2ewh=(wh−3.14)2,ormin((wh−3.14)2,(wh−2.0)2)eedge=(1−edgeRatio)2
Fint=Fconstraint=JTλ
c(pa,pb)=||pa−pb||
Fpenalty=−kJTc(x)=Fconstraint=JTλ
−kc(x)=λ⟹c(x)+ελ=0,ε=1k
取λ~为时间段内的平均值,即,
λ~=△t−1∫tn+△ttnc(t)dt≈△t−1cn+12Jnvn+1
并替换λ,可得,
AY=b其中,
A =
[MJn−JTn2△t−2ε]
Y=
[vn+1△t−1λ~]
b=
[Mvn+△tFn−2△t−1cn]
令,
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪g(x,λ)=M(xn+1−x~)−( ∇Cn+1)Tλn+1=0h(x,λ)=C(xn+1)+α~λn+1=0x~=2xn−xn−1=xn+△tvn(predicated position)α~=εΔt2
使用Implicit Euler,并将Fpenalty(xn+1)在predicted position x~处展开,得,
⎧⎩⎨⎪⎪⎪⎪⎪⎪Mδv=h(f(x~)+Kδxx~=xn+hv~v~=vn+hfextK=∇xf=−∂2U∂x2
舍弃K中的二阶偏导[BW98]得到
K=−kJTJ整理上式得,(M+h2kJTiJi)δvi+1=hf(xi)
上式左右两端同乘以T=1hkA−1J其中,A=JM−1JT,并做替换δv=hM−1JTλ可得,
(h2A+εI)δλ+c(x)=0
此式为soft constraint的Fast Projection[GHF07]形式。
称T是从configuration space到constraint space的转换。
迭代公式:
PBD:Δx=M−1∇Cj(xi)−kjCj(xi)∇CjM−1∇CTj
XPBD:Δx=M−1∇Cj(xi)−Cj(xi)−αj~λij∇CjM−1∇CTj+αj~
XPBD优势:
弹性系数α~与“真实的”布料参数相关。
保证了布料的拉伸量与迭代次数无关。
相比于PBD增加约2%的计算量,且需要存储一个m维的向量λ。
从constraint:c(x)=0到soft constraint:c(x)+ελ=0,从而,
将constrained dynamics(通常认为是不太精确的方法)与penalty force dynamics
(通常认为是比较精确的方法)联系起来.
证明了soft constraint的Fast Project形式与Implicit Euler等价(3.3节).
soft constrained dynamics可使用通用的弹性参数(e.g. Youg’s modulus)。
当ε→0则soft constraint退化成原始的constraint,相当于penalty force →∞.
接下来,
实现上述三种方法,并应用到bending约束,以实现布料仿真中褶皱的保持。
C1=ll0−1
C2=l2l0−l0
[AJ−JTC]
{(h2JK−1J−α)λn+1=C−JK−1M(xn−x0)Δx=−h2K−1JTλn+1−K−1M(xn−x0)
其中,
等式右边第二项为约束力对位置的偏导,可
⎧⎩⎨K=M+∂(JTλ)∂x∂(JTλ)∂x=JT∂λ∂CJ+∂JT∂xλ
∂JT∂xλ即为geometric stiffness,可用此项代替约束力对位置的导数,即,
K=M+∂JT∂xλ
而使用距离平方的距离约束,geometric stiffness具有特殊性质,即如果只考了一个距离约束力,对一个粒子的位置的偏导:
∂fi∂xi=−∂fi∂xj=λI3
使用PBD求解方法,第i个约束的K矩阵,
Ki=Mi+λi[I−I−II]
其中Mi是第i个距离约束关联的两个粒子的质量构成的6×6矩阵。
那么接下来就是速求出Ki的逆,这篇论文的方式可以使用:On the Inverse of the Sum of Matrices。基本看懂了。
{(h2JM−1J)λn+1=C(xn)Δx=−h2M−1JTλn+1
{(h2JM−1J−α)λn+1=C−J(xn−x0)Δx=−h2M−1JTλn+1−(xn−x0)
{(h2JM−1J−α)λn+1=C−Jβ(xn−x0)Δx=−h2M−1JTλn+1−β(xn−x0)
ei=θ1(1−AinterAreal)+θ2(1−AinterAcand)
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪e=θ1ecolor+θ2ewh+θ3eedgeecolor=(1−max(blueRatio,yellowRatio))2ewh=(wh−3.14)2,ormin((wh−3.14)2,(wh−2.0)2)eedge=(1−edgeRatio)2