一種基于拉普拉斯坐標(biāo)的不同材料衣物仿真及優(yōu)化方法
【專(zhuān)利摘要】本發(fā)明涉及一種基于拉普拉斯坐標(biāo)的不同材料衣物仿真及優(yōu)化方法,對(duì)原始的三維笛卡爾坐標(biāo)系進(jìn)行轉(zhuǎn)換,建立在微分域坐標(biāo)系下的衣服坐標(biāo)。通過(guò)對(duì)微分域添加不同的約束控制,保證了旋轉(zhuǎn)不變性的同時(shí),模擬了不同材料的衣物在相同編輯操作下的衣物褶皺的模擬方法。其步驟是(1)選擇適合衣物仿真的拉普拉斯坐標(biāo)微分域解決方案。對(duì)選定的微分域方法進(jìn)行優(yōu)化,保持坐標(biāo)的旋轉(zhuǎn)的不變性,使其可以應(yīng)用于更大范圍的衣服變形操縱中。(2)考慮到不同的衣物在相同的操縱下對(duì)褶皺的表現(xiàn)形態(tài)不同,添加了針對(duì)性的形變約束,模擬不同材料衣服在相同的操作下的不同的褶皺產(chǎn)生形態(tài)。(3)針對(duì)衣服變形結(jié)果進(jìn)行優(yōu)化,包括求解速度的優(yōu)化和褶皺區(qū)域仿真效果的優(yōu)化。
【專(zhuān)利說(shuō)明】
一種基于拉普拉斯坐標(biāo)的不同材料衣物仿真及優(yōu)化方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及種基于拉普拉斯坐標(biāo)的不同材料衣物褶皺的仿真和優(yōu)化方法,屬于虛 擬衣物仿真技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 總結(jié)近些年衣物褶皺仿真的研究方法,主要可以分為以下四類(lèi):基于幾何特性計(jì) 算的方法、基于物理力和模型分析的方法、基于多分辨率網(wǎng)格的方法、基于機(jī)器學(xué)習(xí)數(shù)據(jù)驅(qū) 動(dòng)的方法。(1)基于幾何的方法。Hadap等人在幾何的仿真方法中添加了紋理合成方法,創(chuàng)新 性的模擬了衣服的褶皺。Culter等人在三維展開(kāi)模型根據(jù)一定規(guī)則尋找褶皺脊線(xiàn),通過(guò)標(biāo) 定、連接、平滑的方法生成光滑褶皺脊線(xiàn),再在褶皺脊線(xiàn)上調(diào)節(jié)褶皺寬度和高度等幾何參數(shù) 生成不同形狀的褶皺。(2)基于物理的方法?;谖锢淼姆椒ǖ姆抡嬷饕梢詺w結(jié)為兩類(lèi): 基于能量的物理仿真和基于力學(xué)模型的物理仿真?;谀芰康奈锢矸抡娣椒ㄊ紫葮?gòu)造織物 在不同場(chǎng)下的能量函數(shù),并加以特殊的約束條件,然后用罰函數(shù)法得到非約束性的誤差方 程。最后把誤差方程線(xiàn)性化并通過(guò)最小二乘法求解織物的最終狀態(tài)。Feynman提出了網(wǎng)格質(zhì) 點(diǎn)模型,對(duì)二維和三維空間織物進(jìn)行了一一映射,根據(jù)能量最小化原理仿真織物的懸垂效 果。Terzopoulos等人根據(jù)連續(xù)介質(zhì)模型得到能量方程,并利用差分法求解能量方程?;?力學(xué)的物理仿真法在彈性動(dòng)力學(xué)理論上繼續(xù)發(fā)展,首先利用微分方程建立質(zhì)點(diǎn)的運(yùn)動(dòng)軌 跡,然后通過(guò)數(shù)值法確定某段時(shí)間內(nèi)的運(yùn)動(dòng)軌跡,現(xiàn)在常用的物理模型主要是彈簧質(zhì)點(diǎn)模 型和有限元模型。(3)基于多分辨率網(wǎng)格的方法。Russell等人提出一種基于粗網(wǎng)格的動(dòng)態(tài) 實(shí)時(shí)仿真衣物這種算法。該方法采用圖像分割技術(shù)提取時(shí)間和空間的可靠表面運(yùn)動(dòng)模式, 檢測(cè)連續(xù)壓縮的,穩(wěn)定的和拉伸的褶皺部分,然后利用檢測(cè)到的運(yùn)動(dòng)模式計(jì)算每個(gè)三角形 自適應(yīng)的形狀和此基礎(chǔ)上的拉伸張量。該算法追蹤空間和時(shí)間一致性的褶皺路徑,采取一 種分為兩步對(duì)拉伸張量進(jìn)行評(píng)估過(guò)程方案,克服了由低分辨率網(wǎng)格表面產(chǎn)生不連續(xù)和噪點(diǎn) 現(xiàn)象的缺點(diǎn)。(4)基于數(shù)據(jù)驅(qū)動(dòng)的褶皺模擬方法。Xu等人根據(jù)預(yù)計(jì)算的衣服形狀給出一種高 分辨率網(wǎng)格下實(shí)時(shí)生成褶皺變形細(xì)節(jié)的解決方案。該方法引入人體骨骼,具體流程是:首 先,給出一個(gè)輸入骨骼模型,通過(guò)操縱骨骼變化獲取人體網(wǎng)格模型。然后把人體分為不同的 區(qū)域,每個(gè)區(qū)域的衣物褶皺效果從數(shù)據(jù)庫(kù)里進(jìn)行近似匹配,然后綁定到原模型。最后,通過(guò) 融合得到整體衣物褶皺效果,對(duì)處理中產(chǎn)生的問(wèn)題進(jìn)行修補(bǔ)得到目標(biāo)網(wǎng)格。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明要解決的技術(shù)問(wèn)題是:利用微分域方法進(jìn)行網(wǎng)格編輯操作,該編輯方法速 度快,效果好。但是,網(wǎng)格編輯操作應(yīng)用在柔體的衣物上會(huì)使仿真效果失真,為了繼承微分 域網(wǎng)格編輯的優(yōu)點(diǎn),克服現(xiàn)有技術(shù)的不足,針對(duì)虛擬衣物仿真這一具體應(yīng)用給出一種全新 的基于微分域不同衣物褶皺仿真方法。并針對(duì)放著后的褶皺區(qū)域進(jìn)行分析,和局部褶皺增 強(qiáng)。
[0004] 本發(fā)明采用的技術(shù)方案:一種基于拉普拉斯坐標(biāo)的不同材料衣物仿真及優(yōu)化方 法,通過(guò)以下步驟實(shí)現(xiàn):
[0005] (1)讀取衣物網(wǎng)格數(shù)據(jù),根據(jù)衣物網(wǎng)格數(shù)據(jù)為原始衣物網(wǎng)格的笛卡爾坐標(biāo)建立拉 普拉斯坐標(biāo)的微分坐標(biāo),在拉普拉斯坐標(biāo)的微分坐標(biāo)中針對(duì)衣物網(wǎng)格在旋轉(zhuǎn)情況下,通過(guò) 重建的失真的情形修復(fù)方法,得到編輯后的衣物網(wǎng)格,建立原始衣物網(wǎng)格與編輯后的衣物 網(wǎng)格的能量誤差方程,在旋轉(zhuǎn)操作下保持衣物網(wǎng)格的縮放和旋轉(zhuǎn)不變性;
[0006] (2)在步驟(1)建立的微分坐標(biāo)上,根據(jù)衣服的特性為壓縮,拉伸和彎曲添加不同 的約束能量方程,調(diào)節(jié)不同能量方程的系數(shù)模擬不同的褶皺效果,從而得到了不同材料衣 服的褶皺效果;
[0007] (3)在對(duì)步驟(1)得到的編輯后衣物網(wǎng)格上,進(jìn)行加速衣物網(wǎng)格求解和褶皺區(qū)域優(yōu) 化,提升編輯后衣物網(wǎng)格的求解速度;得到更加真實(shí)的褶皺編輯效果。
[0008] 所述步驟(1)的重建的失真的情形修復(fù)方法通過(guò)以下步驟實(shí)現(xiàn):
[0009] (11)根據(jù)編輯后的衣物網(wǎng)格,對(duì)每個(gè)頂點(diǎn)在最終編輯后的新網(wǎng)格上計(jì)算一個(gè)近似 變換,建立新的能量約束方程;
[0010] (12)根據(jù)步驟(11)中的近似變換,轉(zhuǎn)化為矩陣形式,得到旋轉(zhuǎn)和縮放的控制矩陣, 根據(jù)旋轉(zhuǎn)和縮放的控制矩陣,即可在一次重建過(guò)程中就能保持衣物網(wǎng)格的縮放和旋轉(zhuǎn)不變 性。
[0011] 所述步驟(2)具體實(shí)現(xiàn)如下:
[0012] (21)通過(guò)三角網(wǎng)格的頂點(diǎn)位置建立能量方程,控制衣服壓縮后的恢復(fù)特性;
[0013] (22)通過(guò)三角網(wǎng)格的邊長(zhǎng)建立能量方程,控制衣服在拉伸后的特性;
[0014] (23)通過(guò)三角網(wǎng)格的相鄰面的二面角建立能量方程,控制衣服彎曲的特性;
[0015] (24)給上述三個(gè)能量方程中的三個(gè)參數(shù)設(shè)置不同的權(quán)重,模擬不同材料衣物在相 同作用力下的不同衣物褶皺產(chǎn)生效果。
[0016] 所述步驟(3)具體實(shí)現(xiàn)如下:
[0017] (31)對(duì)原始衣物網(wǎng)格和編輯后的衣物網(wǎng)格進(jìn)行分析,分析衣物網(wǎng)格變形影響區(qū) 域,即衣物網(wǎng)格褶皺生成的區(qū)域;
[0018] (32)對(duì)步驟(31)所生成的區(qū)域進(jìn)行衣物網(wǎng)格細(xì)分;
[0019] (33)對(duì)細(xì)分后衣物網(wǎng)格的不平滑現(xiàn)象進(jìn)行網(wǎng)格平滑,達(dá)到增強(qiáng)衣物網(wǎng)格的褶皺效 果。
[0020] 本發(fā)明的原理為:
[0021] (1)給出了網(wǎng)格在不同微分域?qū)傩韵履芰繄?chǎng)的表示與重建方案。首先針對(duì)拉普拉 斯坐標(biāo)進(jìn)行研究,把原始網(wǎng)格的笛卡爾坐標(biāo)用拉普拉斯坐標(biāo)表示,編輯原始網(wǎng)格,建立原始 網(wǎng)格和編輯網(wǎng)格的能量誤差方程,利用最小二乘法對(duì)網(wǎng)格進(jìn)行重建。針對(duì)拉普拉斯坐標(biāo)在 平移、旋轉(zhuǎn)和縮放的操作進(jìn)行研究,發(fā)現(xiàn)拉普拉斯坐標(biāo)不具有旋轉(zhuǎn)和縮放不變性。因此,本 發(fā)明給出了保持拉普拉斯旋轉(zhuǎn)和縮放不變性的解決方案,并通過(guò)和原方法進(jìn)行對(duì)比實(shí)驗(yàn), 驗(yàn)證了改進(jìn)方法的通用性和真實(shí)性。
[0022] (2)為了更加真實(shí)的模擬不同材料衣服的褶皺效果,針對(duì)拉伸、彎曲、壓縮三種基 本受力情況建立了不同的能量約束方程。該約束方程包括了點(diǎn)的能量控制、邊的能量控制 和二面角的能量控制,通過(guò)調(diào)節(jié)三個(gè)能量約束方程的權(quán)重參數(shù),生成不同的褶皺模擬效果, 從而模擬了多種材料衣服在相同操作下的不同褶皺效果。
[0023] (3)給出了加速網(wǎng)格重建和褶皺區(qū)域優(yōu)化的方法。對(duì)于網(wǎng)格優(yōu)化,針對(duì)高分辨率輸 入網(wǎng)格,給出一種邊折疊的網(wǎng)格簡(jiǎn)化算法,降低網(wǎng)格分辨率的同時(shí)減少了自由點(diǎn)的個(gè)數(shù),從 而加快了網(wǎng)格重建速度。對(duì)于褶皺區(qū)域優(yōu)化,首先對(duì)原始網(wǎng)格和變形網(wǎng)格進(jìn)行形變分析,確 定形變影響的褶皺區(qū)域。然后針對(duì)該區(qū)域進(jìn)行局部網(wǎng)格細(xì)化,增加褶皺區(qū)域的細(xì)節(jié)。最后針 對(duì)由感興趣區(qū)域的選擇和編輯網(wǎng)格的重建導(dǎo)致的網(wǎng)格不平滑的區(qū)域,進(jìn)行局部的網(wǎng)格平滑 操作,從而得到更加精細(xì)逼真的褶皺效果。
[0024] 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0025] (1)本發(fā)明大大提高了衣物褶皺的仿真速度,根據(jù)柔性衣物的特點(diǎn)優(yōu)化了基于微 分域的網(wǎng)格表示方法。
[0026] (2)根據(jù)衣物材料的特性,添加了不同的能量方程,解決了在相同操作下衣服褶皺 模擬相同的難題。
[0027] (3)針對(duì)編輯后的網(wǎng)格進(jìn)行了優(yōu)化,提高了仿真的逼真效果。
【附圖說(shuō)明】
[0028]圖1為本發(fā)明的方法實(shí)現(xiàn)流程圖;
[0029] 圖2為基于邊和角的類(lèi)拉普拉斯能量函數(shù)示意圖;
[0030] 圖3為裙子網(wǎng)格正面和背面形變分析圖;
[0031] 圖4為裙子簡(jiǎn)化網(wǎng)格視圖;其中(a)Butterfly法的網(wǎng)格簡(jiǎn)化正面和背面,(b)為 Loop法的網(wǎng)格簡(jiǎn)化的正面和背面;
[0032] 圖5為基于點(diǎn)對(duì)收縮的網(wǎng)格簡(jiǎn)化圖;
[0033]圖6為三角網(wǎng)格形變張量圖解;
[0034]圖7為鄰域頂點(diǎn)對(duì)新生成點(diǎn)的權(quán)重值。
【具體實(shí)施方式】
[0035]如圖1所示,本發(fā)明具體實(shí)施如下:
[0036] -、基于拉普拉斯坐標(biāo)能量場(chǎng)的建立與優(yōu)化
[0037] 步驟一:微分坐標(biāo)又名拉普拉斯(Laplacian)坐標(biāo),是Alexa率先提出并應(yīng)用于網(wǎng) 格變形和網(wǎng)格編輯中,用來(lái)描述某頂點(diǎn)和其一階鄰域點(diǎn)之間的關(guān)系。
[0038] 假定初始的衣物網(wǎng)格為Μ,記M = (V,E,F(xiàn)),其中V為網(wǎng)格頂點(diǎn)的集合,E為網(wǎng)格邊的 集合,F(xiàn)為網(wǎng)格面的集合。其中頂點(diǎn)集合可以表示為V = [v.lVijf, ...._i4"]T,vi=[viX,viy,viZ]Te R 3。假設(shè)衣物網(wǎng)格所有頂點(diǎn)拓?fù)湎噙B,則稱(chēng)與頂點(diǎn)Vl直接相連的點(diǎn)組成的集合為頂點(diǎn)Vl的一 階鄰域,記為Ni= {j | (i,j) eE}。根據(jù)頂點(diǎn)vi和一階鄰域Ni,可以得到vi的微分坐標(biāo)5i:
[0039] δ? = = vt - TjeN^ijVj Π .1 >
[0040] 其中是與邊eij相關(guān)的邊的權(quán)重,一般情況下,相加和等于1。為了簡(jiǎn)化描 述,可以采用Unit權(quán)重方案:
.di= |N(i) |為Vi的度,即其鄰接頂點(diǎn)個(gè)數(shù)。
[0041 ]微分坐標(biāo)和笛卡爾坐標(biāo)的轉(zhuǎn)換關(guān)系可以記為:\ = φ β由此可知網(wǎng)格的原始 笛卡爾坐標(biāo)可以通過(guò)矩陣變換轉(zhuǎn)換為拉普拉斯坐標(biāo)。記Α為衣物網(wǎng)格的鄰接矩陣,表示頂點(diǎn) 之間的拓?fù)潢P(guān)系:
[0043] D為頂點(diǎn)度的對(duì)角矩陣:則可得到笛卡爾坐標(biāo)到拉普拉斯坐標(biāo)的轉(zhuǎn)換矩陣L= I-『 1。假設(shè)矩陣為L(zhǎng)=〇^),那么:
[0045] 因此,拉普拉斯坐標(biāo)和笛卡爾坐標(biāo)的矩陣變換可表達(dá)為:Δ =LV。為了保持局部幾 何細(xì)節(jié),應(yīng)保證變形后的拉普拉斯坐標(biāo)不變,則有:
[0046] Δ =LV7 (1.4)
[0047] 根據(jù)此方程便可求解變形后網(wǎng)格的笛卡爾坐標(biāo),但是矩陣的秩為n_k,n為衣物網(wǎng) 格頂點(diǎn)的數(shù)量,k為衣物網(wǎng)格的聯(lián)通量,一般情況下k等于1,小于方程變量的個(gè)數(shù)n,因此方 程是奇異的,可以得到無(wú)窮多個(gè)解。為了求得變形后網(wǎng)格精確解,需要至少固定變形衣物網(wǎng) 格中的一個(gè)點(diǎn)。記網(wǎng)格的固定點(diǎn)坐標(biāo)為m,則有:
[0048] v7 i = Ui, i e {m, ··· ,n} ,m<n (1.5)
[0049] 由此可以通過(guò)拉普拉斯坐標(biāo)網(wǎng)格和控制點(diǎn)的約束建立原始網(wǎng)格與編輯網(wǎng)格的能 量誤差方程:
[0051]上式可以利用最小二乘解的方法,求解自由點(diǎn)/1,1^{1,一,1!1-1},得到編輯后的 衣物網(wǎng)格。進(jìn)而重建衣物網(wǎng)格在確定固定點(diǎn)后的矩陣方程更新為:
[0053]其中ω為衣物網(wǎng)格上控制點(diǎn)對(duì)周?chē)W(wǎng)格變形影響程度的權(quán)重。為了方便矩陣求 解
[0054] Δ7 =L7 Ψ (1.8)
[0055] 觀察上式,1/矩陣是基于網(wǎng)格頂點(diǎn)的鄰接矩陣建立的,因此是個(gè)龐大的稀疏矩陣。 為了加快稀疏矩陣的求解。需要對(duì)矩陣正定化,然后進(jìn)行正定分解。因此,在上述等式兩邊 同時(shí)乘0/ )τ,并記〇/ )ΤΙ/ =A,〇/ )ΤΔ ' =B,最終調(diào)整后的矩陣方程為:
[0056] AV,=B (1.9)
[0057] 該方程可以利用Cholesky分解法、LDLT分解法或者LLT分解法進(jìn)行求解。
[0058]步驟二:為了在重建過(guò)程中尋求保持旋轉(zhuǎn)不變形的方案,首先觀察由上一章得出 基于拉普拉斯變換和控制點(diǎn)的能量誤差方程:
[0060]本方案將對(duì)次方程進(jìn)行改進(jìn),主要解決方法是為每個(gè)頂點(diǎn)^在最終編輯后的新網(wǎng) 格上計(jì)算一個(gè)近似變換!^,來(lái)保證縮放和旋轉(zhuǎn)的不變形。因?yàn)門(mén)dV )是,的函數(shù),所以可以 得到能量誤差方程:
[0062] 注意^和疒都是未知的。然而如果系數(shù)1\是疒的線(xiàn)性函數(shù),那么求解出疒意味著得 到了,因此Ε(ν')可以當(dāng)作未知變量只有疒的二次方程。
[0063] 現(xiàn)在需要尋求一種的解法,可以從頂點(diǎn)Vl和其一階鄰域得到,那么根據(jù)原始網(wǎng)格 和目標(biāo)網(wǎng)格定義如下的誤差方程:
[0065] 的平移部分由齊次坐標(biāo)可以得到。其線(xiàn)性部分應(yīng)該滿(mǎn)足如下的條件:變化代表 在目標(biāo)結(jié)構(gòu)中應(yīng)該是一個(gè)線(xiàn)性方程,但是對(duì)各項(xiàng)同性的縮放和旋轉(zhuǎn)存在約束,代表各向同 性的縮放和旋轉(zhuǎn)的類(lèi)矩陣可以描述為:
[0066] T = s exp(H) (1.13)
[0067] 其中Η是一個(gè)反對(duì)稱(chēng)矩陣。在三維坐標(biāo)中,反對(duì)稱(chēng)矩陣和某個(gè)向量的乘積可由向量 積來(lái)表示,如(1.14)式所示:
[0068] Hx = h*x; (1.14)
[0069] 結(jié)合3*3斜矩陣的一些其他屬性,可以得到如下的指數(shù)表達(dá)式:
[0070] S exp H=s(al+0H+γ hTh) (1.15)
[0071] 觀察(1.15)式,發(fā)現(xiàn)對(duì)于未知量s和h,只有I,H和s是線(xiàn)性的,而hTh是二次的,為了 對(duì)約束變形類(lèi)的取近似值,令:
[0073]上述矩陣是對(duì)衣物旋轉(zhuǎn)變化的線(xiàn)性近似。
[0074]由此可以顯式的寫(xiě)出定義在V上的Ti的線(xiàn)性依賴(lài)。記(Si, hi, ti)%Ti上未知的向 量,那么可以通過(guò)最小化方程得到:
[0075] |Ai(si,hi,ti)T-bi| |2 (1.17)
[0076] 其中Ai包含了原始網(wǎng)格頂點(diǎn)Vl的坐標(biāo)和一階鄰域的坐標(biāo),h包含了目標(biāo)網(wǎng)格頂點(diǎn) Vi的坐標(biāo)和其一階鄰域的坐標(biāo)。分別表示如下:
[0079] (1.11)式所描述的線(xiàn)性最小二乘解可通過(guò)下式進(jìn)行求解:
[0080] (si,hi,ti)T=(AiTAi)_1Ai Tbi (1.20)
[0081] 由此可知Ti的系數(shù)(&,1π,ωτ表現(xiàn)為bi的線(xiàn)性函數(shù)。
[0082] 根據(jù)旋轉(zhuǎn)和縮放的控制矩陣,即可在一次重建過(guò)程中就能保持衣物網(wǎng)格的縮放和 旋轉(zhuǎn)不變性。
[0083] 二、針對(duì)不同材料的衣物的褶皺模擬。
[0084] 基于微分坐標(biāo)的能量場(chǎng)可以很好的保持幾何細(xì)節(jié),但是對(duì)于用戶(hù)的同一次編輯操 作,得出的變形效果是唯一的。為了針對(duì)同樣的編輯操作可以產(chǎn)生不同的褶皺效果,即仿真 不同材料衣服的褶皺效果,本小節(jié)將依次添加頂點(diǎn)的約束方程,邊的約束方程和相鄰二面 角的約束方程控制衣服恢復(fù)、拉伸和彎曲的特性。
[0085] 步驟一:建立基于點(diǎn)的能量約束方程
[0086] 根據(jù)衣物網(wǎng)格形變的要求,衣物在壓縮后恢復(fù)特性的幾何度量和網(wǎng)格的頂點(diǎn)位置 密切相關(guān),即網(wǎng)格三角面片上的每個(gè)頂點(diǎn)的位置發(fā)生了變化。形變后的網(wǎng)格頂點(diǎn)位置應(yīng)該 逼近初始網(wǎng)格的頂點(diǎn)位置,因此,通過(guò)優(yōu)化后,發(fā)生形變的衣物目標(biāo)網(wǎng)格和初始網(wǎng)格之間需 要定義一個(gè)能量約束,反應(yīng)真實(shí)衣物所具有的恢復(fù)特性。頂點(diǎn)約束主要有兩個(gè)目的,一個(gè)是 保持原始網(wǎng)格固定頂點(diǎn)的位置信息,另一個(gè)是在每次變形中保持用戶(hù)的對(duì)控制點(diǎn)的移動(dòng)趨 勢(shì)。因此可以得到基于頂點(diǎn)的能量約束方程:
[0087] Ev = Σ?!=(,||ν; - ^11" (1.21)
[0088] 這個(gè)公式控制了當(dāng)前網(wǎng)格頂點(diǎn)^丨^^^^丨逐漸接近目標(biāo)網(wǎng)格頂點(diǎn)^,^^^^, ζ\),原始網(wǎng)格和目標(biāo)網(wǎng)格的頂點(diǎn)差距可以由歐拉公式計(jì)算獲得。
[0089] 如果對(duì)微分域網(wǎng)格方法只加入頂點(diǎn)的能量約束,會(huì)獲得如3.5.1小節(jié)的裙子褶皺 效果,并不符合網(wǎng)格裙子編輯后的真實(shí)效果。因此,本節(jié)考慮在此基礎(chǔ)上加入對(duì)網(wǎng)格邊長(zhǎng)和 二面角的能量約束方程。
[0090] 步驟二:建立基于邊長(zhǎng)和二面角的類(lèi)拉普拉斯特性能量約束方程
[0091] 如果只有頂點(diǎn)的約束方程,而沒(méi)有邊長(zhǎng)度和角度的約束方程,變形結(jié)果只會(huì)產(chǎn)生 類(lèi)薄膜效果。根據(jù)衣服和布料兩個(gè)最基本的特性是:拉伸和彎曲。因此可以建立邊長(zhǎng)的能量 約束方程控制衣物拉伸程度,建立二面角的能量約束方程控制衣物彎曲的程度。下面類(lèi)比 點(diǎn)約束的微分特性給出邊長(zhǎng)和二面角約束的類(lèi)拉普拉斯方程。
[0092]如圖2所示,假設(shè)給定邊,是點(diǎn)1和m分別是公共邊的兩個(gè)三角形的第三個(gè)點(diǎn) 可以計(jì)算邊eij的法向:
[0094]其中"4?和111,1^分別是兩個(gè)共享同一條邊的三角形的面積和方向。最后,針對(duì)邊 eij得到類(lèi)拉普拉斯性質(zhì):
[0096] 其中pij = avi+(l_a)vj,qij = 0vi+(l-0)vm。系數(shù)〇和0的選取使〇ij平行于邊的法線(xiàn) mj。在等式(1.23)中,的設(shè)計(jì)是為了控制邊的長(zhǎng)度,是為了控制相鄰兩個(gè)三角形的二 面角。
[0097]類(lèi)似于基于頂點(diǎn)的方法,新增兩個(gè)能量方程,分別利用邊長(zhǎng)和二面角來(lái)控制局部 的拉伸和彎曲程度:
[0099] 這里P' ij和σ' ij通過(guò)矩陣Tij轉(zhuǎn)換而來(lái),即P' = ifTijOij。為了生成變形 的網(wǎng)格M' =(V',E),需要用最小二乘思想求解下面的方程的最優(yōu)解:
[0100] ???ην,λΕρ+μΕσ (1.25)
[0101] 在上式中,λ和μ是邊長(zhǎng)和二面角控制的權(quán)重。由此可以得到關(guān)于點(diǎn)、邊和面的總能 量約束方程:
[0102] minv,ωΕν+λΕΡ+μΕ。(1.26)
[0103] 三個(gè)權(quán)重因子ω,λ,μ則由用戶(hù)指定。
[0104]三、網(wǎng)格和褶皺區(qū)域的優(yōu)化方法。
[0105] 此處將對(duì)網(wǎng)格加速重建和褶皺區(qū)域優(yōu)化進(jìn)行研究。對(duì)于網(wǎng)格加速重建,提出網(wǎng)格 的簡(jiǎn)化方案,減少自由點(diǎn)求解個(gè)數(shù)。對(duì)于褶皺區(qū)域優(yōu)化,本章首先對(duì)原始衣物網(wǎng)格和目標(biāo)的 衣物網(wǎng)格進(jìn)行形變分析,確立變形影響的褶皺區(qū)域。然后對(duì)該區(qū)域進(jìn)行局部細(xì)化,最后在細(xì) 化的基礎(chǔ)上對(duì)褶皺區(qū)域進(jìn)行局部平滑。下面將從以下四個(gè)方面詳細(xì)論述具體解決方案:(1) 網(wǎng)格簡(jiǎn)化的研究;(2)網(wǎng)格形變分析的研究;(3)網(wǎng)格褶皺區(qū)域細(xì)化的研究;(4)網(wǎng)格褶皺區(qū) 域平滑的研究。
[0106] 步驟一:基于點(diǎn)對(duì)收縮的網(wǎng)格簡(jiǎn)化。該方法基于頂點(diǎn)對(duì)的迭代收縮。記網(wǎng)格上的某 條邊為e= {vi,V2},通過(guò)頂點(diǎn)對(duì)收縮,{vi,V2}被記為新頂點(diǎn)V來(lái)代替。把所有與VI相連接的邊 連接到V再刪除頂點(diǎn)V2。然后刪除所有退化的邊和面。該操作收縮小且高度的局部化。如圖5 所示,如果相連接,則刪除上述所描述的邊和三角形。否則,把兩個(gè)不相連的部分進(jìn)行 連接。
[0107] 對(duì)點(diǎn)對(duì)的收縮進(jìn)行更一般的描述,(vi,V2,…,vk)-v,把一個(gè)頂點(diǎn)集合收縮到一個(gè) 頂點(diǎn)。這種廣義的收縮涵蓋了對(duì)頂點(diǎn)對(duì)收縮和頂點(diǎn)聚類(lèi)更通用的描述,本方法把點(diǎn)對(duì)收縮 作為一個(gè)原子操作,因?yàn)樵摬僮魇蔷W(wǎng)格收縮中最小的集合收縮。
[0108] 記初始的網(wǎng)格為1,通過(guò)不斷的使用點(diǎn)對(duì)收縮直至達(dá)到簡(jiǎn)化目標(biāo)生成近似網(wǎng)格Mg。 由于每次收縮對(duì)應(yīng)當(dāng)前模型的局部增量修改,因此該算法會(huì)產(chǎn)生一系列的模型ΜμΜη,…, Mg.因此該算法可以產(chǎn)生多分辨簡(jiǎn)化模型。
[0109]首先進(jìn)行點(diǎn)對(duì)的選擇,在初始網(wǎng)格上選定有效的點(diǎn)對(duì)集合,并把該集合作為整個(gè) 簡(jiǎn)化過(guò)程中不斷更新和修改的集合。新生成的點(diǎn)要接近原始頂點(diǎn)的位置,做到很好的逼近。 如果點(diǎn)對(duì)(,v2)滿(mǎn)足下列條件之一,則稱(chēng)( V1,v2)為一對(duì)有效的點(diǎn)對(duì)。
[0110] (l)(V1,V2)是網(wǎng)格某條邊的兩個(gè)頂點(diǎn);
[0111] (2) | |vi-V2| |〈t,t是一個(gè)閾值參數(shù)。
[0112] t = 0是最簡(jiǎn)單的邊收縮方案,較大的閾值會(huì)允許非連接點(diǎn)加入到點(diǎn)對(duì)集合中。因 此需要謹(jǐn)慎的選擇閾值,過(guò)大的閾值會(huì)導(dǎo)致網(wǎng)格收縮嚴(yán)重,影響簡(jiǎn)化效果。
[0113] 在整個(gè)迭代收縮的過(guò)程中,需要實(shí)時(shí)更新點(diǎn)對(duì)集合,保持點(diǎn)對(duì)集合的有效性。對(duì)于 點(diǎn)對(duì)集合里的每一個(gè)點(diǎn)對(duì)都要和當(dāng)前網(wǎng)格的頂點(diǎn)聯(lián)系起來(lái)。當(dāng)執(zhí)行操作( V1,V2)-V時(shí),不僅 僅需要把V2的關(guān)聯(lián)的邊連接到VI,而且還需要把V2相關(guān)的點(diǎn)對(duì)更新到VI的相關(guān)點(diǎn)對(duì)集合中, 把點(diǎn)對(duì)中多有V2替換成VI,并且去掉重復(fù)的點(diǎn)對(duì)。
[0114] 選定了所有的點(diǎn)對(duì)集合后,需要對(duì)點(diǎn)對(duì)的取舍進(jìn)行判斷,本小節(jié)給出一個(gè)基于二 次曲面的誤差逼近,用于判斷是否對(duì)點(diǎn)對(duì)進(jìn)行更新。
[0115] 對(duì)于點(diǎn)對(duì)的收縮,采取迭代方法。在每次迭代過(guò)程中,為了選取一個(gè)收縮的點(diǎn)對(duì), 需要定義點(diǎn)對(duì)的權(quán)值。而為了描述點(diǎn)對(duì)的權(quán)值,需在頂點(diǎn)上定義描述誤差。首先,記衣物網(wǎng) 格上所有包含點(diǎn)V的三角網(wǎng)格集合為P(V)。定義描述誤差為△ (V),表示頂點(diǎn)V到P(V)的二次 誤差。那么△ (V)可以用頂點(diǎn)V到P(V)集合內(nèi)所有三角形距離的平方和表示:
[0116] Δ (v) = EPep(v)(vTp) (pTv) =vT( Epep(v)Kp)v (1.27)
[0117] 其中,頂點(diǎn)ν= [vx,vy,vz, 1]τ,ρ為表示平面方程ax+by+cz+d = 0的一維向量,記為: ? = [&々,(3,(1]\1([)描述任意一點(diǎn)到平面?的空間距離,可用4*4的對(duì)稱(chēng)矩陣表示 :
[0119] 在每次點(diǎn)對(duì)收縮的迭代過(guò)程中,必須先計(jì)算Δ(ν),點(diǎn)對(duì)(V1,V2)的二次誤差記為P (V1)UP(V2)的合并空間集內(nèi)二次誤差,并設(shè)新的頂點(diǎn)v是使值最小的點(diǎn)。如果計(jì)算出 的值小于預(yù)定的閾值,就把點(diǎn)對(duì)進(jìn)行收縮操作,反之則不進(jìn)行操作。
[0120] 對(duì)于選定的收縮點(diǎn)對(duì),需要進(jìn)行以下三個(gè)更新操作:
[0121] (1)在原三維平面集合中刪除p(vl)np(V2)集合;
[0122] (2)將頂點(diǎn)^改為頂點(diǎn)v;
[0123] (3)修改v2的平面集合P(v2),把^的索引更改為 V1的索引
[0124] 網(wǎng)格的簡(jiǎn)化過(guò)程就是循環(huán)上面的三個(gè)步驟,直到得到滿(mǎn)意的網(wǎng)格簡(jiǎn)化效果。
[0125] 步驟二:網(wǎng)格形變分析和褶皺區(qū)域的確定。為了研究編輯操作對(duì)重建網(wǎng)格的影響 區(qū)域,本節(jié)對(duì)原始網(wǎng)格和變形網(wǎng)格進(jìn)行形變分析。針對(duì)衣物網(wǎng)格上的三角面片進(jìn)行分析,當(dāng) 網(wǎng)格上的三角面片產(chǎn)生的形變?cè)酱?,說(shuō)明該網(wǎng)格區(qū)域受到的作用力越大?;跀?shù)學(xué)分析和 物理分析,研究者提出了眾多衡量網(wǎng)格三角面片的形變方法。在計(jì)算機(jī)圖形理論中,Sander
[52]等人通過(guò)定義一系列的變形公式,來(lái)分析網(wǎng)格的形變大小。而在連續(xù)介質(zhì)力學(xué)理論中, 通常把拉伸張量作為描述子,來(lái)衡量力的形變大小。將采取Talpaert[53]等人提出的基于連 續(xù)介質(zhì)力學(xué)的形變分析方法。
[0126] 如圖6所示,假設(shè)吾代表編輯網(wǎng)格,S代表相應(yīng)的原始網(wǎng)格。對(duì)于二維平面,從§到對(duì) 應(yīng)S部分的仿射變換可以由一個(gè)2*2的矩陣T來(lái)表示:
[0127] Τ =\ιι{,α^?Λ,"?ι\ ' (1.29)
[0128] 其中(?2)和(ui,U2)分別代表編輯網(wǎng)格和原始網(wǎng)格在局部坐標(biāo)中三角形二維平 面的邊向量。如果變化矩陣滿(mǎn)足Τ τ = ?^,則變形是等距變換。2*2的對(duì)稱(chēng)正定矩陣
被稱(chēng)為拉伸張量,是定義在連續(xù)介質(zhì)力學(xué)中右柯西-格林形變張量的平方 根,是一種很優(yōu)的壓縮和伸長(zhǎng)測(cè)量方法。假設(shè)在衣物網(wǎng)格中不存在退化三角形,那么U可以 用如下對(duì)角矩陣表示:
[0129] υ = λ?θ?θ?τ+λ2θ2θ2Τ (1.30)
[0130] 其中ejPe2是相應(yīng)的單位特征向量,代表主要的拉伸和收縮方向。λ#Ρλ2是2*2矩 陣正實(shí)數(shù)的特征值,這里假設(shè)λΚλ^λ:可以衡量網(wǎng)格形變量的大小,當(dāng)\ 1越大時(shí)形變量越 小。因此,網(wǎng)格形變分析的問(wèn)題轉(zhuǎn)化為特征值和特征向量求解問(wèn)題,本章將采取經(jīng)典的雅克 比方法進(jìn)行求解。
[0131] 本實(shí)驗(yàn)探究網(wǎng)格編輯后的形變的區(qū)域,由于感興趣區(qū)域和變形區(qū)域控制點(diǎn)的選 取,網(wǎng)格上自由點(diǎn)發(fā)生了空間的移動(dòng),產(chǎn)生了新的褶皺,為了分析形變前和形變后的網(wǎng)格形 變區(qū)域,該實(shí)驗(yàn)對(duì)原始網(wǎng)格和形變網(wǎng)格進(jìn)行形變分析。如圖3所分別形變前網(wǎng)格的原始網(wǎng) 格、形變網(wǎng)格和變形張量的正面和背面視圖。
[0132] 本實(shí)驗(yàn)通過(guò)對(duì)三角網(wǎng)格的特征向量求解后進(jìn)行排序,形變小到大,然后依次對(duì)排 序的三角形著上漸變的顏色。如圖3所示,顏色越深,網(wǎng)格形變?cè)酱?,顏色越淺,網(wǎng)格形變?cè)?小。對(duì)比原網(wǎng)格和編輯網(wǎng)格的視圖,網(wǎng)格的形變色彩圖和網(wǎng)格間的變化趨勢(shì)一致。產(chǎn)生新的 褶皺的區(qū)域顏色越深,網(wǎng)格形變?cè)叫〉牡胤筋伾綔\。因此,可以根據(jù)網(wǎng)格的形變分析圖, 選擇一個(gè)顏色閾值定位裙皺區(qū)域,從而可以在一定范圍內(nèi)自動(dòng)確定裙皺形變區(qū)域。
[0133] Butterfly是一種插值細(xì)分方法,因?yàn)槠洳逯淀旤c(diǎn)的形狀類(lèi)似于蝴蝶,所以被稱(chēng)之 為蝶形細(xì)分法。在拓?fù)湟?guī)則上,蝶形細(xì)分方法和Loop細(xì)分方法的細(xì)分規(guī)則相同,但是在幾何 規(guī)則上,卻有一定的區(qū)別。
[0134] 經(jīng)過(guò)蝶形細(xì)分方法而產(chǎn)生的新的頂點(diǎn)分為兩類(lèi),一類(lèi)是V頂點(diǎn),一類(lèi)是E頂點(diǎn)。V頂 點(diǎn)是由原網(wǎng)格上的三角形頂點(diǎn)所產(chǎn)生的頂點(diǎn)。E頂點(diǎn)是由原網(wǎng)格的三角形邊產(chǎn)生的頂點(diǎn)。
[0135] 蝶形細(xì)分方法對(duì)E頂點(diǎn)的處理可以分為三類(lèi):
[0136] 第一類(lèi)是網(wǎng)格內(nèi)的任一邊的兩個(gè)頂點(diǎn)的度均等于6時(shí),當(dāng)計(jì)算新點(diǎn)時(shí),需要用到八 個(gè)頂點(diǎn)的坐標(biāo),此八個(gè)頂點(diǎn)對(duì)新頂點(diǎn)的貢獻(xiàn)值如圖7所示,根據(jù)圖7中8個(gè)頂點(diǎn)的權(quán)重即可計(jì) 算第一類(lèi)情況新點(diǎn)的坐標(biāo)。
[0137] 第二類(lèi)是在網(wǎng)格內(nèi)的某條邊的兩個(gè)端點(diǎn)中有一個(gè)度不等于6或者兩個(gè)均不等于6。
[0138] 此時(shí)記不等于6的頂點(diǎn)的度為η。對(duì)于η可分三種情況計(jì)算,當(dāng)η多5時(shí),該點(diǎn)的對(duì)頂 點(diǎn)的貢獻(xiàn)值可以記為:
[0148] 通過(guò)三類(lèi)的網(wǎng)格頂點(diǎn)即可計(jì)算所有的新生成頂點(diǎn)。
[0149] 通過(guò)上個(gè)實(shí)驗(yàn)可以分析出形變較大的褶皺區(qū)域,本實(shí)驗(yàn)首先在這個(gè)基礎(chǔ)上對(duì)褶皺 區(qū)域進(jìn)行細(xì)化,由于本實(shí)驗(yàn)和實(shí)驗(yàn)一是個(gè)可逆過(guò)程,可知增添褶皺形變區(qū)域的網(wǎng)格分辨率 可以在一定程度上增強(qiáng)褶皺的效果。由于基于感興趣區(qū)域的選取的網(wǎng)格重建和局部區(qū)域的 網(wǎng)格細(xì)化,可能會(huì)導(dǎo)致網(wǎng)格表面出現(xiàn)不平滑現(xiàn)象。針對(duì)此現(xiàn)象,本實(shí)驗(yàn)提出了一種網(wǎng)格平滑 的方法。對(duì)此本章給出三組實(shí)驗(yàn)結(jié)果。
[0150]圖4中的(a)和(b)分別給出的Butterfly簡(jiǎn)化法和Loop細(xì)化法的正面和背面視圖, 細(xì)化的網(wǎng)格均在原網(wǎng)格的基礎(chǔ)上進(jìn)行了一次細(xì)化迭代,細(xì)化后的網(wǎng)格一共有4886個(gè)頂點(diǎn), 9544個(gè)面。觀察本發(fā)明所采取的Butterfly細(xì)化法和Loop細(xì)化法的正面細(xì)化網(wǎng)格視圖和背 面細(xì)化網(wǎng)格視圖,兩者在平滑區(qū)域的細(xì)化效果相當(dāng),但是在褶皺區(qū)域,前者保持了更好的細(xì) 化幾何細(xì)節(jié),使褶皺效果明顯增強(qiáng),后者的增強(qiáng)效果不如前者。
【主權(quán)項(xiàng)】
1. 一種基于拉普拉斯坐標(biāo)的不同材料衣物仿真及優(yōu)化方法,其特征在于通過(guò)以下步驟 實(shí)現(xiàn): (1) 讀取衣物網(wǎng)格數(shù)據(jù),根據(jù)衣物網(wǎng)格數(shù)據(jù)為原始衣物網(wǎng)格的笛卡爾坐標(biāo)建立拉普拉 斯坐標(biāo)的微分坐標(biāo),在拉普拉斯坐標(biāo)的微分坐標(biāo)中針對(duì)衣物網(wǎng)格在旋轉(zhuǎn)情況下,通過(guò)重建 的失真的情形修復(fù)方法,得到編輯后的衣物網(wǎng)格,建立原始衣物網(wǎng)格與編輯后的衣物網(wǎng)格 的能量誤差方程,在旋轉(zhuǎn)操作下保持衣物網(wǎng)格的縮放和旋轉(zhuǎn)不變性; (2) 在步驟(1)建立的微分坐標(biāo)上,根據(jù)衣服的特性為壓縮,拉伸和彎曲添加不同的約 束能量方程,調(diào)節(jié)不同能量方程的系數(shù)模擬不同的褶皺效果,從而得到了不同材料衣服的 褶皺效果; (3) 在對(duì)步驟(1)得到的編輯后衣物網(wǎng)格上,進(jìn)行加速衣物網(wǎng)格求解和褶皺區(qū)域優(yōu)化, 提升編輯后衣物網(wǎng)格的求解速度;得到更加真實(shí)的褶皺編輯效果。2. 根據(jù)權(quán)利要求1所述的基于拉普拉斯坐標(biāo)的不同材料衣物仿真及優(yōu)化方法,其特征 在于:所述步驟(1)的重建的失真的情形修復(fù)方法通過(guò)以下步驟實(shí)現(xiàn): (11) 根據(jù)編輯后的衣物網(wǎng)格,對(duì)每個(gè)頂點(diǎn)在最終編輯后的新網(wǎng)格上計(jì)算一個(gè)近似變 換,建立新的能量約束方程; (12) 根據(jù)步驟(11)中的近似變換,轉(zhuǎn)化為矩陣形式,得到旋轉(zhuǎn)和縮放的控制矩陣,根據(jù) 旋轉(zhuǎn)和縮放的控制矩陣,即可在一次重建過(guò)程中就能保持衣物網(wǎng)格的縮放和旋轉(zhuǎn)不變性。3. 根據(jù)權(quán)利要求1所述的基于拉普拉斯坐標(biāo)的不同材料衣物仿真及優(yōu)化方法,其特征 在于:所述步驟(2)具體實(shí)現(xiàn)如下: (21) 通過(guò)三角網(wǎng)格的頂點(diǎn)位置建立能量方程,控制衣服壓縮后的恢復(fù)特性; (22) 通過(guò)三角網(wǎng)格的邊長(zhǎng)建立能量方程,控制衣服在拉伸后的特性; (23) 通過(guò)三角網(wǎng)格的相鄰面的二面角建立能量方程,控制衣服彎曲的特性; (24) 給上述三個(gè)能量方程中的三個(gè)參數(shù)設(shè)置不同的權(quán)重,模擬不同材料衣物在相同作 用力下的不同衣物褶皺產(chǎn)生效果。4. 根據(jù)權(quán)利要求1所述的基于拉普拉斯坐標(biāo)的不同材料衣物仿真及優(yōu)化方法,其特征 在于:所述步驟(3)具體實(shí)現(xiàn)如下: (31) 對(duì)原始衣物網(wǎng)格和編輯后的衣物網(wǎng)格進(jìn)行分析,分析衣物網(wǎng)格變形影響區(qū)域,BP 衣物網(wǎng)格褶皺生成的區(qū)域; (32) 對(duì)步驟(31)所生成的區(qū)域進(jìn)行衣物網(wǎng)格細(xì)分; (33) 對(duì)細(xì)分后衣物網(wǎng)格的不平滑現(xiàn)象進(jìn)行網(wǎng)格平滑,達(dá)到增強(qiáng)衣物網(wǎng)格的褶皺效果。
【文檔編號(hào)】G06F17/50GK106096130SQ201610407262
【公開(kāi)日】2016年11月9日
【申請(qǐng)日】2016年6月12日
【發(fā)明人】何兵, 曾建峰, 呂越
【申請(qǐng)人】北京航空航天大學(xué)