一種基于拉普拉斯坐標(biāo)的網(wǎng)格細(xì)分方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及三維網(wǎng)格模型的建模和細(xì)分技術(shù),具體地說(shuō)是涉及到保持三維網(wǎng)格模 型指定特點(diǎn)的精細(xì)度提高技術(shù)。
【背景技術(shù)】
[0002] 目前,在計(jì)算機(jī)圖形學(xué)中,隨著計(jì)算機(jī)硬件的不斷發(fā)展,圖形處理能力越來(lái)越強(qiáng), 為了實(shí)現(xiàn)高真實(shí)感,許多計(jì)算機(jī)圖形應(yīng)用都使用復(fù)雜的,具有高精度細(xì)節(jié)信息的模型。因此 常用模型的構(gòu)造常常需要高精度的。雖然,有三維掃描之類(lèi)的技術(shù)來(lái)一次性獲得高密度的 頂點(diǎn),但是,僅僅依靠掃描還滿(mǎn)足不了人們對(duì)三維模型的日益增長(zhǎng)的需求。那么,人們需要 根據(jù)自己的想法使用各種工具設(shè)計(jì)出模型。直接逐個(gè)確定高精度模型的頂點(diǎn),是比較冗余 繁瑣的工作。通常人們是先構(gòu)造出一個(gè)基本符合要求的低精細(xì)度的網(wǎng)格模型,然后再使用 工具在保持指定特點(diǎn)的同時(shí),提高網(wǎng)格模型的精細(xì)度。另一方面,三維掃描所得的模型,由 于設(shè)備的級(jí)別不同,有些時(shí)候也還是精細(xì)度不夠。因此,人們迫切需要一些可以提高網(wǎng)格模 型精細(xì)度的技術(shù)。網(wǎng)格細(xì)分就是其中一類(lèi)重要的技術(shù)。
[0003] 細(xì)分技術(shù),能夠從一個(gè)任意的拓?fù)渚W(wǎng)格結(jié)構(gòu)構(gòu)造出一個(gè)極限連續(xù)的曲面,是20世 紀(jì)70年代提出的一種曲線(xiàn)曲面造型技術(shù)。根據(jù)細(xì)分后的極限曲面是否插值初始的控制網(wǎng) 格,分為逼近細(xì)分和插值細(xì)分。
[0004] 逼近細(xì)分已有不少經(jīng)典算法:Catmull-Clark細(xì)分方法基于四邊形網(wǎng)格,采用1-4 四邊形分裂算子生成新網(wǎng)格,其中使用雙三次均勻B樣條;Doo-Sabin細(xì)分方法類(lèi)似于雕塑 過(guò)程,即不斷地切削網(wǎng)格的棱邊和角,使之趨向光滑,但是在奇異點(diǎn)處,光滑效果不夠;Loop 細(xì)分方法基于三角網(wǎng)格,采用1-4三角形分裂,取得了不錯(cuò)的效果。
[0005] 插值細(xì)分也有不少經(jīng)典算法:蝶形細(xì)分方法采用1-4三角網(wǎng)格分裂,由于其面具 與蝴蝶相似而得名,但得到的極限曲面光順不太好;4-8細(xì)分方法,雖然面片增長(zhǎng)速度慢了 下來(lái),但是操作過(guò)于復(fù)雜,還需要先用Catmull-Clark方法把網(wǎng)格處理為四邊形,然后把每 個(gè)四邊形變?yōu)槿切巍?br>[0006] 還有借助拉普拉斯坐標(biāo)來(lái)修正頂點(diǎn)位置的細(xì)分方法,但是它是在求解的過(guò)程中先 求出拉普拉斯坐標(biāo),然后用于求頂點(diǎn)平移增量來(lái)調(diào)整。Weimer和Warren在1998年研究過(guò) 細(xì)分方法與變分問(wèn)題的關(guān)系,但他們也是通過(guò)線(xiàn)性組合的角度用矩陣來(lái)求解新的頂點(diǎn)。
[0007] 上面提到的細(xì)分方法大都是線(xiàn)性且靜態(tài)的,就是說(shuō),對(duì)網(wǎng)格上任一細(xì)分層次使用 的規(guī)則都不變,而且新頂點(diǎn)簡(jiǎn)單地由舊頂點(diǎn)的線(xiàn)性組合得到,需要多步驟地求解才能得到 結(jié)果。細(xì)分曲面沒(méi)有解析形式,曲面的連續(xù)性和光滑性分析無(wú)論從理論還是應(yīng)用角度來(lái)說(shuō) 都顯得很重要,當(dāng)然相對(duì)來(lái)說(shuō)也比較復(fù)雜。
[0008] 本發(fā)明提出一種通過(guò)求解線(xiàn)性方程,一次性求出所有的新頂點(diǎn)的方法,從而避免 分步驟進(jìn)行細(xì)分,并且能夠讓拓?fù)浣Y(jié)構(gòu)更加自由。它把新頂點(diǎn)位置的拉普拉斯坐標(biāo)設(shè)成向 量0。在極限情況下,在新頂點(diǎn)位置是極小曲面。由于調(diào)和函數(shù)總是無(wú)窮次可導(dǎo)(光滑) 的,所以所得極限曲面是光滑的。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的方法是基于低精細(xì)度的網(wǎng)格模型和給定的精細(xì)度提高需求,使用拉普拉 斯坐標(biāo),通過(guò)線(xiàn)性系統(tǒng)求解出高精細(xì)度的網(wǎng)格模型。
[0010] 為達(dá)到上述的目的,本發(fā)明采用的技術(shù)方案是:一種基于拉普拉斯坐標(biāo)的網(wǎng)格細(xì) 分方法。該方法包括以下幾個(gè)步驟:
[0011] (1)輸入低精細(xì)度的三維網(wǎng)格模型Ml;
[0012] ⑵用戶(hù)確定Ml的各個(gè)頂點(diǎn)在細(xì)分過(guò)程中的插值程度,其中可以按區(qū)域來(lái)指定;
[0013] (3)用戶(hù)確定新網(wǎng)格的拓?fù)浣Y(jié)構(gòu),可以使用其它插值細(xì)分方法獲取拓?fù)浣Y(jié)構(gòu)的方 法來(lái)得到,但該步驟不必求出各個(gè)新頂點(diǎn)的坐標(biāo);
[0014] (4)根據(jù)新網(wǎng)格的拓?fù)浣Y(jié)構(gòu),構(gòu)造新網(wǎng)格的拉普拉斯矩陣L;
[0015] (5)根據(jù)L和用戶(hù)給定的插值程度,構(gòu)造擴(kuò)展后的拉普拉斯矩陣A,以及新網(wǎng)格的 期望拉普拉斯坐標(biāo)b,其中跟新頂點(diǎn)對(duì)應(yīng)的拉普拉斯坐標(biāo)設(shè)成0 ;
[0016] (6)求解線(xiàn)性系統(tǒng)AV' =b,得到V' ;
[0017] (7)由得到的V'以及拓?fù)浣Y(jié)構(gòu),構(gòu)成新的高精細(xì)度的網(wǎng)格模型M2。
【附圖說(shuō)明】
[0018] 圖1為本發(fā)明方法的流程示意圖;
[0019] 圖2為本發(fā)明方法對(duì)一個(gè)四面體網(wǎng)格處理的效果圖;
[0020] 圖3為本發(fā)明方法對(duì)一個(gè)兔子網(wǎng)格處理的效果圖。
【具體實(shí)施方式】
[0021] 下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說(shuō)明。
[0022] 首先,輸入低精細(xì)度的三維網(wǎng)格模型,設(shè)為Ml。其中包括頂點(diǎn)集合V= {v0,vl,…, vi,…}、邊集合E= {e0,el,…,ej,…},還有面集合F= {f0,fl、…,fk,…}。不妨 設(shè)頂點(diǎn)數(shù)為N。
[0023] 為了確定V中各個(gè)頂點(diǎn)的被插值或逼近的程度,需要給每個(gè)頂點(diǎn)vi確定一個(gè)逼近 值cvi。該值可以是任意正數(shù)。當(dāng)該值越大,表示新網(wǎng)格中對(duì)應(yīng)的頂點(diǎn)越逼近原頂點(diǎn),也就 是越接近插值。當(dāng)該值無(wú)窮大時(shí),就是插值原頂點(diǎn)。當(dāng)該值越小,表示該點(diǎn)越自由,越是由 光滑因素來(lái)決定其位置。
[0024] 用戶(hù)可以通過(guò)以下幾種方式給定插值程度值;
[0025] (1)為所有頂點(diǎn)逐個(gè)指定一個(gè)值;
[0026] (2)為所有邊逐條指定一個(gè)值,每條邊所被賦予的值就相當(dāng)于賦予它的兩個(gè)頂點(diǎn)。 這樣,每個(gè)頂點(diǎn)將獲得多個(gè)值。再通過(guò)線(xiàn)性求值方式獲得每個(gè)頂點(diǎn)的插值程度值。比如:取 最大值、取最小值、取平均值等;
[0027] (3)為所有面逐個(gè)指定一個(gè)值,每個(gè)面所被賦予的值就相當(dāng)于賦予它的三個(gè)頂點(diǎn)。 這樣,每個(gè)頂點(diǎn)將獲得多個(gè)值。再通過(guò)線(xiàn)性求值方式獲得每個(gè)頂點(diǎn)的插值程度值。比如:取 最大值、取最小值、取平均值等;
[0028] (4)前面兒種方式的組合來(lái)指定所有頂點(diǎn)的插值程度值。
[0029] 新的高精細(xì)度網(wǎng)格模型跟原來(lái)低精細(xì)度的網(wǎng)格模型相比,肯定增加頂點(diǎn),也就導(dǎo) 致其拓?fù)浣Y(jié)構(gòu)肯定與原來(lái)的不同。不妨設(shè)新的頂點(diǎn)數(shù)為T(mén)。本發(fā)明對(duì)于新拓?fù)浣Y(jié)構(gòu)只要求 它包含原網(wǎng)格的頂點(diǎn),不再限定其它形式。這樣,用戶(hù)可以給出更加自由的拓?fù)浣Y(jié)構(gòu)。
[0030] 用戶(hù)可以通過(guò)類(lèi)似其它細(xì)分方法的獲取拓?fù)浣Y(jié)構(gòu)的方式,獲取新拓?fù)浣Y(jié)構(gòu)。當(dāng)然, 這里只是獲取拓?fù)浣Y(jié)構(gòu),也就是頂點(diǎn)的連接關(guān)系,而不必計(jì)算頂點(diǎn)位置。計(jì)算量將只是其它 細(xì)分方法的計(jì)算過(guò)程的一小部分而已。用戶(hù)還可以手動(dòng)或使用其它工具,給出一些符合特 定要求的拓?fù)浣Y(jié)構(gòu),使原網(wǎng)格的某些區(qū)域被細(xì)分得比較粗,而某些區(qū)域則被細(xì)分得比較細(xì)。
[0031] 假設(shè)新的拓?fù)浣Y(jié)構(gòu)以TXT連接矩陣P的方式給出。P的每個(gè)元素pij具體取值如 下:
[0033] 構(gòu)造TXT矩陣D來(lái)記錄每個(gè)頂點(diǎn)的度數(shù),其中每個(gè)元素dij具體取值如下:
[0035] 其中di為vi的度,即ESpis。
[0036] 使用P和D,構(gòu)造TXT拉普拉斯矩陣L=D-P。其中L的每個(gè)元素lij具體取值 如下:
[0038] 由于在L中,每一行記錄了新拓?fù)浣Y(jié)構(gòu)中一個(gè)頂點(diǎn)的情況,而新網(wǎng)格中包含了N個(gè) 頂點(diǎn)跟原網(wǎng)格對(duì)應(yīng)。不妨設(shè),和原網(wǎng)格頂點(diǎn)對(duì)應(yīng)的N個(gè)頂點(diǎn)排在L中的前N行。構(gòu)造擴(kuò)展 后的(T+N)XT拉普拉斯矩陣A如下:
[0039] ;
[0040] 其中C是一個(gè)NXN對(duì)角矩陣。C的每一行對(duì)應(yīng)原網(wǎng)格的一個(gè)頂點(diǎn)。第i行主對(duì)角 線(xiàn)上的元素就是用戶(hù)為Vi設(shè)定的插值程度值cvi。
[0041] 接下來(lái),構(gòu)造期望拉普拉斯坐標(biāo)值(T+N)X3矩陣b如下:
[0042] ;
[0043] 其中V為NX3矩陣,每一行分別是原網(wǎng)格的一個(gè)頂點(diǎn)的x、y、z坐標(biāo)。即V的第i 行是vi的坐標(biāo)。
[0044] 使用A和b,構(gòu)造一個(gè)線(xiàn)性系統(tǒng):AV' =b。其中V'是新網(wǎng)格的頂點(diǎn)坐標(biāo)類(lèi)似V構(gòu) 成的矩陣。由于拉普拉斯矩陣L的秩是T-1,再加上C的擴(kuò)展,就能夠使得A的秩為T(mén),所以 該線(xiàn)性系統(tǒng)有唯一解。通過(guò)求解該線(xiàn)性系統(tǒng),就可以得到V'。它是新網(wǎng)格的頂點(diǎn)集,總共有 T個(gè)頂點(diǎn)。
[0045] 最后,V'結(jié)合新網(wǎng)格的拓?fù)浣Y(jié)構(gòu),構(gòu)成高精細(xì)度的網(wǎng)格模型。
[0046] 使用本發(fā)明方法,對(duì)一個(gè)四面體網(wǎng)格進(jìn)行細(xì)分得到實(shí)驗(yàn)效果如圖2。其中(a)為初 始網(wǎng)格,(b)和(c)分別是從兩個(gè)不同視角觀察處理后的網(wǎng)格的效果。對(duì)兔子網(wǎng)格進(jìn)行細(xì) 分得到實(shí)驗(yàn)效果如圖2。其中(a)為初始網(wǎng)格,(b)、(c)和(d)分別是從三個(gè)不同視角觀察 處理后的網(wǎng)格的效果。
【主權(quán)項(xiàng)】
1. 一種基于拉普拉斯坐標(biāo)的網(wǎng)格細(xì)分方法,其特征在于,該方法包含以下步驟: (1) 輸入三角網(wǎng)格模型; (2) 利用基于拉普拉斯坐標(biāo)的網(wǎng)格細(xì)分方法編輯模型: (3) 生成目標(biāo)網(wǎng)格模型。2. 根據(jù)權(quán)利要求1所述的,利用基于拉普拉斯坐標(biāo)的網(wǎng)格細(xì)分方法編輯模型,可用以 下步驟來(lái)實(shí)現(xiàn): (1) 根據(jù)原網(wǎng)格,以及細(xì)分要求,構(gòu)造目標(biāo)網(wǎng)格的拓?fù)浣Y(jié)構(gòu); (2) 基于拓?fù)浣Y(jié)構(gòu),構(gòu)造目標(biāo)網(wǎng)格的拉普拉斯矩陣A; (3) 根據(jù)細(xì)分要求,構(gòu)造目標(biāo)網(wǎng)格的拉普拉斯坐標(biāo)b; (4) 求解線(xiàn)性系統(tǒng)AV' =b,得到目標(biāo)網(wǎng)格模型的頂點(diǎn)坐標(biāo)V'。3. 權(quán)利要求2所述中的細(xì)分要求,包括: (1) 原網(wǎng)格上的各個(gè)三角面片的細(xì)分粒度,可以按區(qū)域的方式給定; (2) 原網(wǎng)格上的各個(gè)頂點(diǎn)的逼近程度。
【專(zhuān)利摘要】一種基于拉普拉斯坐標(biāo)的網(wǎng)格細(xì)分方法,本發(fā)明涉及三維網(wǎng)格模型的建模和細(xì)分技術(shù),具體地說(shuō)是涉及到保持三維網(wǎng)格模型指定特點(diǎn)的精細(xì)度提高技術(shù)。隨著計(jì)算機(jī)硬件的不斷發(fā)展,為了實(shí)現(xiàn)高真實(shí)感,許多計(jì)算機(jī)圖形應(yīng)用都使用復(fù)雜的,具有高精度細(xì)節(jié)信息的模型。但是高精細(xì)度的網(wǎng)格模型的構(gòu)造還不能滿(mǎn)足需要。本發(fā)明就是為了促進(jìn)這方面工作而提出的。本發(fā)明基于低精細(xì)皮的網(wǎng)格模型,由用戶(hù)確定頂點(diǎn)的插值程度以及新網(wǎng)格的拓?fù)浣Y(jié)構(gòu),然后構(gòu)造擴(kuò)展的拉普拉斯矩陣以及對(duì)應(yīng)的期望拉普拉斯坐標(biāo),形成線(xiàn)性系統(tǒng),從而求解新網(wǎng)格的頂點(diǎn)位置。最后,結(jié)合拓?fù)浣Y(jié)構(gòu),構(gòu)成新的高精細(xì)度網(wǎng)格模型。具體實(shí)現(xiàn)流程如附圖。
【IPC分類(lèi)】G06T17/30
【公開(kāi)號(hào)】CN104899929
【申請(qǐng)?zhí)枴緾N201410075900
【發(fā)明人】鄧正杰, 石春, 何書(shū)前
【申請(qǐng)人】海南師范大學(xué)
【公開(kāi)日】2015年9月9日
【申請(qǐng)日】2014年3月4日