一種快速aiap形狀插值算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)圖形學(xué)和三維動(dòng)畫制作領(lǐng)域,尤其是指一種快速AIAP形狀插 值算法。
【背景技術(shù)】
[0002] 幾何形狀插值是靜態(tài)幾何處理非常重要的一環(huán),是快速獲得幾何序列的常用手 段,也為形狀操縱的另一操作形狀移植提供依據(jù)。在計(jì)算機(jī)動(dòng)畫設(shè)計(jì)中,利用關(guān)鍵幀生成動(dòng) 畫序列既能減少設(shè)計(jì)時(shí)間,也可降低經(jīng)濟(jì)成本。在幾何數(shù)據(jù)壓縮中,通過關(guān)鍵幀壓縮幾何序 列也是較為常用的手段。
[0003] 在目前比較流行的幾何形狀表示方式中,三角形網(wǎng)格由于其表達(dá)和數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn) 單性而得到廣泛的應(yīng)用。復(fù)雜的形狀可通過三角形面片的集合來逼近,三角形頂點(diǎn)集可認(rèn) 為是源形狀的一個(gè)采樣。因此,對(duì)形狀的處理在某種意義下可轉(zhuǎn)化成對(duì)三角形面片集合的 處理。很多研究機(jī)構(gòu)為了得到更加真實(shí)、符合物理或視覺經(jīng)驗(yàn)的序列,對(duì)此做出了大量的研 究,從早期的二維折線段插值到目前的三維網(wǎng)格插值,該項(xiàng)技術(shù)日趨成熟。盡管如此,現(xiàn)有 的關(guān)于運(yùn)動(dòng)路徑的解決方案,依然存在相當(dāng)?shù)母倪M(jìn)空間,例如如何提高插值速度,如何生成 合理的大尺度變形路徑,如何抗錯(cuò)切等。這些問題在本發(fā)明中得到進(jìn)一步的解決。
[0004] 具體來說,本發(fā)明將從給定的兩個(gè)基于三角形網(wǎng)格的幾何形狀關(guān)鍵幀中,通過 內(nèi)部插值得到符合物理或視覺經(jīng)驗(yàn)的過渡序列并以此為基礎(chǔ),對(duì)序列進(jìn)行變形、運(yùn)動(dòng)移 植和形狀序列編輯的幾何處理框架。兩個(gè)給定的關(guān)鍵幀具有相同的三角形剖分,每個(gè)頂 點(diǎn)已對(duì)應(yīng)好。在此假設(shè)下,基于物體在變形過程中三角形邊長(zhǎng)在線性變化意義下保持 (as-isometric-as-possible,AIAP)的觀察,模擬形狀過渡的整個(gè)過程,未經(jīng)AIAP處理的 頂點(diǎn)坐標(biāo)線性插值導(dǎo)致人模型的左臂在變形過程中產(chǎn)生明顯的長(zhǎng)度變化,而經(jīng)過AIAP處 理后,左臂的長(zhǎng)度則符合視覺經(jīng)驗(yàn)。形狀插值一般須要解決兩個(gè)問題,即(網(wǎng)格)形狀之間 的點(diǎn)對(duì)應(yīng)以及運(yùn)動(dòng)路徑問題。本發(fā)明假設(shè)前者已完成,著重于后者。
[0005]Li等[G.Li,L.Yang,S.Wu,W.Tan,X.Chen,andC.Xian,"Planarshape interpolationusingrelativevelocityfields,',Computers&Graphics,vol. 37,no. 5, p. 364C375, 2013.]提出二維AIAP插值算法,且構(gòu)建了二維形狀序列操縱的框架。該框架 中插值算法,可認(rèn)為是本發(fā)明在二維上的一個(gè)特殊情況;形狀序列編輯的算法,利用了相對(duì) 速度場(chǎng)來表達(dá)運(yùn)動(dòng)信息的變化,繼而將相對(duì)速度場(chǎng)移植至新的目標(biāo)(編輯對(duì)象中,以實(shí)現(xiàn) 運(yùn)動(dòng)移植。雖然Li等人的工作能夠成功處理二維的大變形情況,但無法直接推廣到三維 情況。Kircher等[S.KircherandM.Garland, "Free-formmotionprocessing,''ACM TransactionsonGraphics(TOG),vol. 27,no. 2,p. 12, 2008.]利用連接映射(connection map)編碼三角形對(duì)之間的局部位置關(guān)系,通過極分解提取旋轉(zhuǎn)分量,并對(duì)其進(jìn)行非線性插 值。該文獻(xiàn)針對(duì)不同參考系,將插值分為絕對(duì)插值和相對(duì)插值兩類,前者對(duì)小尺度變形具有 良好的插值效果,后者則能處理大尺度變形。雖然形式化描述簡(jiǎn)潔,但相對(duì)插值算法極有 可能導(dǎo)致不同程度錯(cuò)切,并且跟插值種子點(diǎn)的選取有較大關(guān)系。Kilian等[M.Kilian,N. J.Mitra,andH.Pottmann,"Geometricmodelinginshapespace,''inACMTransactions onGraphics,vol. 26,no. 3, 2007,p. 64.]計(jì)算高維形狀空間里面點(diǎn)之間的測(cè)地線距離來確 定插值形狀的運(yùn)動(dòng)路徑。具體地,每個(gè)形狀都可以將所有的頂點(diǎn)坐標(biāo)以任意的順序排列成 一個(gè)高維列向量,而每個(gè)這樣的列向量可以看作是高維空間上的一個(gè)點(diǎn)。接著,在這個(gè)空間 上定義一種內(nèi)積等距的黎曼度量,使之成為黎曼空間。于是,兩個(gè)三維形狀之間的插值便 可轉(zhuǎn)化為尋找黎曼空間上兩個(gè)點(diǎn)之間的測(cè)地線。該算法由于形式化比較復(fù)雜,且全局地考 慮插值序列中所有幀的所有未知量,所以隨著網(wǎng)格規(guī)模的增大,計(jì)算量和內(nèi)存消耗也非線 性地增大,直接導(dǎo)致大模型不能直接插值,需要采用多分辨率表示,這無疑增加額外的計(jì)算 量。另外,因?yàn)椴捎庙旤c(diǎn)位置的線性插值來初始化,所以不能處理首尾關(guān)鍵幀之間存在大變 形的情況。雖然該方法在一定程度上能解決大變形問題,但須通過手工指定全局旋轉(zhuǎn)的區(qū) 域才能改善固有的形狀全局錯(cuò)切缺陷,而且,隨著模型復(fù)雜度增加,該全局錯(cuò)切出現(xiàn)的可能 性也隨之增大。
[0006] Lipman等[Y.Lipman, 0.Sorkine,D.Levin,andD.Cohen-0r,"Linear rotation-invariantcoordinatesformeshes,''ACMTransactionsonGraphics,vol. 2 4,no. 3,pp. 479 - 487, 2005.]提出線性旋轉(zhuǎn)不變坐標(biāo),即通過建立基于頂點(diǎn)的局部坐標(biāo)系, 以第一和第二離散型的方式編碼該頂點(diǎn)一鄰域的邊向量,最后通過線性方程組重建模型。 該方法不能夠?qū)Ω端械拇笞冃螁栴}(例如相鄰三角形夾角,即二面角變化超過180度)。 Winkler等[T.Winkler,J.Drieseberg,M.Alexa,andK.Hormann, "Multi-scalegeometry interpolation,',inComputerGraphicsForum,vol. 29,no. 2, 2010,pp. 309 - 318.]提出 基于邊的多尺度插值,將模型分為多層結(jié)構(gòu),自底向上分別對(duì)邊長(zhǎng)和二面角進(jìn)行線性插值。 該方法可解決大變形問題,且其效率是目前除本發(fā)明外最高效的算法。但是,該方法的成 功需要較好的分層策略,而該策略的執(zhí)行與模型形狀密切相關(guān)。Fr等[S.Fr__ohlichand M.Botsch, "Example-drivendeformationsbasedondiscreteshells,''Comput.Graph. Forum,vol. 30,no. 8,pp. 2246 - 2257, 2011.]的插值量與Winkler等相仿,并考慮了體積, 但沒有使用分層策略,將插值問題形式化成為一個(gè)非線性問題。由于該算法缺乏較好的初 始化方法,也未能很理想地處理大變形問題。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供了一種快速AIAP形狀插值 算法,從給定的兩個(gè)基于三角形網(wǎng)格的幾何形狀關(guān)鍵幀中,通過內(nèi)部插值得到符合物理或 視覺經(jīng)驗(yàn)的過渡序列。
[0008] 為實(shí)現(xiàn)上述目的,本發(fā)明所提供的技術(shù)方案為:一種快速AIAP形狀插值算法,包 括以下步驟:
[0009] 1)找出奇異邊
[0010] 給定的兩個(gè)基于三角形網(wǎng)格的幾何形狀關(guān)鍵幀,1。和Mi,假定兩者具有相同的剖 分,基于最優(yōu)化的標(biāo)架重建找出所有的奇異邊;
[0011] 2)網(wǎng)格分割
[0012] 對(duì)步驟1)中的三角形網(wǎng)格M。進(jìn)行分割,將Μ。分割為包含普通塊和奇異塊兩類的 子網(wǎng)格;
[0013] 3)設(shè)置傳播源,傳播局部標(biāo)價(jià)
[0014] 在步驟2)中的任意一個(gè)普通塊上放置傳播源,以廣度優(yōu)先的方式,利用對(duì)旋轉(zhuǎn)角 插值后的連接映射,傳播邊局部標(biāo)架;
[0015] 4)初始化序列輸出
[0016] 將每個(gè)局部標(biāo)架的X軸取出,并以特定的網(wǎng)格重構(gòu)方法插值邊長(zhǎng)度,最后進(jìn)行邊 拼接,輸出初始化形狀序列;
[0017] 5)解耦初始形狀序列
[0018] 對(duì)步驟4)中的初始形狀序列進(jìn)行解耦,并對(duì)稱地考慮能量的形式化,計(jì)算每條邊 滿足AIAP約束的相對(duì)運(yùn)動(dòng)場(chǎng);
[0019] 6)塊坐標(biāo)迭代下降
[0020] 對(duì)步驟5)中的計(jì)算,采用了塊坐標(biāo)下降法,這是一個(gè)迭代的過程。迭代結(jié)束后,進(jìn) 行邊拼接,