一種平均二次誤差度量的邊收縮簡化方法
【專利摘要】本發(fā)明涉及計算機圖形學(xué)領(lǐng)域,公開了一種平均二次誤差度量的邊收縮簡化方法,包括平均二次誤差度量方法和基于平均二次誤差度量方法的邊收縮簡化方法,平均二次誤差度量方法包括收集模型中所有頂點和更新所有三角面的向量,邊收縮簡化方法包括選擇所有適當(dāng)?shù)捻旤c對,計算每個頂點對的收縮目標(biāo)頂點和誤差值,然后按照誤差值將頂點對進行升序排列且放入頂點對的列表,最后從頭遍歷列表并且移除頂點對,收縮頂點以及更新相關(guān)頂點對的誤差值。本發(fā)明提供一種平均二次誤差度量的邊收縮簡化方法,采用平均二次誤差度量的邊收縮簡化方法,利用GPU的并行計算能力來計算頂點的平均二次誤差矩陣,大大縮短了二次誤差度量中初始化階段所需時間。
【專利說明】一種平均二次誤差度量的邊收縮簡化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及接收機圖形學(xué)領(lǐng)域,尤其涉及一種平均二次誤差度量的邊收縮簡化方 法。
【背景技術(shù)】
[0002] 隨著三維掃描技術(shù)的發(fā)展,頂點數(shù)為數(shù)萬甚至數(shù)百萬的三維模型已經(jīng)較為普遍, 而這樣的模型數(shù)據(jù)給計算機系統(tǒng)的存儲、渲染和傳輸帶來了巨大壓力,特別是難以滿足實 時渲染的要求。模型的簡化處理是解決這些問題的一個關(guān)鍵技術(shù)。
[0003] Garland等人于1997年提出基于QEM(Quadric Error Metrics)邊收縮簡化算法 是迄今為止在綜合性能上表現(xiàn)非常好的模型簡化算法。QEM邊收縮簡化算法首先需要計算 每個頂點的二次誤差矩陣,接著選擇所有適當(dāng)?shù)捻旤c對,計算每個頂點對的收縮目標(biāo)頂點 和誤差值,然后按照誤差值將頂點對進行升序排列且放入頂點對的列表,最后從頭遍歷列 表并且移除頂點對,收縮頂點以及更新相關(guān)頂點對的誤差值。
[0004] 由于計算復(fù)雜度與三角形面數(shù)和頂點數(shù)成線性關(guān)系,QEM邊收縮簡化算法中初始 化時間至少占用了整個時間的五分之一,初始化階段費時的操作在于計算頂點的二次誤 差矩陣。Garland給出的試驗中當(dāng)模型數(shù)據(jù)擁有199, 114三角面時,初始化時間甚至需要 10. 6S。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明針對現(xiàn)有技術(shù)中存在QEM邊收縮簡化算法中初始化時間較長且初始化階 段費時的操作在于計算頂點的二次誤差矩陣的缺點,提供了一種可大大縮短二次誤差度量 中初始化階段所需時間的平均二次誤差度量的邊收縮簡化方法。
[0006] 為了解決上述技術(shù)問題,本發(fā)明通過下述技術(shù)方案得以解決:
[0007] -種平均二次誤差度量的邊收縮簡化方法,包括平均二次誤差度量方法和基于平 均二次誤差度量方法的邊收縮簡化方法,平均二次誤差度量方法包括:
[0008] 依據(jù)QEM算法,將頂點誤差Λ ( V)定義為頂點到與頂點相鄰的所有三角面的距離 平方之和,Λ ( V )按下列公式進行計算:
【權(quán)利要求】
1.一種平均二次誤差度量的邊收縮簡化方法,其特征在于:包括平均二次誤差度量方 法和基于平均二次誤差度量方法的邊收縮簡化方法,平均二次誤差度量方法包括: 依據(jù)QEM算法,將頂點誤差Λ(V)定義為頂點到與頂點相鄰的所有三角面的距離平 方之和,Λ(V)按下列公式進行計算:=。?> =Σ&Α)2其中:ρ代表 /JCplanes i rI ^ ax+by+cz+d=O的三角面,p=[abcd]T,且a2+b2+c2 = 1 ; 將頂點誤差Λ(v)的計算移到GPU端,由此將頂點誤差Λ(v)計算公式變換為下列 / 、 公式:Δ(ν> =Σ(!'>)(/,V)= 卜ν'Σ屺卜其中:ΚΡ為矩陣,且 ρψρ?αηρχ^ν) jk planer {%') ^pi plunrs(y) J ι_
% 若模型數(shù)據(jù)的頂點數(shù)為η,三角面數(shù)為m,在收集頂點時需要記錄與頂點相鄰的三角面 數(shù)的最大值為MaxNum,且MaxNum=max{Num(planes(V丨)),Num(planes(V2)),Num(planes (v3)),…,Num(planes(vn))},并定義Moxrf2 =maxpft-,2,..,rf,、十為了統(tǒng)一表達(dá) 頂點誤差,將所有頂點的相鄰三角面數(shù)都擴充為MaxNum,不足的三角面以[0 0 0 0]τ來表 達(dá); 若Maxd2彡1,由此將頂點誤差Λ(V)計算公式變換為下列公式:
/ \ I Vfax\um 且定義柄二其中Q,(V)為平均二 次誤差矩陣,由此可得Δ(V) = (MaxNum) (Maxd2) (V1Q' (V)V); 若Maxd2 <1,p' (V) =p(v),由此可得Δ(V) = (MaxNum) (V1Q' (v)v); 定義像素值為c(v),Q' (V) = [qOhqOhqOhqOW,其中qOhS行向量 ζ?( \-f-I 且O彡i彡3,c(v)按下列公式計算:= ^其中I=[III1]τ,將Q' (V)中 I 9 的行向量轉(zhuǎn)化為像素值并放入ColorBuffer中; 從ColorBufTer中獲取像素值并還原成平均二次誤差矩陣,按如下計算公式:Q' (V) =[2c(v)〇-I2c(v)j-I2c(v)2-I2c(v)3-Ι]τ; 定義平均二次誤差為Λ' (v),依據(jù)頂點誤差Λ(v)的計算公式可得到下列平均二 次誤差Λ' (V)的計算公式
邊收縮簡化方法包括選擇所有適當(dāng)?shù)捻旤c對,計算每個頂點對的收縮目標(biāo)頂點和誤差 值,然后按照誤差值將頂點對進行升序排列且放入頂點對的列表,最后從頭遍歷列表并且 移除頂點對,收縮頂點以及更新相關(guān)頂點對的誤差值。
2.根據(jù)權(quán)利要求1所述的一種平均二次誤差度量的邊收縮簡化方法,其特征在于:為 了使輸出結(jié)果能以像素值的方式輸出,必須保證V(V)中每個元素值滿足(V) (i,j)I彡1,其中
0^i,j^l,l^k^MaxNum; 當(dāng)Maxd2 > 1 時,
, bI<I,ICI<I,IdI<MaxdI< 1,由此可得卜,叫(?',/>| 劉S1貝1JIQ,(V) (i,j)I< 1 成立;當(dāng)Maxd2 <1 時,p'=p=[abcd]T,由于 |a| <l,|b| <l,|c| <1,d| < |Maxd| < 1,由此可得I[,的仏劉=|0如)|/^〇,乂_1則|〇,(乂)",」)|<1成立; 當(dāng)Maxd2彡1或Maxd2 < 1時均滿足IQ' (v) (i,j)I彡I,可在CPU端做平移縮放變化 將輸入?yún)?shù)以像素值來進行上傳,平移縮放變化通過下列公式實現(xiàn):/ 其中P" =[RGBΑ]τ。
【文檔編號】G06T17/00GK104463960SQ201410706544
【公開日】2015年3月25日 申請日期:2014年11月28日 優(yōu)先權(quán)日:2014年11月28日
【發(fā)明者】俞蔚 申請人:杭州科瀾信息技術(shù)有限公司