基于最大化泊松圓盤采樣的重新網(wǎng)格化方法
【專利摘要】本發(fā)明公開了一種基于最大化泊松圓盤采樣的重新網(wǎng)格化方法,該方法包括以下步驟:對(duì)輸入的三角網(wǎng)格進(jìn)行細(xì)分處理,得到細(xì)分網(wǎng)格S;利用局部沖突檢測(cè)方法在細(xì)分網(wǎng)格S上進(jìn)行初始泊松采樣;對(duì)于細(xì)分網(wǎng)格S進(jìn)行迭代檢測(cè)并填充其中的空隙區(qū)域,得到最大化的泊松圓盤采樣點(diǎn)集;利用最大化的泊松采樣點(diǎn)集,對(duì)于細(xì)分網(wǎng)格S中的三角形進(jìn)行離散聚類,提取得到新的三角網(wǎng)格;對(duì)于得到的新的三角網(wǎng)格進(jìn)行角度和頂點(diǎn)度數(shù)優(yōu)化。本發(fā)明為最大化的泊松圓盤采樣提供了一種快速解決方案,而且可以獲得具有藍(lán)噪聲性質(zhì)的網(wǎng)格,非常適用于物理模擬、光照渲染以及幾何建模等。
【專利說明】基于最大化泊松圓盤采樣的重新網(wǎng)格化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于圖形處理【技術(shù)領(lǐng)域】,具體涉及圖形處理領(lǐng)域中的藍(lán)噪聲采樣技術(shù)和重 新網(wǎng)格化方法,特別涉及一種利用細(xì)分網(wǎng)格進(jìn)行快速泊松圓盤采樣,并利用采樣點(diǎn)生成三 角網(wǎng)格的方法。
【背景技術(shù)】
[0002] 采樣是信息處理領(lǐng)域中的基本問題,廣泛應(yīng)用于生物,物理,化學(xué)以及醫(yī)學(xué)等諸 多領(lǐng)域,與人類的日常生活密不可分。在多媒體處理與計(jì)算機(jī)圖形學(xué)領(lǐng)域,采樣技術(shù)尤為 重要。在眾多采樣方法中,藍(lán)噪聲采樣具有低頻能量低、能量徑向?qū)ΨQ等重要的頻譜特征, 這些性質(zhì)在圖像處理與圖形學(xué)中有著廣泛的應(yīng)用。泊松圓盤采樣是最經(jīng)典的藍(lán)噪聲采樣 方法之一。一個(gè)理想的泊松圓盤采樣點(diǎn)集需要滿足三個(gè)條件:無偏差采樣性質(zhì)(采樣區(qū) 域的每個(gè)沒有覆蓋的點(diǎn)都有相同的概率接受一個(gè)新的采樣點(diǎn))、最小距離性質(zhì)(任意兩個(gè) 采樣點(diǎn)之間的距離大于給定的采樣半徑),最大化性質(zhì)(采樣區(qū)域被所有的采樣圓盤完全 覆蓋)。滿足這三個(gè)條件的采樣方法稱為最大化泊松圓盤采樣(Maximal Poisson-disk Sampling-MPS)〇
[0003] 另一方面,網(wǎng)格是三維幾何表示的基本形式,網(wǎng)格生成技術(shù)是連接計(jì)算機(jī)圖形學(xué) 和工業(yè)界的重要橋梁。通常的網(wǎng)格生成是通過激光掃描儀掃描得到的粗糙網(wǎng)格數(shù)據(jù),但是 這些模型存在數(shù)據(jù)量大、三角形網(wǎng)格質(zhì)量差等缺點(diǎn),不能直接用于有限元模擬,計(jì)算機(jī)動(dòng)畫 等高級(jí)應(yīng)用。除此之外,曲面網(wǎng)格生成方法研究如何從一個(gè)已有曲面出發(fā),通過計(jì)算得到高 質(zhì)量的輸出網(wǎng)格用來近似表示輸入曲面。如果輸入曲面已經(jīng)是三角形網(wǎng)格表示,那么稱之 為曲面的重新網(wǎng)格化(remeshing),重新網(wǎng)格化是獲得高質(zhì)量網(wǎng)格模型的重要手段。
[0004] 泊松圓盤采樣以及重新網(wǎng)格化分別都有幾十年的研究歷史,但是很少有工作將兩 者結(jié)合起來同時(shí)研究。近年,Yan 和 Wonka (Yan,D.-M. and Wonka,P. (2013) .Gap processing for adaptive maximal Poisson-disk sampling. ACM Trans.on Graphics,32(5): 148:1-148:15.)首次提出網(wǎng)格曲面上的最大化泊松圓盤米樣(Maximal Poisson-disk Sampling-MPS)方法及重新網(wǎng)格化方法,推動(dòng)了藍(lán)噪聲網(wǎng)格生成的發(fā)展。該方法利用曲面上 的局部限制Voronoi (沃羅諾伊)圖給出了空隙區(qū)域存在的理論分析,并建立一個(gè)三維均勻 網(wǎng)格來輔助沖突檢測(cè)和泊松采樣,但是該方法采樣速度慢,而且內(nèi)存消耗大,不利于進(jìn)行快 速的泊松采樣。另外,由于該方法在一個(gè)全局的網(wǎng)格結(jié)構(gòu)內(nèi)使用歐式距離進(jìn)行沖突檢測(cè),所 以其在相近區(qū)域和自相交區(qū)域處很容易出現(xiàn)問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的缺陷,提供一種基于最大化泊松圓盤采樣的重新 網(wǎng)格化方法。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于最大化泊松圓盤采樣的重新網(wǎng)格化方法, 該方法包括以下步驟:
[0007] 步驟S1、對(duì)輸入的三角網(wǎng)格進(jìn)行細(xì)分處理,得到細(xì)分網(wǎng)格S ;
[0008] 步驟S2、利用局部沖突檢測(cè)方法在細(xì)分網(wǎng)格S上進(jìn)行初始泊松采樣;
[0009] 步驟S3、對(duì)于細(xì)分網(wǎng)格S進(jìn)行迭代檢測(cè)并填充其中的空隙區(qū)域,得到最大化的泊 松圓盤采樣點(diǎn)集;
[0010] 步驟S4、利用最大化的泊松采樣點(diǎn)集,對(duì)于細(xì)分網(wǎng)格S中的三角形進(jìn)行離散聚類, 提取得到新的三角網(wǎng)格;
[0011] 步驟S5、對(duì)于得到的新的三角網(wǎng)格進(jìn)行角度和頂點(diǎn)度數(shù)優(yōu)化。
[0012] 本發(fā)明采用計(jì)算機(jī)圖形處理的技術(shù),利用原始輸入網(wǎng)格的細(xì)分網(wǎng)格進(jìn)行快速的最 大化泊松圓盤采樣,進(jìn)而提取生成藍(lán)噪聲網(wǎng)格,并通過一種優(yōu)化的手段使得網(wǎng)格的質(zhì)量滿 足用戶的需求,因而非常適用于物理模擬、光照渲染以及幾何建模等。
【專利附圖】
【附圖說明】
[0013] 圖1是本發(fā)明基于最大化泊松圓盤采樣的重新網(wǎng)格化方法的流程圖;
[0014] 圖2是根據(jù)本發(fā)明一實(shí)施例輸入三角形的細(xì)分過程;
[0015] 圖3A和圖3B是根據(jù)本發(fā)明一實(shí)施例的輸入三角網(wǎng)格和細(xì)分之后的網(wǎng)格;
[0016] 圖4A?圖4C是根據(jù)本發(fā)明一實(shí)施例重新網(wǎng)格化的示意圖,其中圖4A是一個(gè)最大 化的泊松采樣點(diǎn)集,圖4B初始提取的三角網(wǎng)格,圖4C是優(yōu)化后的三角網(wǎng)格;
[0017] 圖5A和圖5B分別是本發(fā)明的方法與前人方法在運(yùn)行時(shí)間和內(nèi)存使用方面的對(duì)比 圖;
[0018] 圖6A和圖6B是本發(fā)明的方法與前人方法在模型相近區(qū)域重新網(wǎng)格化的結(jié)果對(duì)比 圖;
[0019] 圖7A和圖7B是本發(fā)明的方法與前人方法在模型自相交的區(qū)域重新網(wǎng)格化的結(jié)果 對(duì)比圖。
【具體實(shí)施方式】
[0020] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照 附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。
[0021] 圖1是本發(fā)明基于最大化泊松圓盤采樣的重新網(wǎng)格化方法的流程圖,如圖1所示, 所述方法包括以下步驟:
[0022] 步驟S1、對(duì)輸入的三角網(wǎng)格進(jìn)行細(xì)分處理,得到細(xì)分網(wǎng)格S ;
[0023] 步驟S2、利用局部沖突檢測(cè)方法在細(xì)分網(wǎng)格S上進(jìn)行初始泊松采樣;
[0024] 步驟S3、對(duì)于細(xì)分網(wǎng)格S進(jìn)行迭代檢測(cè)并填充其中的空隙區(qū)域,得到最大化的泊 松圓盤采樣點(diǎn)集;
[0025] 步驟S4、利用最大化的泊松采樣點(diǎn)集,對(duì)于細(xì)分網(wǎng)格S中的三角形進(jìn)行離散聚類, 提取得到新的三角網(wǎng)格;
[0026] 步驟S5、對(duì)于得到的新的三角網(wǎng)格進(jìn)行優(yōu)化,使得優(yōu)化網(wǎng)格中每個(gè)三角形的角度 和每個(gè)頂點(diǎn)的度數(shù)均滿足用戶指定的要求。
[0027] 下面對(duì)上述每個(gè)步驟進(jìn)行更加詳細(xì)的說明。
[0028] 步驟S1、對(duì)輸入的三角網(wǎng)格進(jìn)行細(xì)分處理,得到細(xì)分網(wǎng)格S ;
[0029] 本發(fā)明的輸入是一個(gè)三角網(wǎng)格,首先由用戶指定最小采樣半徑rmin,然后對(duì)輸入的 三角網(wǎng)格進(jìn)行不斷的細(xì)分,使得細(xì)分后的網(wǎng)格中每條邊的長(zhǎng)度不大于最小采樣半徑,這樣 就可以保證細(xì)分后的網(wǎng)格S中的每個(gè)三角形至多只包含一個(gè)采樣點(diǎn)。
[0030] 具體的細(xì)分過程為:
[0031] 首先,構(gòu)建一個(gè)優(yōu)先隊(duì)列,將輸入三角網(wǎng)格的所有邊放入到優(yōu)先隊(duì)列中,長(zhǎng)度越長(zhǎng) 的邊優(yōu)先級(jí)越高,每次從優(yōu)先隊(duì)列中彈出一條邊,如果該邊的長(zhǎng)度大于最小采樣半徑,則在 該邊的中點(diǎn)處添加一個(gè)新的頂點(diǎn)V,并分別連接V與該條邊相對(duì)的兩個(gè)輸入頂點(diǎn),從而形成 兩條新的邊,并將他們加入到優(yōu)先隊(duì)列中。該過程不斷進(jìn)行下去直到所有邊的長(zhǎng)度均小于 等于最小采樣半徑,得到細(xì)分網(wǎng)格S。
[0032] 圖2是一個(gè)輸入三角形ABC細(xì)分過程的示意圖,本發(fā)明首先檢測(cè)到邊AB大于rmin, 那么在AB的中點(diǎn)添加點(diǎn)D并連接⑶,從而將三角形ABC細(xì)分為兩個(gè)三角形ADC和DBC。接下 來依次處理邊BC、AC和⑶,最終將ABC細(xì)分為四個(gè)更小的三角形。最后,細(xì)分網(wǎng)格記為S = {V,M},其中,V是頂點(diǎn)集合V = Cv/)y=i - r是頂點(diǎn)的個(gè)數(shù),M是三角形集合M = tk代表一個(gè)細(xì)分三角形,m是細(xì)分三角形的個(gè)數(shù),每個(gè)細(xì)分三角形都使用一個(gè)數(shù)組來存儲(chǔ)完 全覆蓋該三角形或者與該三角形相交的采樣點(diǎn)。圖3A是根據(jù)本發(fā)明一實(shí)施例輸入的三角 網(wǎng)格,圖3B是對(duì)圖3A所示的輸入三角網(wǎng)格進(jìn)行細(xì)分之后得到的網(wǎng)格。
[0033] 然后,對(duì)于細(xì)分網(wǎng)格S上的每一個(gè)點(diǎn)Pi,定義該點(diǎn)處采樣球的球心為Pi,半徑為 ri =kp (Pi),其中k是一個(gè)常數(shù),P (X)為定義在該細(xì)分網(wǎng)格上的密度函數(shù)。當(dāng)P (X)是常 數(shù)時(shí),得到的采樣為均勻采樣,當(dāng)P (X)是一個(gè)變化的量時(shí)(如在本發(fā)明一實(shí)施例中,采用 每個(gè)點(diǎn)處的曲率作為密度函數(shù)),得到的采樣稱為非均勻采樣。
[0034] 步驟S2、利用局部沖突檢測(cè)方法,在細(xì)分網(wǎng)格S上進(jìn)行初始泊松采樣;
[0035] 該步驟使用投鏢法在細(xì)分網(wǎng)格S上進(jìn)行初始采樣,具體地,所述步驟S2進(jìn)一步包 括以下步驟:
[0036] 步驟S21,在細(xì)分網(wǎng)格S上隨機(jī)產(chǎn)生一個(gè)采樣點(diǎn)p ;
[0037] 所述步驟S21具體為:首先,在細(xì)分網(wǎng)格S上隨機(jī)選擇一個(gè)三角形&,使得選擇該 三角形h的概率與該三角形的加權(quán)面積(p(cti)|til,其中,Cq是三角形&的重心點(diǎn),Iti 是三角形的面積)成正比;
[0038] 然后,在選擇的三角形內(nèi)部隨機(jī)產(chǎn)生一個(gè)采樣點(diǎn)p。
[0039] 步驟S22,利用局部沖突檢測(cè)方法檢測(cè)該采樣點(diǎn)p是否被接受;
[0040] 該步驟中,如果采樣點(diǎn)P對(duì)應(yīng)的采樣球不包含其他任何采樣點(diǎn),同時(shí)采樣點(diǎn)P不被 其他任何采樣點(diǎn)對(duì)應(yīng)的采樣球包含,那么采樣點(diǎn)P就被接受并將其加入到采樣點(diǎn)集中;否 則采樣點(diǎn)P被拒絕,此次采樣失敗;
[0041] 步驟S23,重復(fù)進(jìn)行步驟S21-S22的采樣過程,直到連續(xù)采樣失敗的次數(shù)大于某一 閾值λ :或者總的米樣次數(shù)大于另一閾值λ 2,在本發(fā)明一實(shí)施例中,λ i = 300,λ 2 = 3m, 其中,m為細(xì)分網(wǎng)格S中細(xì)分三角形的數(shù)目。此時(shí)初始采樣的結(jié)果為非最大化的泊松圓盤 采樣。
[0042] 其中,所述局部沖突檢測(cè)方法的具體過程為:首先,檢查采樣點(diǎn)p所在的三角形t 是否已被其他采樣點(diǎn)完全覆蓋,若是,則說明檢測(cè)到?jīng)_突,該采樣點(diǎn)被拒絕,否則將三角形 ti放入到一個(gè)優(yōu)先隊(duì)列中;然后從優(yōu)先隊(duì)列中彈出首元素三角形ti,按照上文所描述的沖 突檢測(cè)方法檢查所有與三角形ti相交的采樣球是否與采樣點(diǎn)P沖突,如果沒有沖突,則檢 查三角形ti的相鄰三角形tj是否與采樣點(diǎn)P對(duì)應(yīng)的采樣球相交,若相交則將三角形tj加 入到優(yōu)先隊(duì)列中;這個(gè)過程不斷進(jìn)行下去直到優(yōu)先隊(duì)列為空。
[0043] 步驟S3、對(duì)于細(xì)分網(wǎng)格S進(jìn)行迭代檢測(cè)并填充其中的空隙區(qū)域,得到最大化的泊 松圓盤采樣點(diǎn)集;
[0044] 初始采樣之后,該步驟迭代地檢測(cè)并填充細(xì)分網(wǎng)格S上的空隙區(qū)域,得到最大化 的泊松圓盤采樣點(diǎn)集。在每一次迭代中,首先檢測(cè)當(dāng)前細(xì)分網(wǎng)格中所有未被采樣球完全覆 蓋的三角形,并將它們加入到一個(gè)數(shù)組中;然后遍歷數(shù)組中的每個(gè)三角形,將該三角形細(xì)分 為多個(gè),比如4個(gè)更小的三角形,并檢測(cè)這些更小的三角形是否被已有的采樣球完全覆蓋; 最后按照步驟S2的方式,在未被完全覆蓋的更小三角形內(nèi)進(jìn)行泊松采樣。在最壞的情況 下,可能會(huì)出現(xiàn)一種情況,使得在對(duì)某一空隙區(qū)域里的任意一點(diǎn)進(jìn)行采樣時(shí),雖然該點(diǎn)不被 其他已有采樣點(diǎn)對(duì)應(yīng)的采樣球覆蓋,但是該點(diǎn)處的采樣球總會(huì)覆蓋其他已有的采樣點(diǎn)這種 情況會(huì)造成無法對(duì)該空隙區(qū)域進(jìn)行采樣,從而不能得到最大化的采樣結(jié)果。為了解決這個(gè) 問題,本發(fā)明重新計(jì)算該采樣點(diǎn)的半徑,將其半徑設(shè)置為該點(diǎn)與最近的采樣點(diǎn)的距離,從而 可以在該點(diǎn)進(jìn)行采樣。當(dāng)所有的三角形都被完全覆蓋時(shí),迭代終止,此時(shí)可以得到最大化的 泊松采樣點(diǎn)集。圖4A是根據(jù)本發(fā)明一實(shí)施例得到的最大化泊松圓盤采樣的結(jié)果。
[0045] 步驟S4、利用最大化的泊松圓盤采樣點(diǎn)集,對(duì)于細(xì)分網(wǎng)格S中的三角形進(jìn)行離散 聚類,提取得到新的三角網(wǎng)格;
[0046] 該步驟的目的是利用已經(jīng)得到的最大化的泊松圓盤采樣點(diǎn)集,對(duì)于細(xì)分網(wǎng)格S進(jìn) 行重新網(wǎng)格化,從而得到具有藍(lán)噪聲性質(zhì)的三角網(wǎng)格。該步驟進(jìn)一步包括以下步驟:
[0047] 步驟S41、根據(jù)最大化泊松圓盤采樣點(diǎn)集,對(duì)于細(xì)分網(wǎng)格S中的三角形進(jìn)行離散聚 類;
[0048] 該步驟中,首先,遍歷細(xì)分網(wǎng)格S中的每個(gè)三角形如果該三角形包含所述最大 化泊松圓盤采樣點(diǎn)集中的某一采樣點(diǎn)Pj,則建立一個(gè)三元組(ti,Pj,Cl ij),其中,Clij是三角形 心的中心點(diǎn)與采樣點(diǎn)]^之間的歐式距離;
[0049] 然后,將得到的每個(gè)三元組加入到一個(gè)優(yōu)先隊(duì)列Q中,并將Clij作為相應(yīng)三元組的 優(yōu)先級(jí),扎越小的三元組其優(yōu)先級(jí)越高;
[0050] 然后,每次從優(yōu)先隊(duì)列Q中彈出優(yōu)先級(jí)最高的三元組(tp Pj,(Iij),檢查三角形心 是否已分配給所述最大化泊松圓盤采樣點(diǎn)集中的某個(gè)采樣點(diǎn),如果是則丟棄該三元組并彈 出下一個(gè)三元組;如果沒有,則將三角形t分配給該采樣點(diǎn);然后檢查該三角形的所有相 鄰三角形t k,并建立新的三元組(tk,Pj, dkj)加入到優(yōu)先隊(duì)列Q中;重復(fù)執(zhí)行本步驟直到優(yōu) 先隊(duì)列Q為空;
[0051] 最后,將得到的細(xì)分網(wǎng)格S的三角形分為多個(gè)不同的patch(面片),使每個(gè)面片對(duì) 應(yīng)一個(gè)采樣點(diǎn),且每個(gè)面片都是單連通的。
[0052] 步驟S42、從離散聚類結(jié)果中提取得到新的三角網(wǎng)格;
[0053] 遍歷細(xì)分網(wǎng)格S的每一個(gè)頂點(diǎn),按逆時(shí)針的順序檢查圍繞該頂點(diǎn)一圈的三角形, 并對(duì)這些三角形所屬的面片進(jìn)行計(jì)數(shù),如果不同面片的數(shù)目大于等于3,則可以利用對(duì)應(yīng)的 采樣點(diǎn)建立一個(gè)三角形扇。處理完所有的頂點(diǎn)后,所有得到的三角形就組成了一個(gè)重新網(wǎng) 格化的三角網(wǎng)格。由于前面聚類的結(jié)果,已使得每個(gè)面片都是單連通且任何兩個(gè)面片不重 疊,因此重新網(wǎng)格化的結(jié)果中,任意兩個(gè)三角形都是不交叉的。
[0054] 步驟S43、采用Edge flipping(邊翻轉(zhuǎn))方法將提取得到的新的三角網(wǎng)格轉(zhuǎn)變?yōu)?Delaunay三角網(wǎng)格(均勻采樣情況)或者正則三角網(wǎng)格(非均勻采樣的情況)。
[0055] 上述步驟中重新網(wǎng)格化的結(jié)果不一定是Delaunay三角網(wǎng)格(均勻采樣情況)或 者正則三角網(wǎng)格(非均勻采樣的情況),在本步驟中,首先遍歷重新網(wǎng)格化結(jié)果中的每條 邊,如果與該邊相鄰的兩個(gè)三角形,不滿足空?qǐng)A性質(zhì)(均勻采樣情況)或者正則性質(zhì)(非均 勻采樣情況),則將該邊翻轉(zhuǎn)。當(dāng)處理完所有的邊時(shí),就可以得到一個(gè)純粹的Delaunay三角 網(wǎng)格或者正則三角網(wǎng)格。
[0056] 步驟S5、對(duì)于得到的新的三角網(wǎng)格進(jìn)行優(yōu)化,使得優(yōu)化網(wǎng)格中每個(gè)三角形的角度 和每個(gè)頂點(diǎn)的度數(shù)均滿足用戶指定的要求。
[0057] 曲面的重新網(wǎng)格化往往希望獲得高質(zhì)量的三角網(wǎng)格模型。本發(fā)明提出了一種網(wǎng) 格優(yōu)化的方法,使得輸出網(wǎng)格中每個(gè)三角形的角度和每個(gè)頂點(diǎn)的度數(shù)均滿足用戶指定的要 求。在三角形角度優(yōu)化中,首先由用戶指定角度的上限和下限,然后將不滿足角度要求的三 角形對(duì)應(yīng)的頂點(diǎn)刪掉,然后重新檢測(cè)和填充細(xì)分網(wǎng)格上的空隙區(qū)域。在頂點(diǎn)度數(shù)優(yōu)化中, 首先將度數(shù)小于5或者大于7的頂點(diǎn)刪掉,然后重新檢測(cè)和填充空隙區(qū)域。這兩個(gè)優(yōu)化步 驟交替重復(fù)進(jìn)行,直到所有的角度都滿足要求并且每個(gè)頂點(diǎn)的度數(shù)為5、6或7。圖4B是根 據(jù)本發(fā)明一實(shí)施例得到的重新網(wǎng)格化的結(jié)果,其中黑色的三角形為角度不滿足要求的三角 形,黑色的頂點(diǎn)是度數(shù)不滿足要求的點(diǎn),圖4C是優(yōu)化后的三角網(wǎng)格。
[0058] 綜上,本發(fā)明提出一種基于最大化泊松圓盤采樣的重新網(wǎng)格化方法,該方法得到 的采樣點(diǎn)集具有很好的藍(lán)噪聲性質(zhì),并利用采樣點(diǎn)集提取得到高質(zhì)量的三角網(wǎng)格。圖5A和 圖5B分別是本發(fā)明方法與Yan2013的方法在運(yùn)行時(shí)間和內(nèi)存使用情況的對(duì)比圖,從對(duì)比圖 中可以看出,針對(duì)均勻采樣和非均勻采樣的情況,本發(fā)明方法比Yan2013的方法在時(shí)間效 率上提高4到5倍,在內(nèi)存使用上本發(fā)明方法比Yan2013的方法節(jié)約5到7倍,原因在于 Yan2013的方法需要構(gòu)建一個(gè)3D的全局均勻網(wǎng)格來輔助采樣,這種結(jié)構(gòu)雖然簡(jiǎn)單,但是需 要存儲(chǔ)很多額外的信息做沖突檢測(cè),而且每次做沖突檢測(cè)時(shí),該方法都要遍歷 rViin/ V 3 個(gè)鄰域格子,其中,是當(dāng)前測(cè)試點(diǎn)的采樣半徑。同時(shí),Yan2013也需要不斷構(gòu)建3維正則 三角化和Power圖來檢測(cè)空隙區(qū)域,這不僅進(jìn)一步降低了采樣速度,也增加了額外的內(nèi)存 開銷。而本發(fā)明方法只需要保持細(xì)分的網(wǎng)格,采用局部的方式做沖突檢測(cè),采樣速度快而且 節(jié)約內(nèi)存。
[0059] 圖6和圖7分別是本發(fā)明方法與Yan2013的方法在模型相近區(qū)域和自相交的區(qū)域 重新網(wǎng)格化的結(jié)果對(duì)比圖。圖6A是利用Yan2013的方法在模型相近區(qū)域重新網(wǎng)格化的結(jié) 果示意圖,圖6B是利用本發(fā)明方法在模型相近區(qū)域重新網(wǎng)格化的結(jié)果示意圖,從圖6A和圖 6B中可以看出,在幾何相近的區(qū)域,Yan2013的方法容易產(chǎn)生拓?fù)溴e(cuò)誤,不該連接的地方會(huì) 出現(xiàn)錯(cuò)誤(如黑色加粗邊所示),而本發(fā)明方法由于采用一種局部離散聚類的方式,生成的 網(wǎng)格總是正確的。圖7A是利用Yan2013的方法在自相交的區(qū)域重新網(wǎng)格化的結(jié)果示意圖, 圖7B是利用本發(fā)明方法在自相交的區(qū)域重新網(wǎng)格化的結(jié)果示意圖,從圖7A和圖7B中可以 看出,Yan2013的方法在模型自相交的區(qū)域也會(huì)產(chǎn)生拓?fù)溴e(cuò)誤(如黑色加粗邊所示),相比 之下,本發(fā)明的方法可以得到正確的結(jié)果。
[0060] 本發(fā)明的方法的特色和創(chuàng)新在于,對(duì)原始的輸入網(wǎng)格進(jìn)行細(xì)分,并利用細(xì)分的網(wǎng) 格進(jìn)行快速的最大化泊松圓盤采樣,而且大大減小了對(duì)內(nèi)存的需求;最后利用采樣點(diǎn)提取 生成藍(lán)噪聲網(wǎng)格,并通過一種優(yōu)化的手段使得網(wǎng)格的質(zhì)量滿足用戶的需求。本發(fā)明方法,可 以用于物理模擬、數(shù)字媒體處理及科學(xué)可視化等應(yīng)用領(lǐng)域,具有較高的實(shí)際應(yīng)用價(jià)值。
[0061] 以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳 細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡 在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保 護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種基于最大化泊松圓盤采樣的重新網(wǎng)格化方法,其特征在于,該方法包括以下步 驟: 步驟S1、對(duì)輸入的三角網(wǎng)格進(jìn)行細(xì)分處理,得到細(xì)分網(wǎng)格S; 步驟S2、利用局部沖突檢測(cè)方法在細(xì)分網(wǎng)格S上進(jìn)行初始泊松采樣; 步驟S3、對(duì)于細(xì)分網(wǎng)格S進(jìn)行迭代檢測(cè)并填充其中的空隙區(qū)域,得到最大化的泊松圓 盤采樣點(diǎn)集; 步驟S4、利用最大化的泊松采樣點(diǎn)集,對(duì)于細(xì)分網(wǎng)格S中的三角形進(jìn)行離散聚類,提取 得到新的三角網(wǎng)格; 步驟S5、對(duì)于得到的新的三角網(wǎng)格進(jìn)行角度和頂點(diǎn)度數(shù)優(yōu)化。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟Sl中,首先指定最小采樣半徑 rmin,然后對(duì)輸入的三角網(wǎng)格進(jìn)行不斷的細(xì)分,使得細(xì)分后的網(wǎng)格中每條邊的長(zhǎng)度不大于最 小采樣半徑,得到細(xì)分網(wǎng)格S;然后對(duì)于細(xì)分網(wǎng)格S上的每一個(gè)點(diǎn)Pi,定義該點(diǎn)處采樣球的 球心為Pi,半徑為A = kp (Pi),其中,k是一個(gè)常數(shù),P (X)為定義在該細(xì)分網(wǎng)格上的密度 函數(shù)。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S2進(jìn)一步包括以下步驟: 步驟S21,在細(xì)分網(wǎng)格S上隨機(jī)產(chǎn)生一個(gè)采樣點(diǎn)p; 步驟S22,利用局部沖突檢測(cè)方法檢測(cè)該采樣點(diǎn)p是否被接受; 步驟S23,重復(fù)進(jìn)行步驟S21-S22的采樣過程,直到連續(xù)采樣失敗的次數(shù)大于某一閾值X1或者總的采樣次數(shù)大于另一閾值λ2。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟S21包括: 首先,在細(xì)分網(wǎng)格S上隨機(jī)選擇一個(gè)三角形&,使得選擇該三角形&的概率與該三角 形心的加權(quán)面積成正比,其中,三角形&的加權(quán)面積表示為:P(Cti)ItiNCti是三角形ti的 重心點(diǎn),P(X)為定義在該細(xì)分網(wǎng)格上的密度函數(shù),ItiI是三角形的面積; 然后,在選擇的三角形內(nèi)部隨機(jī)產(chǎn)生一個(gè)采樣點(diǎn)P。
5. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟S22中,如果采樣點(diǎn)p對(duì)應(yīng)的采 樣球不包含其他任何采樣點(diǎn),同時(shí)采樣點(diǎn)P不被其他任何采樣點(diǎn)對(duì)應(yīng)的采樣球包含,那么 采樣點(diǎn)P就被接受并將其加入到采樣點(diǎn)集中;否則采樣點(diǎn)P被拒絕。
6. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述局部沖突檢測(cè)方法包括: 首先,檢查采樣點(diǎn)P所在的三角形是否已被其他采樣點(diǎn)完全覆蓋,若是,則說明檢測(cè)到 沖突,該采樣點(diǎn)被拒絕,否則將該三角形放入到一個(gè)優(yōu)先隊(duì)列中; 然后,從優(yōu)先隊(duì)列中彈出首元素三角形,檢查所有與該三角形相交的采樣球是否與采 樣點(diǎn)P沖突,如果沒有沖突,則檢查該三角形的相鄰三角形是否與采樣點(diǎn)P對(duì)應(yīng)的采樣球相 交,若相交則將相鄰三角形加入到優(yōu)先隊(duì)列中,重復(fù)進(jìn)行判斷直到優(yōu)先隊(duì)列為空。
7. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟S3的每一次迭代中,首先檢測(cè) 當(dāng)前細(xì)分網(wǎng)格中所有未被采樣球完全覆蓋的三角形,并將它們加入到一個(gè)數(shù)組中;然后遍 歷數(shù)組中的每個(gè)三角形,將該三角形細(xì)分為多個(gè)更小的三角形,并檢測(cè)這些更小的三角形 是否被已有的采樣球完全覆蓋;最后按照所述步驟S2的方式,在未被完全覆蓋的更小三角 形內(nèi)進(jìn)行采樣;迭代進(jìn)行檢測(cè)直至所有的三角形都被完全覆蓋,得到最大化的泊松采樣點(diǎn) 集。
8. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S4進(jìn)一步包括以下步驟: 步驟S41、根據(jù)最大化泊松圓盤采樣點(diǎn)集,對(duì)于細(xì)分網(wǎng)格S中的三角形進(jìn)行離散聚類; 步驟S42、從離散聚類結(jié)果中提取得到新的三角網(wǎng)格; 步驟S43、采用邊翻轉(zhuǎn)方法將提取得到的新的三角網(wǎng)格轉(zhuǎn)變?yōu)榫鶆虿蓸尤蔷W(wǎng)格或非 均勻采樣三角網(wǎng)格。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述步驟S41包括: 首先,遍歷細(xì)分網(wǎng)格S中的每個(gè)三角形&,如果該三角形包含所述最大化泊松圓盤采樣 點(diǎn)集中的某個(gè)采樣點(diǎn)Ρ」,則建立一個(gè)三元組(tpP」,(Iij),其中,Clij是三角形&的中心點(diǎn)與 采樣點(diǎn)h之間的歐式距離; 然后,將得到的每個(gè)三元組加入到一個(gè)優(yōu)先隊(duì)列Q中,并將Clij作為相應(yīng)三元組的優(yōu)先 級(jí),Clij越小的三元組其優(yōu)先級(jí)越高; 然后,每次從優(yōu)先隊(duì)列Q中彈出優(yōu)先級(jí)最高的三元組(tpPj, (Iij),檢查三角形&是否 已分配給所述最大化泊松圓盤采樣點(diǎn)集中的某個(gè)采樣點(diǎn),如果是則丟棄該三元組并彈出下 一個(gè)三元組;如果沒有,則將三角形t分配給該采樣點(diǎn);然后檢查該三角形的所有相鄰三 角形tk,并建立新的三元組(tk,Pj,dkj)加入到優(yōu)先隊(duì)列Q中;重復(fù)執(zhí)行本步驟直到優(yōu)先隊(duì) 列Q為空; 最后,將得到的細(xì)分網(wǎng)格S的三角形分為多個(gè)不同的面片,使每個(gè)面片對(duì)應(yīng)一個(gè)采樣 點(diǎn),且每個(gè)面片都是單連通的。
10. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S5中,對(duì)于三角形角度優(yōu)化,首 先指定角度的上限和下限,然后將不滿足角度要求的三角形對(duì)應(yīng)的頂點(diǎn)刪掉,然后重新檢 測(cè)和填充細(xì)分網(wǎng)格上的空隙區(qū)域;對(duì)于頂點(diǎn)度數(shù)優(yōu)化,首先將度數(shù)小于5或者大于7的頂點(diǎn) 刪掉,然后重新檢測(cè)和填充空隙區(qū)域;所述三角形角度優(yōu)化和頂點(diǎn)度數(shù)優(yōu)化交替重復(fù)進(jìn)行, 直到所有的角度都滿足要求并且每個(gè)頂點(diǎn)的度數(shù)為5、6或7。
【文檔編號(hào)】G06T17/30GK104240299SQ201410437581
【公開日】2014年12月24日 申請(qǐng)日期:2014年8月29日 優(yōu)先權(quán)日:2014年8月29日
【發(fā)明者】嚴(yán)冬明, 郭建偉, 張曉鵬 申請(qǐng)人:中國(guó)科學(xué)院自動(dòng)化研究所