图形处理(三)简单拉普拉斯网格变形-Siggraph 2004
?三角網格變形一直是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中的所有非混合二階偏導數:
對于三維歐式空間中的拉普拉斯方程為:
其中,為三維空間中二階可微的實函數。
上次常簡寫為:
2、 離散拉普拉斯坐標
拉普拉斯坐標蘊含著曲面的局部特征信息,網格曲面的拉普拉斯坐標其在網格變形、網格平滑、網格去噪等方面都用著重要的應用。
給定具有n個頂點的三角網格模型M=(V,E,F),V為頂點集,E為邊集,F為三角面片集合。設v1,…vn為點集V中的點,對于每個頂點vi,用傳統的笛卡爾坐標表示,記vi=(xi,yi,zi);用N(i)={j|(i,j)∈E},表示第點的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? ?原創文章,版權所有,轉載請保留本行信息********************
總結
以上是生活随笔為你收集整理的图形处理(三)简单拉普拉斯网格变形-Siggraph 2004的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图形处理(二)固定边界参数化
- 下一篇: 图形处理(四)基于梯度场的网格编辑-Si