本發明屬于海洋遙感監測技術領域,具體涉及艦船與尾跡的網格模型的融合與優化方法。
背景技術:
三角形面元網格常用于數值建模,廣泛應用于計算流體力學、計算電磁學等眾多領域。單一模型的三角網格建模已實現工程化,從網格的生成到優化存在大量成熟軟件。但是,在某些領域往往需要將任意兩個或多個網格模型進行拼接、融合,生成一體化網格以便后續數值計算。不同模型的拼接處一般是物理場的耦合區,因此,為保證計算的精度和穩定性,往往對網格拼接處的單元形狀有較高的要求。
三角形面元網格的融合拼接方法主要有三類[1]:第一類是基于裁剪的方法,即利用一片網格去裁剪另外一片網格,然后在公共邊界上生成新的三角形單元,將兩個模型的網格融合在一起,如TurK G和Levoy M等的算法[2]。該方法的缺點是因為裁剪,公共邊界處會產生大量的細小三角形,并且該方法只利用了重疊區一片網格中的頂點,另一片網格上的頂點則被完全拋棄。因此對于存在大交疊區域的網格而言,無法同時利用兩片網格的重疊區進行頂點校正。第二類是基于補洞的拼接方法,即首先將重疊區的三角形全部刪掉,然后通過補洞的方法重新生成重疊區的三角形。如Ruding L提出的先去除N-環相交區再重建交疊區的方法[3]。這種方法對于交疊區較小的的網格非常適用,但對于存在大交疊區域的網格,雖然可通過徑向基函數重新生成重疊區頂點,但新生成的頂點很難反映模型的實際形狀。第三類是基于微分網格變形的方法,如利用泊松方程[4]、拉普拉斯坐標[5]等方法。這類方法需要指定一個準確的邊界,邊界的定位精度對融合結果影響很大;但是大范圍復雜交疊區的拼接往往難以確定精確的融合邊界。
技術實現要素:
本發明的目的在于提供一種高效、精準的艦船與尾跡三角網格模型的融合與優化方法。
本發明提出的艦船與尾跡三角網格模型的融合與優化方法,基于三角形求交,散亂點云Delaunay剖分和三角面元內角控制;涉及計算流體力學和計算電磁學技術,具體步驟如下:
(一)利用對艦船與尾跡模型的先驗知識,分別確定艦船模型與尾跡模型的交疊區域;
(二)求取交疊區域艦船模型與尾跡模型中三角面元的交點;
(三)剖分三角網格交疊區域每個三角面元上的散亂點,得到交疊區域新的網格結構,即初始網格融合模型;
(四)消除畸形三角面元,優化網格模型;即在實現任意兩個三角網格的初步融合后,控制構成網格的三角面元的內角,從而優化融合過程因剖分所產生的畸形三角面元。
定義1 對于一個空間三角網格,可以用一個三元組集合來描述,其中表示頂點集合,表示邊集合,表示三角形集合。
定義2 三角網格中的畸形面元:一個或兩個內角小于閾值為的三角形 (工程中一般取=15°),小于的內角稱作病態角。
定義3 兩個網格模型的拼接與融合:拼接指對兩個網格模型的網格數據簡單地合并,三角形頂點構成和三角面片間的拓撲關系不變;融合是指當兩個網格模型在三維空間上相交時,將二者的網格數據重新編排為一個網格體,頂點數量、編號和三角面片的拓撲關系相應改變。
下面對各步驟的具體細節分別介紹如下:
(一)確定艦船模型與尾跡模型的交疊區域,具體流程為:
(1)船體的相交區域為船體的相交區域為船側的三角網格。
(2)海面的相交區域為組成船底部的一圈點,由于他們z坐標值接近,忽略這圈點的z坐標,將它們近似看成二維點。依次連接這些點構成多邊形,稱為船底多邊形。縮放船底多邊形,分別得到一大一小兩個相似的多邊形。裁剪坐標在兩多邊形之間的海面部分,用來進行精確融合。
(3)保留非相交區域的網格結構。
(二)求取兩個網格模型交疊區域的交點,具體流程為:
將兩個三角網格模型分別記為,,融合后的整體三角網格記為。三角網格,有個三角面元,其第個三角面元記為;三角網格,有個三角面元,其第個三角面元記為。
(1)兩個三角形的交點的求取方法
空間兩個三角形有相離、相交和相切三種位置關系。若與是交疊的,則需要分別考慮和的網格結構變化。因空間兩個三角形的位置關系又可以分為共面和異面兩種,故在求取兩個三角形的交點時分情況討論。
1)共面:計算的三條邊與三條邊的交點,若有交點,則交點在兩個三角形的邊上或頂點上。
2)異面:首先分別計算的三條邊與的交點,若有交點,則交點在的頂點上、邊上或內部,并向交點集合中添加;其次分別計算的三條邊與的交點,若有交點,則交點在的頂點上、邊上或內部,并向交點集合中添加。
(2)單個三角面元與復雜網格模型的交點求取方法
按照上述流程(1)中方法求取該單個三角面元與復雜網格模型中每一個三角面元的交點,若有交點,則向交點集合中添加。
(3)兩個復雜網格模型的交點求取方法
按照上述流程(2)中方法,判斷三角網格上的每一個三角面元,與構成三角網格的全部三角面元的相交情況,若兩個三角面元是相交的,則計算并記錄交點。三角網格上的第個三角面元相應會有一個交點集,記為。里所有的點都滿足三角形的方程,即所有交點都只在三角面元內,而不會在其他三角面元內。同時,將這個三角形的三個頂點和新增交點集構成的點集記為。
遍歷網格中所有三角面元之后,再考慮網格的每一個三角面元,判斷上每一個三角面元是否與的上的三角面元相交。通過相同的算法來判斷,最后得到的第個三角面元相應的交點集以及相應有。
(三)散亂點云的二維Delaunay剖分,具體流程為:
(1)剖分:網格融合過程中的散亂點云剖分,使用經典的Delaunay剖分。剖分分2步完成:首先,將同一平面上的所有散亂點繞定軸r,以α角逆時針旋轉到xoy平面上。其中,定軸r是三維點云原來所在的平面M與xoy平面的交線,旋轉角α是平面M與xoy平面所成的二面角。其次,對旋轉后的散亂點進行二維Delaunay剖分。由于散亂點的相對位置不變,可以忽略三維點z坐標的影響。xoy平面上散亂點的網格結構即是原三維散亂點的網格結構。
(2)在步驟(二)中已經求得兩個復雜模型里所有三角面元上的交點集,按照流程(1)剖分方法所述,分別重新剖分所有三角面元所在區域,得到新的網格結構。
其中交點集分兩種情況討論:
1)若交點集為空,即說明該三角面元與另一模型中所有的三角面元都未相交,則該三角面元所在區域的網格結構不改變,只需直接將該三角面元信息復制到的面元列表中。
2)若交點集非空,即說明該三角面元所在區域的網格結構受到了另一網格的影響,則剖分對應的點集,得到該三角面元區域新的三角網格結構,并添加到的面元列表中。
(四)優化融合過程因Delaunay剖分所產生的畸形三角面元,具體流程為:
以等邊三角形為標準定義三角形正則度如下:
(1)
其中,,,分別是三角形的三個內角。三角形內角只需知道一個,即可計算正則度:
(2)
其中,是某個內角,從0到π變化時三角形的正則度如表1所示。
根據三角形的正則度的定義,定義三角網格的品質因子如下:
(3)
其中,是三角網格模型中三角面元的總個數,是第個三角形的一個內角,即網格中所有三角面元的正則度決定了網格的品質因子。品質因子越大,說明網格中三角面元的正則度越大、越接近等邊三角形,網格的質量越高。
本發明方法能快速高效地融合艦船與尾跡網格模型,并對融合產生的畸形三角形進行優化。該方法的重要優點是能夠適應不同的艦船與其尾跡網格模型,而無需附加條件。
附圖說明
圖1是船底多邊形。
圖2是三維點云的旋轉:r是旋轉軸,α是旋轉角。
圖3是網格優化前后對比示意圖。
圖4是畸形三角面元。
圖5是兩個共面三角形的融合。其中,(a)綠色三角形沒有頂點紅色三角形上,(b)綠色三角形有1個頂點在紅色三角形上,(c)綠色三角形有2個頂點在紅色三角形上,(d)綠色三角形有3個頂點在紅色三角形上。
圖6是兩個異面三角形的融合。其中,(a)面面相交,(b)僅邊面相交,(c)僅點面相交,(d)僅邊邊相交。
圖7是封閉球面和粗糙面的融合結果。
圖8為十字交叉面和圓柱側面的融合結果。
圖9為艦船網格模型與尾跡網格模型的融合結果。其中,(a) 艦船與海面,(b)細節放大圖。
圖10為二維網格優化。其中,(a)為為存在多個畸形三角面元的平面網格,優化前Q=0.331,(b) 本文算法優化后的結果,優化后Q=0.718。
圖11復雜模型優化前后的結果對比圖。其中,(a) 優化前Q=0.609,(b)優化后Q=0.785,(c)優化前Q=0.648,(d)優化后Q=0.793。
圖12艦船與尾跡的網格優化前后的對比圖。其中,(a) 優化前Q=0.610,(b)優化后Q=0.800,(c) 優化前后的整體網格。
圖13艦船與尾跡模型優化前后內角在0~180°的分布圖。
圖14為艦船與尾跡的網格融合優化后的整體圖。
具體實施方式
求取海面的相交區域的方法海面的相交區域為組成船底部的一圈點,由于他們z坐標值接近,忽略這圈點的z坐標,將它們近似看成二維點。依次連接這些點構成多邊形,稱為船底多邊形,如圖1灰色實線所示。縮放船底多邊形,分別得到一大一小兩個相似的多邊形,如圖1中黑色實線(大)和黑色虛線(小)所示。裁剪坐標在兩多邊形之間的海面部分,用來進行精確融合。
圖2是三維點云的旋轉:r是旋轉軸,α是旋轉角。剖分分2步完成:首先,將同一平面上的所有散亂點繞定軸r,以α角逆時針旋轉到xoy平面上。其中,定軸r是三維點云原來所在的平面M與xoy平面的交線,旋轉角α是平面M與xoy平面所成的二面角。其次,對旋轉后的散亂點進行二維Delaunay剖分。由于散亂點的相對位置不變,可以忽略三維點z坐標的影響。xoy平面上散亂點的網格結構即是原三維散亂點的網格結構。
圖3是融合后模型的網格優化,即刪除畸形三角面元的圖解。圖3(a)是由三角面元f1~f7組成的網格,v1~v8是構成該網格結構的頂點。首先判定f4為網格中的畸形三角形,原因是f4中v1所張的角小于15°。第二步,如果e1,e2,e3是f4的三條邊,v1所對的邊為e3,則取e3的中點,設其為vNew。最后,去除原網格的所有三角面元,將其頂點v1~v8依次與vNew相連,得到新的網格結構,如圖3(b)所示。
設空間存在任意兩個相交的三角形1和2,則存在共面相交和異面相交兩種情況。圖5(a)~(d)分別驗證了共面相交的四種情形,并且給出了融合結果。按照三角形1(深色)包含三角形2(淺色)頂點數目的不同分類,即三角形1包含三角形2零個頂點、一個頂點、兩個頂點、三個頂點:圖5(a)三角形2沒有頂點在三角形1上,但是仍然是相互交疊的情況;圖5(b)是三角形2有1個頂點在三角形1上的情況;圖5(c)是三角形2有兩個頂點在三角形1上的情況;圖5(d)是三角形2有三個頂點在三角形1上的情況。
圖6(a) ~ (d) 驗證了異面相交的四種情形,按照點線面位置關系將兩個異面三角形的交疊分為一種情形和三種特殊情形:圖6(a)是異面相交里最普通的面面相交。(b)~(d)是三種特殊情形:(b)是只存在邊和面相交,即三角形2(淺色)有一條邊在三角形1(深色)上且交疊的情況;圖6(c)是只存在點與面相交;圖6(d)是只存在邊與邊相交。
圖7為封閉球面和粗糙面的融合結果,半徑3m的球面,粗糙面面積10*10 m2,代表復雜模型中封閉曲面和隨機粗糙面的融合。
圖8為十字交叉面和圓柱側面,代表復雜模型中二面角和開曲面的融合。
圖9為艦船網格模型與尾跡網格模型,融合后的結果如圖9(a);圖9(b)模型的融合細節情況。
為提高數值計算精度,降低運算量,需要對融合后的網格進行優化,即首先去除畸形三角面元,然后對網格面元和節點重新編碼。文中選取的優化閾值α=15°,即只要一個內角小于15°,該三角面元即判定為畸形。
圖10左圖為存在多個畸形三角面元的平面網格(a),右圖為本文算法優化后的結果(b)。可見優化后網格模型不再有畸形三角面元,優化前網格的品質因子為0.331,優化后為0.718。
圖11(a)-(d)是圖7和圖8中模型優化前后的細節對比,放大后可見網格出現了少許幾何形變。由于本發明中的優化過程實際是一個去采樣過程,會丟失某些信息。二維網格模型的去采樣并不會影響模型的幾何輪廓;但對于三維網格,過度的去采樣會丟失模型的幾何特征。因此,優化角度的選取要根據工程計算的需求和融合區的幾何特征綜合考慮。
圖12(a)-(c)分別是艦船與海面的網格優化前后的結果對比,可見融合區所有畸形面元已經去除。(a)是優化區域,優化前網格的品質因子0.610,優化后網格的品質因子為0.800。實際工程問題中,會因為不同要求采用不同的艦船網格模型,所以船身非融合區域的網格文中直接保留,只優化由于融合產生的畸形三角面元。
圖13是圖12(a)中截取艦船與海面的融合區域網格優化前后三角形內角在0~180°的分布情況,優化前(深色部分)內角在0~15°大量分布,在優化后(淺色部分)已經全部消除,由于原始海面網格采用的等腰直角三角面元,因此內角在45°和90°分布較多。
圖14是艦船與尾跡的網格融合優化后的整體圖。
表1 正則度隨變化規律
。
參考文獻:
[1] Zou Bei-ji, Zhou Hao-yu, Wang Lei, et al.3D mesh merging and stitching with large overlaps[J]. Acta Electronica Sinica, 2012, 40(5):1005-1010.
[2] TurK G, Levoy M. Zippered polygon meshes from range images[A]. Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques[C]//New York:ACM New York,1994:311-318.
[3] Ruding L, Jean-Philippe P, Alexei M,et al. Merging enriched finite element triangle meshes for fast prototyping of alternate solutions in the context of industrial maintenance[J]. CAD Computer Aided Design,2010,42(8):670-681.
[4] Yu Y,Zhou K,Xu D,et al. Mesh editing with poisson-based gradient field manipulation[J]. ACM Transactions on Graphics,2004,23(3):644-651.。