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