專利名稱:一種帶尖銳特征的無網(wǎng)格表面繪制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種無網(wǎng)格表面繪制方法,尤其是涉及一種帶尖銳特征的無網(wǎng)格表面繪制方法。
背景技術(shù):
三維掃描系統(tǒng)輸出的是采樣點(diǎn)元,通過該技術(shù)所得到的點(diǎn)元集合可以準(zhǔn)確地表達(dá)物體的幾何形狀。由于各點(diǎn)元之間沒有連接關(guān)系,也不需要保存拓?fù)浣Y(jié)構(gòu)信息,因此在處理復(fù)雜的三維物體時(shí)顯得特別靈活和簡單。因此,基于點(diǎn)的無網(wǎng)格幾何建模和繪制在計(jì)算機(jī)圖形學(xué)領(lǐng)域內(nèi)受到越來越多的關(guān)注。使用點(diǎn)元作為基本元素進(jìn)行表面繪制最早由Levoy等人提出。之后,出現(xiàn)了各種無網(wǎng)格表面繪制方法,例如,使用圖像空間表面重建技術(shù)的方法、QSplat系統(tǒng)以及利用移動(dòng)最小二乘(MLS,Moving Least Square)的方法等。Splatting算法是一種比較快速也較易實(shí)現(xiàn)的實(shí)時(shí)算法。在這種方式中,每個(gè)表面點(diǎn)元用一個(gè)小圓盤近似,這一近似的小圓盤被稱為Splat。然而,Splatting算法并不能很好地處理表面模型中的尖銳特征,例如邊或角等。這些尖銳特征在某些應(yīng)用中是非常重要的,例如CSG(構(gòu)造實(shí)體幾何)建模、切割模擬等。Adams等人提出在邊角區(qū)域用非常小的splat進(jìn)行重采樣。然而,這種方法需要非常高的采樣率,并且這也只是一種近似方法,當(dāng)將邊角區(qū)域放大時(shí),仍能看到失真。Pauly等人提出了一種用特殊的splat來繪制邊緣的方法。這種splat由兩個(gè)相交的圓盤組成,并且這兩個(gè)圓盤擁有公共的圓心。切割的邊緣就是兩個(gè)圓盤的交線。這種方法的一個(gè)重要缺陷是不能繪制角點(diǎn)。Zwicker等提出切割線(clip line)的概念,指出邊緣信息可以通過計(jì)算兩個(gè)相交圓盤所在平面的交線得到。Wicke等提出了如何在CSG模型中繪制尖銳特征。此方法將splat的裁剪轉(zhuǎn)化為內(nèi)外點(diǎn)測(cè)試問題(inside/outside test,判斷空間內(nèi)一點(diǎn)是在模型內(nèi)部還是模型外部)。該方法是目前最準(zhǔn)確的方法,但該方法依賴于CSG模型,限制了它的應(yīng)用。最近,為了去除對(duì)CSG模型的依賴,Ivo等使用了自適應(yīng)的splat裁剪方法。但該方法對(duì)某些復(fù)雜情況仍然無法處理。點(diǎn)邊混合模型是繪制尖銳特征的另一種策略,由Zhang等提出。除了點(diǎn)元集合外,該模型還包括了一個(gè)切割線的集合,用來繪制邊角。但是有三個(gè)限制,因此在繪制前需要對(duì)模型進(jìn)行一次預(yù)處理過程,當(dāng)某個(gè)限制不滿足時(shí),增加點(diǎn)元集合的采樣率,直到所有限制都被滿足。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種穩(wěn)定可靠、實(shí)現(xiàn)方便、非常適合于實(shí)際工程應(yīng)用的帶尖銳特征的無網(wǎng)格表面繪制方法。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn)一種帶尖銳特征的無網(wǎng)格表面繪制方法,該方法包括以下步驟
第一步,采用點(diǎn)邊混合模型對(duì)待繪制物體的表面進(jìn)行建模;第二步,將模型中的表面點(diǎn)與相應(yīng)的切割邊進(jìn)行關(guān)聯(lián),并保存關(guān)聯(lián)結(jié)果;第三步,將模型中所有的切割邊投影到觀察平面上,形成投影切割邊;第四步,將模型中所有的表面點(diǎn)投影到觀察平面上,形成一個(gè)個(gè)相互重疊的橢圓;第五步,利用第三步中投影后的切割邊,通過之字形剪裁算法對(duì)每個(gè)投影在觀察平面上的橢圓進(jìn)行裁剪;第六步,裁剪完畢后,對(duì)整個(gè)觀察平面上的像素點(diǎn)進(jìn)行歸一化,獲得待繪制物體的無網(wǎng)格表面。所述的無網(wǎng)格表面由若干個(gè)光滑表面s組成,所述的尖銳特征僅出現(xiàn)在兩個(gè)或多個(gè)相鄰的光滑表面之間,對(duì)于每個(gè)光滑表面S,有S= {Pn, LJ 其中,Pn為η個(gè)表面點(diǎn)的集合,η > 0,每個(gè)表面點(diǎn)中包含該點(diǎn)的屬性,Lt為t個(gè)切割環(huán)的集合,t ^ 0,每個(gè)切割環(huán)包含一個(gè)邊點(diǎn)的序列,在每個(gè)切割環(huán)中,連接任意兩個(gè)的邊點(diǎn)的線段稱為切割邊。所述的點(diǎn)的屬性包括點(diǎn)的位置、法向量、顏色值和該點(diǎn)所代表的splat的半徑。所述的點(diǎn)邊混合模型PEM定義如下PEM = {SK, VJ其中,Sk表不包含K個(gè)光滑表面的集合,Vm為m個(gè)邊點(diǎn)的集合。所述的邊點(diǎn)為尖銳特征中的邊上的點(diǎn)。所述的表面點(diǎn)與切割邊進(jìn)行關(guān)聯(lián)是指在每個(gè)光滑表面中,計(jì)算表面點(diǎn)與切割邊間的距離,實(shí)現(xiàn)關(guān)聯(lián),具體描述為以表面點(diǎn)的位置為球心,表面點(diǎn)所表示的splat的半徑為半徑作每個(gè)表面點(diǎn)的包圍球,同時(shí)將切割邊用包圍球包起來,然后作包圍球間的碰撞檢測(cè),若某一包圍球與某一切害I]邊相交,則表明它們之間有關(guān)聯(lián)關(guān)系。所述的之字型裁剪算法是指根據(jù)觀察平面上有離散點(diǎn)的射線與切割邊判斷該離散點(diǎn)是否需被裁剪,并舍棄需被裁剪的離散點(diǎn),具體為I)針對(duì)觀察平面上的某一離散點(diǎn)D,從該點(diǎn)畫一條射線,使這條射線經(jīng)過第一條切割邊的中心c ;2)計(jì)算該射線與所有投影切割邊的交點(diǎn),并記錄距離點(diǎn)D最近的交點(diǎn),該交點(diǎn)所在的切割邊定義為關(guān)鍵切割邊e ;3)判斷點(diǎn)D是否滿足志*;^<0,若是,則點(diǎn)D為需被裁剪的離散點(diǎn),舍棄點(diǎn)D,若否,則保留點(diǎn)D。當(dāng)距離點(diǎn)D最近的交點(diǎn)為兩條投影切割邊的公共點(diǎn)時(shí),另取一條射線,使其通過其中一條切割邊的中點(diǎn),并計(jì)算其與另一條邊的交點(diǎn),根據(jù)交點(diǎn)與點(diǎn)D的距離選取關(guān)鍵切割邊。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)(I)省去了增加采樣點(diǎn)這一復(fù)雜的預(yù)處理過程,簡化了整個(gè)建模過程;(2)繪制過程是在經(jīng)典的Splatting算法中做的部分改進(jìn),整個(gè)繪制過程非常易于實(shí)現(xiàn);(3)本發(fā)明對(duì)于處理各種尖銳邊緣效果非常好。
圖1為本發(fā)明的流程示意圖;圖2為采用本發(fā)明方法繪制的齒輪模型效果圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。本實(shí)施例以本發(fā)明技術(shù)方案為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。實(shí)施例如圖1所示,一種帶尖銳特征的無網(wǎng)格表面繪制方法,該方法包括以下步驟第一步,在繪制前,采用點(diǎn)邊混合模型對(duì)待繪制物體的表面進(jìn)行建模,;在點(diǎn)邊混合模型中,用P來表示表面點(diǎn);而用V來表示尖銳特征中的邊上的點(diǎn),并稱其為邊點(diǎn)。所述的無網(wǎng)格表面由若干個(gè)光滑表面s組成,規(guī)定尖銳特征僅出現(xiàn)在兩個(gè)或多個(gè)相鄰的光滑表面之間,對(duì)于每個(gè)光滑表面S,有s = {Pn, LJ其中,Pn為η個(gè)表面點(diǎn)的集合,η > O,每個(gè)表面點(diǎn)中包含該點(diǎn)的屬性,包括點(diǎn)的位置、法向量、顏色值和該點(diǎn)所代`表的splat的半徑;Lt為t個(gè)切割環(huán)的集合,t ^ O。每個(gè)切割環(huán)包含一個(gè)邊點(diǎn)的序列,將這些邊點(diǎn)按該序列連接起來,并連上其頭尾,就可以組成一個(gè)環(huán)狀的切割環(huán)。由于我們之前規(guī)定了尖銳特征只能出現(xiàn)在兩個(gè)或多個(gè)相鄰的光滑表面之間,因此這些特征只能以環(huán)狀形式存在于模型中。切割環(huán)中的邊點(diǎn)是按逆時(shí)針的順序排列的,即當(dāng)視線沿著表面點(diǎn)的法向量的反方向看過去,邊點(diǎn)的排列順序是逆時(shí)針的。另外需要指出的是,每個(gè)光滑表面可以沒有切割環(huán),例如一個(gè)光滑的球面;也可以有多于一個(gè)的切割環(huán),這種情況發(fā)生在表面中有洞的情況。在每個(gè)切割環(huán)中,連接任意兩個(gè)的邊點(diǎn)的線段稱為切割線段或切割邊。所述的點(diǎn)邊混合模型PEM定義如下PEM = {SK,VJ其中,3£表示包含K個(gè)光滑表面的集合,Sk = {Si|i = 1,…,K},VmSm個(gè)邊點(diǎn)的
隹A
口 O第二步,將模型中的表面點(diǎn)與相應(yīng)的切割邊進(jìn)行關(guān)聯(lián),并保存關(guān)聯(lián)結(jié)果。所述的表面點(diǎn)與切割邊進(jìn)行關(guān)聯(lián)是指在每個(gè)光滑表面中,計(jì)算表面點(diǎn)與切割邊間的距離,實(shí)現(xiàn)關(guān)聯(lián),具體描述為以表面點(diǎn)的位置為球心,表面點(diǎn)所表示的splat的半徑為半徑作每個(gè)表面點(diǎn)的包圍球,同時(shí)將切割邊用包圍球包起來,然后作包圍球間的碰撞檢測(cè),若某一包圍球與某一切害I]邊相交,則表明它們之間有關(guān)聯(lián)關(guān)系。第三步,繪制過程從這步開始,將模型中所有切割邊投影到觀察平面上,形成投影切割邊。
第四步,將模型中所有的表面點(diǎn)投影到觀察平面上,形成一個(gè)個(gè)相互重疊的橢圓。第五步,利用第三步中投影后的切割邊,通過之字形剪裁算法對(duì)每個(gè)投影在觀察平面上的橢圓進(jìn)行裁剪。所述的之字型裁剪算法如下所述的之字型裁剪算法是指根據(jù)觀察平面上有離散點(diǎn)的射線與切割邊判斷該離散點(diǎn)是否需被裁剪,并舍棄需被裁剪的離散點(diǎn),具體為I)針對(duì)觀察平面上的某一離散點(diǎn)D,從該點(diǎn)畫一條射線,使這條射線經(jīng)過第一條切割邊的中心c ;2)計(jì)算該射線與所有投影切割邊的交點(diǎn),并記錄距離點(diǎn)D最近的交點(diǎn),該交點(diǎn)所在的切割邊定義為關(guān)鍵 切割邊e ;3)判斷點(diǎn)D是否 兩足cD*ne<0 ι右是,則點(diǎn)D為需被裁到的尚散點(diǎn),舍棄點(diǎn)D,右否,則保留點(diǎn)D。另外需要指出的是,當(dāng)射線正好通過兩條切割邊的公共點(diǎn)時(shí),則可能會(huì)無法判斷這兩個(gè)切割邊哪個(gè)是關(guān)鍵切割邊。解決辦法是另畫一條射線,使其通過其中一條切割邊的中點(diǎn),并計(jì)算其與另一條邊的交點(diǎn),看哪個(gè)交點(diǎn)最近哪個(gè)就是關(guān)鍵切割邊。該裁剪算法的偽代碼如下所示
權(quán)利要求
1.一種帶尖銳特征的無網(wǎng)格表面繪制方法,其特征在于,該方法包括以下步驟 第一步,采用點(diǎn)邊混合模型對(duì)待繪制物體的表面進(jìn)行建模; 第二步,將模型中的表面點(diǎn)與相應(yīng)的切割邊進(jìn)行關(guān)聯(lián),并保存關(guān)聯(lián)結(jié)果; 第三步,將模型中所有的切割邊投影到觀察平面上,形成投影切割邊; 第四步,將模型中所有的表面點(diǎn)投影到觀察平面上,形成一個(gè)個(gè)相互重疊的橢圓; 第五步,利用第三步中投影后的切割邊,通過之字形剪裁算法對(duì)每個(gè)投影在觀察平面上的橢圓進(jìn)行裁剪; 第六步,裁剪完畢后,對(duì)整個(gè)觀察平面上的像素點(diǎn)進(jìn)行歸一化,獲得待繪制物體的無網(wǎng)格表面。
2.根據(jù)權(quán)利要求1所述的一種帶尖銳特征的無網(wǎng)格表面繪制方法,其特征在于,所述的無網(wǎng)格表面由若干個(gè)光滑表面s組成,所述的尖銳特征僅出現(xiàn)在兩個(gè)或多個(gè)相鄰的光滑表面之間,對(duì)于每個(gè)光滑表面S,有S = {Pn, LJ 其中,PnS η個(gè)表面點(diǎn)的集合,η > O,每個(gè)表面點(diǎn)中包含該點(diǎn)的屬性,Lt為t個(gè)切割環(huán)的集合,t ^ O,每個(gè)切割環(huán)包含一個(gè)邊點(diǎn)的序列,在每個(gè)切割環(huán)中,連接任意兩個(gè)的邊點(diǎn)的線段稱為切割邊。
3.根據(jù)權(quán)利要求2所述的一種帶尖銳特征的無網(wǎng)格表面繪制方法,其特征在于,所述的點(diǎn)的屬性包括點(diǎn)的位置、法向量、顏色值和該點(diǎn)所代表的splat的半徑。
4.根據(jù)權(quán)利要求2所述的一種帶尖銳特征的無網(wǎng)格表面繪制方法,其特征在于,所述的點(diǎn)邊混合模型PEM定義如下PEM = {SK,VJ 其中,Sk表不包含K個(gè)光滑表面的集合,Vm為m個(gè)邊點(diǎn)的集合。
5.根據(jù)權(quán)利要求2或4所述的一種帶尖銳特征的無網(wǎng)格表面繪制方法,其特征在于,所述的邊點(diǎn)為尖銳特征中的邊上的點(diǎn)。
6.根據(jù)權(quán)利要求3所述的一種帶尖銳特征的無網(wǎng)格表面繪制方法,其特征在于,所述的表面點(diǎn)與切割邊進(jìn)行關(guān)聯(lián)是指在每個(gè)光滑表面中,計(jì)算表面點(diǎn)與切割邊間的距離,實(shí)現(xiàn)關(guān)聯(lián),具體描述為 以表面點(diǎn)的位置為球心,表面點(diǎn)所表示的splat的半徑為半徑作每個(gè)表面點(diǎn)的包圍球,同時(shí)將切割邊用包圍球包起來,然后作包圍球間的碰撞檢測(cè),若某一包圍球與某一切割邊相交,則表明它們之間有關(guān)聯(lián)關(guān)系。
7.根據(jù)權(quán)利要求1所述的一種帶尖銳特征的無網(wǎng)格表面繪制方法,其特征在于,所述的之字型裁剪算法是指根據(jù)觀察平面上有離散點(diǎn)的射線與切割邊判斷該離散點(diǎn)是否需被裁剪,并舍棄需被裁剪的離散點(diǎn),具體為 1)針對(duì)觀察平面上的某一離散點(diǎn)D,從該點(diǎn)畫一條射線,使這條射線經(jīng)過第一條切割邊的中心c ; 2)計(jì)算該射線與所有投影切割邊的交點(diǎn),并記錄距離點(diǎn)D最近的交點(diǎn),該交點(diǎn)所在的切割邊定義為關(guān)鍵切割邊e ; 3)判斷點(diǎn)D是否滿足疋*&<0,若是,則點(diǎn)D為需被裁剪的離散點(diǎn),舍棄點(diǎn)D,若否,則保留點(diǎn)D。
8.根據(jù)權(quán)利要求7所述的一種帶尖銳特征的無網(wǎng)格表面繪制方法,其特征在于,當(dāng)距離點(diǎn)D最近的交點(diǎn)為兩條投影切割邊的公共點(diǎn)時(shí),另取一條射線,使其通過其中一條切割邊的中點(diǎn),并計(jì)算其與另一條邊的交點(diǎn),根據(jù)交點(diǎn)與點(diǎn)D的距離選取關(guān)鍵切割邊。
全文摘要
本發(fā)明涉及一種帶尖銳特征的無網(wǎng)格表面繪制方法,該方法包括以下步驟第一步,采用點(diǎn)邊混合模型對(duì)待繪制物體的表面進(jìn)行建模;第二步,將模型中的表面點(diǎn)與相應(yīng)的切割邊進(jìn)行關(guān)聯(lián),并保存關(guān)聯(lián)結(jié)果;第三步,將模型中所有的切割邊投影到觀察平面上,形成投影切割邊;第四步,將模型中所有的表面點(diǎn)投影到觀察平面上,形成一個(gè)個(gè)相互重疊的橢圓;第五步,利用第三步中投影后的切割邊,通過之字形剪裁算法對(duì)每個(gè)投影在觀察平面上的橢圓進(jìn)行裁剪;第六步,裁剪完畢后,對(duì)整個(gè)觀察平面上的像素點(diǎn)進(jìn)行歸一化,獲得待繪制物體的無網(wǎng)格表面。與現(xiàn)有技術(shù)相比,本發(fā)明具有穩(wěn)定可靠、實(shí)現(xiàn)方便、非常適合于實(shí)際工程應(yīng)用等優(yōu)點(diǎn)。
文檔編號(hào)G06T17/30GK103065362SQ201210571768
公開日2013年4月24日 申請(qǐng)日期2012年12月25日 優(yōu)先權(quán)日2012年12月25日
發(fā)明者顧力栩, 戴春鋒 申請(qǐng)人:上海交通大學(xué)