Siggraph三角網格變形之拉普拉斯變換

三角網格變形一直是CAGD相關領域的重點,剛上研究生的時候,感覺有點神奇。而且一上來導師就給我發了一篇基於格林座標的自由變形的相關paper,讓我看,外文文獻,看了n多天,第一次看外文文獻,啥也沒看懂,好像也沒什麼收穫。因爲當時根本連文獻要怎麼看都不懂,如何把一篇文獻轉換成代碼,更別談直接看外文文獻了,一篇文章下來,根本不知道哪裏是重點……之所以把這篇博文標題爲:簡單拉普拉斯網格變形,是因爲我只用了求解一個稀疏的線性方程組,就進行變形。

      本篇博文主要是參考閱讀2004年Siggraph上面的幾篇微分網格變形的相關文獻:《Laplacian Surface Editing》、《Differential Coordinates for Interactive Mesh Editing》……因爲2004年,各路大神剛研究出了微分變形的算法,所以有很多篇Siggraph的paper都很牛逼……

一、 拉普拉斯座標相關理論

拉普拉斯網格變形的本質是網格模型局部細節特徵的編碼和解碼的過程。編碼過程是指網格頂點的歐氏空間座標到Laplacian座標的轉換。Laplacian座標包含了網格的局部細節特徵,因此Laplacian網格變形算法能夠較好地保持網格模型的局部細節。解碼過程是指通過微分座標反求歐氏空間座標,實質上是一個求解線性系統的過程。因此Laplacian網格變形算法高效、魯棒。

1、曲面拉普拉斯算子(參考文獻基於微分座標的網格morphing)

拉普拉斯算子是n維歐幾里德空間中的一個二階微分算子,被定義爲梯度()的散度(),因此如果是二階可微的實函數,則的拉普拉斯算子定義爲:

的拉普拉斯算子也是笛卡爾座標系xi中的所有非混合二階偏導數:

對於三維歐式空間中的拉普拉斯方程爲:

其中,f爲三維空間中二階可微的實函數。

上次常簡寫爲:

2、 離散拉普拉斯座標

拉普拉斯座標蘊含着曲面的局部特徵信息,網格曲面的拉普拉斯座標其在網格變形、網格平滑、網格去噪等方面都用着重要的應用。

給定具有n個頂點的三角網格模型M=(V,E,F),V爲頂點集,E爲邊集,F爲三角面片集合。設v1,…vn爲點集V中的點,對於每個頂點vi,用傳統的笛卡爾座標表示,記vi=(xi,yi,zi);用N(i)={j|(i,j)∈E},表示第i點的1-ring鄰域頂點構成的集合,如圖1,定義vi處的拉普拉斯座標爲:

         

其中,δi爲頂點vi的拉普拉斯座標,L(·)爲網格的拉普拉斯算子,ωij爲vj點相對於vi點的權值,且∑ωij=1。目前常用的權值包括均勻權值、餘切權值、正切權值、彈簧權值等。

(1)均勻權值計算公式:

其中,di爲頂點vi的度(鄰接頂點的個數),由於這種權值只是簡單的平均,故又稱爲均勻權值,採用該權值進行網格變形時,所獲得的精度較低。

(2)餘切權值計算公式:

其中,αij、βij是邊vivj的兩個鄰接三角面片的對角,如圖所示。

本文采用餘切權值進行相關計算,可獲得較好的網格變形結果。

3、 拉普拉斯座標的性質

(1)線性變換(參考自拉普拉斯座標在網格變形中的應用)

若T是點集V的線性變化,則

(2)平移不變性

若T是平移變換,則

(3)對旋轉變換敏感

若R是旋轉變換,則

二、 拉普拉斯網格變形框架

對於有n個頂點的網格模型M,由公式(1)式簡寫成矩陣形式爲:

其中,

L爲n×n的拉普拉斯矩陣,其秩爲n-k,其中k是M連通子集的個數,且

拉普拉斯網格變形的本質是通過求解線性方程組公式1,獲得變形後網格模型的頂點座標V'。然而由於公式1的拉普拉斯矩陣是不可逆矩陣,其秩爲n-k,因此需要至少增加k個頂點的座標作爲約束條件,方程組1纔有解,這些約束頂點我們稱之爲約束點(“錨點”)。

    在交互式網格變形編輯中,一般是由用戶鼠標點選約束點。如圖1,我用戶交互輸入v1,v2作爲約束頂點,然後鼠標拖動v2點,可實現球體模型的實時變形。

設M中的部分頂點vj作爲約束條件,其變形後的絕對座標v'j已知,v'j = uj,j=1, 2, …, m,m爲約束頂點的個數(m≧k)。基於拉普拉斯座標的網格變形方法獲得變形後的頂點V',可歸結求解一個帶位置約束的優化問題:

式中  wj ——約束點權值

解(3)中的最小值問題,就相當於求解下面的超靜定線性系統

其中,

Δ'的每一列表示每個頂點對應的拉普拉斯座標。H是m×n階矩陣,H的每一行只有一個非零元素,其值爲對應的約束權值。h爲m×3階矩陣,即,每列代表一個座標分量。未知數V'是的矩陣,其第i行表示變形後的網格頂點的三維座標,這樣求解該線性系統,可獲得變形後各頂點的座標。

公式(1)是一個超靜定方程組,根據超靜定方程組的求解方法,其等價於求解下式:

可得:

通過上式可求得各個網格頂點的三維座標。

    根據拉普拉斯座標的性質,由於拉普拉斯座標對旋轉敏感,使得網格的局部信息會發生旋轉扭曲,特別是對於大尺度變形時,其扭曲尤爲嚴重。如圖3所示,原網格模型本來爲圓形的特徵,經過變形後圓形特徵發生嚴重扭曲。也就是說要實現網格模型的保特徵變形,不能直接使用原網格的拉普拉斯座標來重建變形後的網格模型,而應該重新設置微分座標的方向再重建模型,下一節將具體介紹如何求取未知的拉普拉斯座標。由於拉普拉斯座標不具有旋轉不變性,簡單地用原始的拉普拉斯座標Δ近似未知變換網格的拉普拉斯座標Δ',很容易產生扭曲變形,如圖3 所示(Differential Coordinates for Interactive Mesh Editing):

    總結:三角網格曲面的變形算法中,現在效果最好的是微分變形,當然現在的很多商業軟件,三維的建模軟件的變形算法並不是用了微分變形算法,而是使用自有變形,這個在proe軟件中就有類似的功能,自由變形的優點是它的速度快。不過對於微分變形,雖然需要求解一個大型的稀疏矩陣,但是這個矩陣現在有一些快速的解法,就像二維圖像泊松融合一樣,有快速求解泊松方程的算法,所以總的來說,現在微分域的變形算法,是最有前途的。本篇博文中,我只講解了簡單的拉普拉斯微分變形算法,沒有對拉普拉斯座標的方向問題進一步的講解,因爲現在研究比較多的就是如何求解拉普拉斯座標的新方向,這個可以用旋轉不變量、調和場等方法,具體後續再進行詳解。

參考文獻:

1、《Differential Coordinates for Interactive Mesh Editing》

2、《基於微分座標的網格morphing》

3、《 Dual Laplacian editing for meshes》

4、《Linear rotation-invariant coordinates for meshes》

5、《 Differential coordinates for interactive mesh editing》

6、《拉普拉斯座標在網格變形中的應用》

**********************作者:hjimce   時間:2015.7.15  聯繫QQ:1393852684   地址:http://blog.csdn.net/hjimce   原創文章,版權所有,轉載請保留本行信息********************
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章