Gradient-Based Deformation

原文: http://www.cnblogs.com/shushen/p/4932089.html

將三角網格上的頂點座標(x,y,z)看作3個獨立的標量場,那麼網格上每個三角片都存在3個獨立的梯度場。該梯度場是網格的微分屬性,相當於網格的特徵,在形變過程中隨控制點集的移動而變化。那麼當用戶拖拽網格上的控制點集時,網格形變問題即變爲求解以下式子:

  根據變分法,上式最小化即求解泊松方程:

其中Φ爲待求的網格形變後坐標,w爲網格形變後的梯度場。

  上式可以進一步表示爲求解稀疏線性方程組:

其中L爲網格的拉普拉斯算子,b爲梯度場w在網格頂點處的散度值。

 

  問題的關鍵是如何得到網格形變後的梯度場w,文章[Yu et al. 2004]提到其是通過由控制點集變換的加權運算得到,並且提出了幾種不同的加權方式(線性加權,高斯加權等)。另外文章[Zayer et al. 2005]中提到可以在網格內構建一個調和場作爲加權係數。

 

1.離散梯度算子定義:

      假設f是一個分片線性函數,在網格的每個三角片{xi,xj,xk}的頂點處有f(xi)=fi,f(xj)=fj,f(xk)=fk,通過線性插值可以知道f在三角片上每一點處的值爲: 

  這樣f的梯度如下: 

其中基函數Φi,Φj,Φk滿足Φijk=1,那麼它們梯度之和▽Φi+▽Φj+▽Φk=0。所以f的梯度可以寫成如下形式: 

  經簡單計算可以求得▽Φi的表達式是,同樣也可以寫出▽Φj、▽Φk的表達式,其中⊥表示將向量逆時針旋轉90度,A表示三角片的面積。

2.離散散度算子定義:

       設向量值函數w:S→R3,S表示網格,w表示在每個三角片上的向量,那麼w在頂點xi處的散度可以定義爲:

其中T(xi)表示頂點xi的1環鄰域三角片,AT表示三角片T的面積。

 

3.離散Laplace算子定義:

       將梯度算子表達式代入散度算子表達式可以得到頂點xi處的Laplace算子如下形式:

其中N(xi)表示頂點xi的1環鄰域點。

 

效果:

 

歡迎大家一起探討計算機圖形學算法問題,郵箱:[email protected]

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

 

 

參考文獻:

[1] Y. Yu, K. Zhou, D. Xu, X. Shi, H. Bao, B. Guo, and H.-Y. Shum. "Mesh Editing with Poisson-Based Gradient Field Manipulation." ACM Transactions on Graphics (Proc. SIGGRAPH) 23:3 (2004), 644-51.

[2] R. Zayer, C. Rossl, Z. Karni, and H.-P. Seidel. "Harmonic Guidance for Surface Deformation." Computer Graphics Forum (Proc. Eurographics) 24:3 (2005), 601-10.

[3] 許棟. 微分網格處理技術[D]. 浙江大學, 2006.

[4] 劉昌森. 三角網格曲面上的laplace算子及其應用[D]. 中國科學技術大學, 2012.


發佈了9 篇原創文章 · 獲贊 15 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章