三維動畫形變算法(Mixed Finite Elements)


  混合有限元方法通入引入輔助變量后可以將高階微分問題變成一系列低階微分問題的組合。在三維網格形變問題中,我們考慮如下泛函極值問題:

  其中u: Ω0 → R3是變形體的空間坐標,上述泛函極值問題對應的歐拉拉格朗日方程就是雙調和方程∆2u = 0。

  通過引入額外變量v,我們可以將上述無約束高階優化問題轉變為帶約束的低階優化問題:

  引入拉格朗日函數,並利用格林公式可以得到:

  將變量vu,λ寫成基函數的線性組合形式,並且基函數選擇為分段線性帽函數:

  將上式分別對變量viuiλi求偏導可以得到:

  這里討論兩種邊界條件情況:

  第一種是固定區域邊界條件,就是說在變形體上存在區域Ωf,其對應的空間位置為uf

  求解形式:

  消除額外變量后得到:

  

  第二種是固定曲線邊界條件,就是說在變形體上存在曲線C,其滿足:

  求解形式:

  消除額外變量后得到:

 

效果:

本文為原創,轉載請注明出處:http://www.cnblogs.com/shushen

 

 

參考文獻:

[1] Jacobson A, Tosun E, Sorkine O, et al. Mixed Finite Elements for Variational Surface Modeling. symposium on geometry processing, 2010, 29(5): 1565-1574.

 

附錄

基於三維網格的微分問題求解

  對於求解三維網格上帶Dirichlet邊界條件的泊松方程:

  將上式寫成等價的弱形式:

其中v是任意的測試函數,但是其滿足在邊界處值為0。

  利用分部積分,可以將上式等式左邊進行變化:

  由於測試函數在邊界處值為0,所以上式中等式右邊第一項為0:

  然后將待求解函數u和測試函數v表示成基函數的線性組合形式,並且基函數選擇為分段線性帽函數:

其中I是網格上所有的頂點集合。

  三維網格上分段線性帽函數如下圖所示:

  那么對於網格內部任意頂點j,我們都取測試函數v = Φj,這樣可以形成一個方程:

  將積分里的求和提取到積分外,得到:

  由於邊界處u的數值已知,那么可以將已知項移到等式右側:

  這樣就形成了n個方程組,n為三維網格除邊界外的頂點個數。

 

  對於求解三維網格上帶Neumann邊界條件的泊松方程:

  同樣轉換成弱形式,並利用分部積分:

  在Neumann邊界條件下,我們選擇邊界處值不為0的測試函數,那么可以得到:

 

Cotangent權重矩陣L

  將Φi定義為分段線性帽函數,那么矩陣L的具體數值就可以根據三維網格模型唯一確定了,另外矩陣L之所以稱為Cotangent權重,是因為其具體表達式是一個三角函數形式。

  下面具體推導下矩陣L的形式,根據其原始定義表達式:

  在每個三角片內∇Φi是恆定的,並且只有在頂點i相鄰的周邊三角片上是非零值的。對於一個三角片,∇Φi指向的方向與頂點i相對的底邊ei垂直,數值大小為三角片在底邊ei上高h的倒數,即:

上式中||ei||是邊ei的長度,A是三角片的面積。

  對於相鄰頂點ij,∇Φi與∇Φj的方向分別垂直於各自的底邊eiej,它們之間的夾角記為θ,於是我們可以得到:

  由於ΦiΦj只有在相鄰三角片TαTβ內才同時為非零值,那么:

 

Mass質量矩陣M

  矩陣M的原始定義表達式為:

  由於Φi定義為分段線性帽函數,所以Mij只有當ij為三維網格上相鄰頂點或者ij相同時其值才為非零。

  根據積分規則:

其中A是三角片T的面積,x1x2x3是三角片三條邊的中點。

  由於Φi在每個三角片內是個簡單的線性函數,那么上式可以進一步表示為:

  於是可以得到矩陣M的表達式:

  通常矩陣M可以用對角矩陣Md來近似代替,近似過程為:

  矩陣Md的對角線元素之和等於三維網格Ω的表面積,一般有兩種方式來計算對角線元素,分別為重心質量矩陣和Voronoi質量矩陣,如下圖所示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM