專利名稱:一種基于四邊形折疊的三維網(wǎng)格圖形簡化方法
技術領域:
本發(fā)明涉及圖形數(shù)據(jù)處理領域,具體涉及對復雜的三維圖形數(shù)據(jù)進行簡化的一種基于四邊形折疊的三維網(wǎng)格圖形簡化方法。
背景技術:
隨著科學技術的不斷進步,在計算機圖形學、虛擬現(xiàn)實、計算機輔助設計、地理信息系統(tǒng)、醫(yī)學圖形等領域越來越多地應用到三維網(wǎng)格圖形,這些圖形動輒產(chǎn)生數(shù)以百萬計的面片,對計算機的存儲容量、處理速度、繪制速度、傳輸效率等都提出很高的要求,然而在很多情況下高分辨率的模型并不總是必要的,這就需要對原始模型進行簡化。
幾何元素刪除法是其中一種重要的圖形簡化方法,其原理是在保持一定的幾何誤差的前提下,刪除對模型幾何特征影響較小的幾何“圖元”(點、邊、面)?!皠h除”又分直接刪除、通過合并兩個或多個面來刪除邊或面、對邊或三角形進行折疊等三種情況,移去或刪除操作一直進行到模型不能簡化或達到指定近似誤差為止。
圖形簡化是目前計算機圖形及移動計算上的熱門方向,對這方面的研究出現(xiàn)了不少的成果,但在幾何元素刪除法這方面的相關成果目前只有基于頂點、邊(如圖1所示)、面(三角形)(如圖2所示)刪除這幾種方法。
發(fā)明內容
本發(fā)明的目的在于提供一種基于四邊形折疊的三維網(wǎng)格圖形簡化方法,可簡化復雜的三維圖形數(shù)據(jù),降低對存儲、顯示、傳輸?shù)确矫娴闹笜艘蟆?br>
本發(fā)明一種基于四邊形折疊的三維網(wǎng)格圖形簡化方法,包括步驟①獲取三維圖形的網(wǎng)格信息數(shù)據(jù);②定義并檢索出網(wǎng)格中所含的四邊形;③確定折疊代價最小的四邊形;④折疊化簡操作。
所述的定義并檢索出網(wǎng)格中所含的四邊形是通過邊來檢索,而且排除邊界邊。
所述的確定折疊代價最小的四邊形中采用Garland算法中的二次誤差度量來計算四邊形折疊的代價,由于四邊形折疊需要同時考慮4個頂點移動后造成的誤差,本方法以進行折疊操作的四邊形4個頂點的誤差之和作為折疊代價。
所述的折疊化簡操作包括新頂點位置的確定,新頂點的位置可以有如下方法選擇(a)子集位置即四邊形四個頂點的其中一個頂點,子集位置由于不產(chǎn)生新頂點,需要存儲及處理開銷較小,適合像移動終端設備這樣的對簡化效果要求不高,但對處理開銷相對嚴格的場合;(b)最佳位置由于折疊代價函數(shù)是二次函數(shù),因此可以計算出其最小值作為折疊后的新頂點;如果上述計算無解,則可以選取四邊形的四個頂點或公共邊及外部邊的中點這9個位置中的一點作為新頂點的位置。
所述的折疊化簡操作中對于網(wǎng)格中含有一條或多條邊界邊的邊界四邊形作以下處理在該三角形集合的每條邊界邊上作一個通過該邊界邊并與該邊界邊所在的邊界三角形垂直的平面a,在計算折疊代價時要考慮新頂點到平面a的距離,保證新頂點不會偏離邊界,保持了圖形的邊界。
本發(fā)明一種基于四邊形折疊的三維網(wǎng)格圖形簡化方法具有以下幾個方面的特點(1)提出兩個以公共邊相連的三角形可以構成一個四邊形,以四邊形折疊為基本操作,是一種間接(非三角網(wǎng)格圖形原有基本圖元)的簡化方法。
(2)操作上Garland的邊折疊算法的每次邊折疊減少1個頂點與2個三角形面片,周昆的三角形折疊算法的每次折疊減少2個頂點和4個三角形面片相比,本文算法一次四邊形折疊能減少3個頂點及6個三角形面片,相當于3次邊折疊和1.5次三角形折疊的效果,具有更高的折疊效率,從而實現(xiàn)比邊折疊算法和三角形折疊算法更快的簡化速度。
(3)誤差計算上采用Garland的QEM(二次誤差量度)即以新頂點到舊平面的距離平方和作為頂點移動的誤差代價,由于可以通過矩陣疊加簡單地計算出誤差值,時間復雜性上與Garland、周昆的算法處于同等數(shù)量級,所以算法誤差計算效率十分高。
如上所述,本方法不僅可以簡化復雜的三維圖形數(shù)據(jù)降低對存儲、顯示、傳輸?shù)确矫娴闹笜艘螅遗c已有方法相比,具有更高的簡化速度,是一種快速高效的三維網(wǎng)格圖形簡化方法。
圖1是本發(fā)明的控制流程圖;圖2是邊折疊;圖3是三角形折疊;圖4是四邊形折疊;圖5是邊界處理作垂直平面a;圖6是三維球模型進行一次四邊形折疊的效果;
圖7是三維球形模型的簡化;圖8是人頭模型的簡化;圖9是鯊魚模型的簡化。
具體實施例方式
下面結合附圖對本發(fā)明的的三維網(wǎng)格圖形簡化方法作詳細描述。
如圖1所示是該發(fā)明的一個實施方案的控制流程圖,主要包括以下步驟獲取三維圖形的網(wǎng)格信息數(shù)據(jù)、檢索出網(wǎng)格中所含的四邊形、確定折疊代價最小的四邊形、折疊化簡。下面作詳細介紹。
(1)四邊形的定義與檢索算法中定義的四邊形并不是網(wǎng)格模型的基本圖元,而是由兩個相連的三角形組合而成,在執(zhí)行算法的時候,四邊形就可以通過網(wǎng)格模型的邊得到,每條邊都對應兩個相連的三角形,即都對應著一個由它們組合成的四邊形,該邊則為這個四邊形的公共邊;由于邊界邊只對應一個三角形,也即不存在以之為公共邊的四邊形,因此,在通過邊檢索四邊形的時候,需要排除邊界邊。
(2)基于四邊形的折疊操作由圖4可見,四邊形QUAD{v7,v8,v9,v10}是由兩個三角形T{v7,v8,v10}及T{v8,v9,v10}通過公共邊E{v8,v10}連接而成。簡化的基本操作是四邊形折疊,在圖(a)中,對四邊形QUAD{v7,v8,v9,v10},找到與之相關的三角形集合CQ,對QUAD{v7,v8,v9,v10}執(zhí)行折疊操作,則其四個頂點v7,v8,v9,v10收縮為圖(b)中的v0,執(zhí)行該次折疊操作,共減少3個頂點和6個三角面片。
(3)四邊形折疊代價的計算簡化的誤差即四邊形折疊的代價,本算法引入Garland算法中的二次誤差度量,即把新頂點到舊頂點相連平面的距離的平方之和作為頂點移動后引起的誤差。
Δ(v)=Δ(υxυyυz1T)=Σp∈planes(v)(pTv)2]]>=Σp∈planes(v)(vTp)(pTv)]]>=Σp∈planes(v)vT(ppT)v]]>=vT(Σp∈planes(v)Kp)v]]>=vTQ(va)v.---(1)]]>其中,KP為4×4對稱矩陣KP=ppT=a2abacadabb2bcbdacbcc2cdadbdcdd2---(2)]]>由于四邊形QUADi折疊需要同時考慮4個頂點移動后造成的誤差,我們以進行折疊操作的四邊形4個頂點va、vb、vc、vd的誤差之和作為誤差量度,即ε(QUADi)=∑Δ(v)=Δ(va→v0)+Δ(vb→v0)+Δ(vc→v0)+Δ(vd→v0)=v(Q(va)+Q(vb)+Q(vc)+Q(vb))vT=vQvT(3)其中,Q(va)、Q(vb)、Q(vc)、Q(vd)皆為4×4的對稱矩陣,Q可以由矩陣疊加得到,因此上式展開可得vTQv =q11x2+2q12xy+2q13xz+2q14x+q22y2+2q23yz+2q24y+q33z2+2q34z+q44(4)(4)新頂點位置進行四邊形折疊操作后,新頂點的位置可以有如下方法選擇(a)子集位置即四邊形四個頂點的其中一個頂點,子集位置由于不產(chǎn)生新頂點,需要存儲及處理開銷較小,適合像移動終端設備這樣的對簡化效果要求不高,但對處理開銷相對嚴格的場合。
(b)最佳位置(依據(jù)某種評價指標合成的新頂點)
由(4)式可知誤差函數(shù)Δ(v)是二次函數(shù),因此其最小值是個線性問題。由極值的性質,我們對(4)式中的x,y,z求偏導數(shù),可得方程組(5)∂Δ(v)∂x=∂Δ(v)∂y=∂Δ(v)∂z=0---(5)]]>寫成矩陣的形式,即q11q12q13q14q12q22q23q24q13q23q33q340001v=0001---(6)]]>如果(6)式有解,則新頂點v的位置由式(7)唯一給出v=q11q12q13q14q12q22q23q24q13q23q33q340001-10001---(7)]]>否則,可以選取四邊形QUADi的四個頂點或公共邊及外部邊的中點這9個位置中的一個作為新頂點的位置。
(5)邊界的處理對于非閉合的網(wǎng)格模型,存在含一條或多條邊界邊的邊界四邊形,與其相關的三角形集合不能構成一個三角形環(huán),如忽略邊界的情況,則在簡化過程中會造成邊界退化。為避免這種退化,我們在該三角形集合的每條邊界邊上作一個通過該邊界邊并與該邊界邊所在的邊界三角形垂直的平面。
如圖5示,QUAD{va,vb,vc,vd}是以vavc為公共邊的邊界四邊形,vdvc是網(wǎng)格模型的邊界邊,作平面a垂直三角形T{va,vc,vd},并與T{va,vc,vd}相交于邊vdvc,因此計算vd及vc兩頂點的誤差矩陣Q時,就需要考慮新頂點到平面a的距離,由于計算機結果與這個垂直平面的選取無關,這樣做就將點到邊界邊的距離加入到誤差測度之中,從而保證新頂點不會偏離邊界,保持了模型的邊界。
基于四邊形折疊的網(wǎng)格簡化算法是采用新的四邊形折疊作為基本簡化操作,以QEM作為誤差量度,根據(jù)圖1和圖4對該方法的控制流程作如描述步驟1.對原始網(wǎng)格中的每條非邊界邊構成的四邊形QUADi,計算其誤差矩陣Q;步驟2.對原始網(wǎng)格中的每個四邊形QUADi,通過其誤差矩陣Q計算其折疊后生成的最優(yōu)收縮目標點v,并通過vQvT計算其折疊誤差并按順序入棧,棧頂為最小誤差值;步驟3.選取誤差最小的四邊形進行折疊;步驟4.更新與被折疊四邊形相關的所有信息;步驟5.如果四邊形序列為空或已經(jīng)達到簡化目標,轉到步驟6,否則轉步驟3。
步驟6.結束圖6、圖7、圖8和圖9為該方法的幾組應用實例。圖6是三維球模型進行一次四邊形折疊前后的圖形比較。圖7是由2000個三角形網(wǎng)格組成的三維球形模型使用本簡化方法處理后的幾組圖像,左邊是貼面圖,右邊是拓樸結構圖。下表為不同簡化程度所對應的面片數(shù)
圖8是人頭模型的簡化,圖9是鯨魚模型的簡化。由以上幾組應用實例可以看出本簡化方法將模型簡化了50%以后,仍能夠較好保持模型的邊界特征,具有很好的簡化效果。
權利要求
1.一種基于四邊形折疊的三維網(wǎng)格圖形簡化方法,包括步驟①獲取三維圖形的網(wǎng)格信息數(shù)據(jù);②定義并檢索出網(wǎng)格中所含的四邊形;③確定折疊代價最小的四邊形;④折疊化簡操作。
2.根據(jù)權利要求1所述的三維網(wǎng)格圖形簡化方法,其特征是所述的定義并檢索網(wǎng)格中所含的四邊形是通過邊來檢索,而且排除邊界邊。
3.根據(jù)權利要求1或2所述的三維網(wǎng)格圖形簡化方法,其特征是所述的確定折疊代價最小的四邊形中采用Garland算法中的二次誤差度量來計算四邊形折疊的代價,由于四邊形折疊需要同時考慮4個頂點移動后造成的誤差,本方法以進行折疊操作的四邊形4個頂點的誤差之和作為折疊代價。
4.根據(jù)權利要求1或2所述的三維網(wǎng)格圖形簡化方法,其特征在于所述的折疊化簡操作包括新頂點位置的確定,新頂點的位置可以有如下方法選擇(a)子集位置即四邊形四個頂點的其中一個頂點,子集位置由于不產(chǎn)生新頂點,需要存儲及處理開銷較小,適合像移動終端設備這樣的對簡化效果要求不高,但對處理開銷相對嚴格的場合;(b)最佳位置由于折疊代價函數(shù)是二次函數(shù),因此可以計算出其最小值作為折疊后的新頂點;如以上計算無解,則可以選取四邊形的四個頂點或公共邊及外部邊的中點這9個位置中的一個作為新頂點的位置。
5.根據(jù)權利要求1或2所述的三維網(wǎng)格圖形簡化方法,其特征在于所述的折疊化簡操作中對于網(wǎng)格中含有一條或多條邊界邊的邊界四邊形作以下處理在該三角形集合的每條邊界邊上作一個通過該邊界邊并與該邊界邊所在的邊界三角形垂直的平面a,在計算折疊代價時要考慮新頂點到平面a的距離,保證新頂點不會偏離邊界,保持了圖形的邊界。
全文摘要
本發(fā)明公開了一種基于四邊形折疊的三維網(wǎng)格圖形簡化方法,包括步驟①獲取三維圖形的網(wǎng)格信息數(shù)據(jù);②定義并檢索出網(wǎng)格中所含的四邊形;③確定折疊代價最小的四邊形;④折疊化簡操作。本方法不僅可以簡化復雜的三維圖形數(shù)據(jù)降低對存儲、顯示、傳輸?shù)确矫娴闹笜艘?,而且與已有方法相比,具有更高的簡化速度,是一種快速高效的三維網(wǎng)格圖形簡化方法。
文檔編號G06T15/00GK1822051SQ20061003452
公開日2006年8月23日 申請日期2006年3月21日 優(yōu)先權日2006年3月21日
發(fā)明者羅笑南, 陳華鴻 申請人:中山大學