鄭利平 周乘龍 程亞軍 陳 星
1(合肥工業(yè)大學計算機與信息學院 安徽 合肥 230009)2(中國航天系統(tǒng)科學與工程研究院 北京 100048)
?
面向Remeshing的混合材質(zhì)布料仿真
鄭利平1周乘龍1程亞軍1陳星2
1(合肥工業(yè)大學計算機與信息學院安徽 合肥 230009)2(中國航天系統(tǒng)科學與工程研究院北京 100048)
摘要目前布料仿真所采用的布料模型主要是單一材質(zhì)的,導致了布料的真實性和多樣性沒有得到很好體現(xiàn)。從布料材質(zhì)的多樣性角度出發(fā),對Narain提出的自適應Remeshing方法進行改進和擴展,使其適合于混合材質(zhì)問題。首先提出一種交互方法對布料模型進行分割,然后通過材質(zhì)屬性庫為分割的區(qū)域填充不同的材質(zhì),設(shè)計出混合材質(zhì)的布料模型,并通過改進的自適應網(wǎng)格法來克服布料模型材質(zhì)單一性的限制,得到真實感較強的混合材質(zhì)布料仿真效果。
關(guān)鍵詞布料仿真交互混合材質(zhì)重網(wǎng)格化
0引言
布料仿真作為一門新興的技術(shù)在3D電影動畫、電子游戲、虛擬試衣等諸多領(lǐng)域得到了廣泛應用。在仿真過程中,往往要求仿真出的布料動畫具有豐富細膩的細節(jié)特征和較高的逼真程度。而布料動畫的逼真感不僅僅取決于布料的褶皺細節(jié),同時也取決于布料所選用的材質(zhì)。
從布料的物理特性來講,不同的材質(zhì)如絲綢和羊毛,由于內(nèi)部紡線結(jié)構(gòu)和編織方式的不同,在相同外力(如風力)的作用下,二者的仿真效果是明顯不同的。具體表現(xiàn)在:前者的形變程度會明顯比后者大,更容易發(fā)生拉伸、彎曲、剪切和產(chǎn)生各種褶皺。在服裝設(shè)計領(lǐng)域目前研究[1,2]表明,服裝設(shè)計極大程度上依賴于服裝材料的設(shè)計細節(jié),而不同材質(zhì)的衣服表現(xiàn)出的運動特性是不同的。在布料仿真研究中,毛天露等人[3]提出了一種基于實例的布料模型運動參數(shù)學習方法,給出了不同材質(zhì)布料塊的運動對比情況。Bhat等人[4]通過大量的實驗得出了不同材質(zhì)衣服精確的運動特征參數(shù)。但以上方法均未考慮由幾種不同材質(zhì)的布料片縫制而成的混合材質(zhì)衣服情況,無法仿真出現(xiàn)實中衣服樣式的多樣性和真實性。
基于上述原因,本文從衣服材質(zhì)角度出發(fā),創(chuàng)新性地提出一種基于自適應網(wǎng)格法的混合材質(zhì)布料仿真方法。首先對仿真所用的衣服模型進行樣式和材質(zhì)設(shè)計,得到混合材質(zhì)衣服模型。最后將該模型置于自然環(huán)境中實現(xiàn)布料模型與人體模型、外力之間的交互來展現(xiàn)布料的動態(tài)細節(jié)。實驗結(jié)果表明,該方法能夠生成樣式各異且真實感較強的仿真效果,同時也可以為其他仿真平臺以及服裝設(shè)計領(lǐng)域提供便利。
1相關(guān)工作
布料仿真是計算機圖形學中的研究難點之一,如何快速地仿真出逼真的布料動畫效果是布料仿真的核心問題。布料在力學特性上屬于柔性物體,容易產(chǎn)生各種褶皺,在外力的作用下會產(chǎn)生很大的形變,且布料的形變同材料、織造制造方法密切相關(guān)。由于形變的復雜性,難以構(gòu)造統(tǒng)一的、能夠適用各種情況的模型。在布料模型的建模方面,Provot等人[5-7]使用彈簧質(zhì)點模型來模擬布料,但是仿真結(jié)果的真實感較低。Choi[8]等使用基于四邊形網(wǎng)格的Choi系統(tǒng),但該方法的適用性較低。Baraff等人[9]使用幾何表示能力更強、適應范圍更大的三角網(wǎng)格來表示布料模型,并提出了隱式積分法解決了數(shù)值積分過程中的不穩(wěn)定問題,為后續(xù)的研究奠定了基礎(chǔ)。
在布料仿真的真實感方面 Feng等人[10]、Wang等人[11]等提出了一種混合方法將高精度的褶皺模型和低精度的運動模型相結(jié)合,得到了比較精細的實驗效果。但是因為不同精細程度的模型采用的驅(qū)動技術(shù)不同,所以在變形過程中可能會產(chǎn)生變形的不平滑。Jiao等人[12]、Narain等人[13]采用自適應網(wǎng)格法來動態(tài)仿真不同精細程度的網(wǎng)格,較好地實現(xiàn)了真實感和時間效率的折中。在布料材質(zhì)的研究方面,Etzmuss等人[14]使用有限元法來建模彈性、易擴展布料,將具有不同材質(zhì)信息的CAD二維模型塊,進行組合拼接來進行仿真,該方法容易出現(xiàn)拼接部分效果差且時間代價較大。Wang等人[15]使用分段線性彈性模型來模擬各種材質(zhì)的非線性、各項異性拉伸和彎曲行為,并對該種彈性模型的真實布料的拉伸和彎曲系數(shù)進行精確測量,得到了實驗布料的精確材質(zhì)屬性信息。
2基于自適應網(wǎng)格法的布料仿真
在布料仿真過程中,要使得生成的仿真效果具有很強的真實感,通常要使用高精度模型,但是這樣會大大增加算法的時間損耗。文獻[13]采用了自適應網(wǎng)格法來進行仿真,采用Remeshing技術(shù),在彎曲變形程度較大、褶皺細節(jié)較多的區(qū)域采用高密度網(wǎng)格。而在變形程度不大、細節(jié)較少的區(qū)域使用相對稀疏的網(wǎng)格,在保證仿真結(jié)果真實性的前提下,提高算法的效率,取得動畫效果與計算效率的平衡。文獻[13]的具體算法是根據(jù)文獻[16-18]中的方法首先為整個布料網(wǎng)格模型建立張量場M。M描述的是每個位置和方向上允許的最大邊長,并提出了三種基本的操作來實現(xiàn)布料模型的動態(tài)Remeshing,分別是split(分裂)操作、flipped(翻轉(zhuǎn))操作、collapsed(坍塌)操作,如圖1所示。
圖1 Remeshing操作示意圖
2.1Split操作
(1)
其中nj表示頂點j的法向量,εf表示元素的應變張量,‖·‖F(xiàn)表示F-范數(shù),adjaci表示頂點i的所有鄰點集合。當Q(Xi)取得最小值時,此時的Xi即為新頂點的三維坐標。
2.2Flipped操作
如圖1(c)圖所示,假定邊ij有鄰點k、l,邊ij要翻轉(zhuǎn)形成邊kl必須滿足式(2):
(2)
其中符號a×b=axby-aybx,Mavg表示四個頂點的平均張量。
2.3Collapsed操作
如圖1(d)圖所示,collapsed操作可以從邊的任意一個頂點開始。但是以下情況是不允許執(zhí)行collapsed操作的:
(1) collapsed操作產(chǎn)生的面僅僅是顛倒了原來的面,或者該面的長寬比太小,造成網(wǎng)格的質(zhì)量差。
(2) 經(jīng)過collapsed操作之后模型中產(chǎn)生了近似無效邊。
這里仿真過程中生成的邊大小一般不超過1-h,這樣的邊成為近似無效邊。h是一個比較小的磁滯參數(shù),文獻[13]中取h=0.2。
3混合材質(zhì)布料仿真
文獻[13]提出的方法雖然能夠較好地實現(xiàn)布料仿真過程中布料的真實感和仿真速度的平衡。但該方法只適用于單一材質(zhì)的布料模型而無法仿真出混合材質(zhì)的布料模型,沒有很好地體現(xiàn)出用戶和仿真系統(tǒng)之間的交互性和布料的多樣性。為解決該問題,我們需要對單一材質(zhì)的布料模型按照用戶的需求進行自定義分割,進行衣服的樣式設(shè)計,構(gòu)建多樣化的材質(zhì)信息庫。并為分割后的不同區(qū)域賦予不同的材質(zhì)屬性信息,進行衣服的材質(zhì)設(shè)計,組合出一種混合材質(zhì)的布料模型,再使用該模型進行后續(xù)仿真。
3.1布料模型交互式分割
對于布料模型的自定義分割,本文引入線性劃分的概念。由用戶輸入若干條分割線,所有分割線分割區(qū)域的交集確定一個封閉的區(qū)域,該區(qū)域即為用戶所需區(qū)域。為保證不產(chǎn)生錯誤的分割結(jié)果,這里要求初始的衣服模型沒有折疊,且待分割的模型表面沒有較大的彎曲。
圖2 交互式分割示意圖
簡要的分割示意如圖2所示。不失一般性,任意選取上述輸入模型的一小塊網(wǎng)格,即示意圖2中由△ABC、△ACD、△DCE、△DEF組成的區(qū)域。線段PQ作為分割線是算法的輸入,通過該線段來將網(wǎng)格分塊。
具體的實現(xiàn)過程是:首先計算出PQ的方程記為:
(3)其中a、b、c、m0、m1、m2為已知量,簡記該方程為f,因為分割線的頂點處在三角面片的不同位置需要進行不同的三角化操作,故需要判定圖中起點P的位置,包含以下三種情況(如圖3所示):
圖3 點P分布示意圖
(2) 點P位于△ABC頂點上,如圖3(b)所示。這種情況不必對△ABC進行細致劃分。但需要遍歷該點的所有鄰接三角形,并分別計算每個三角形三條邊的方程,求出交點,后續(xù)步驟同(1)相同。
(3) 點P位于△ABC某邊上,如圖3(c)所示。從P點出發(fā)三角化△ABC。同(1)相比少了一次從M點出發(fā)的三角化(該三角化的面是已經(jīng)三角化之后的△ABC形成的小三角面),后續(xù)步驟同(1)相同。
同樣地,終點Q的情況也分為以上三種,也需要進行位置判別后對應情況的三角劃分。此外,當P、Q兩點同時處在同一個三角形中,因為對布料模型的劃分通常涉及的三角網(wǎng)格數(shù)很多,當分割線處在同一個三角形中時劃分的區(qū)域很小,最后得出的仿真結(jié)果很不明顯,所以這種情況的輸入是沒有意義的。
由此給出算法過程如下:
算法:衣服模型交互式分割算法
輸入:分割線段集L={li…ln},衣服模型m。記F為m中三角面集合,V為m中頂點集合,E為m中邊集合。
輸出:分割處理后的衣服模型。
1.FOR EACH li(1≤i≤n)
2.記P為li起點,Q為終點
3.計算li的方程fi
4.FOR EACH t∈F
5.IF t∩P≠?
6.定義變量Temp←P
7.MeshDivision(t,Temp,fi,Q)
8.END IF
9.END FOR
10.END FOR
11.根據(jù)L選定線性劃分區(qū)域,標定該區(qū)域內(nèi)部所有三角面片
算法過程:MeshDivision
12.MeshDivision(t,Temp,fi,Q) {
13.WHILE (Temp≠Q(mào))
14.IF Temp在t內(nèi)部OR t的某條邊上
16.按常規(guī)方法三角化面t
17.ELSE IF Temp在t的某個頂點上
19.END IF
21.IF (M = ?)
22.RETURN
23.END IF
24.IF (M為t某頂點)
25.Temp←M
26.CONTINUE
27.ELSE
28.存儲M所在邊e的不為t的鄰接面s按常規(guī)方法三角化t
29.IF (s =?)
30.存儲e的非空鄰接面r,按常規(guī)方法三角化面r
31.RETURN
32.ELSE
33.存儲e的非s鄰接面y,按常規(guī)方法三角化面y
34.Temp←M
35.MeshDivision(s,Temp,fi,Q)
36.END WHILE
37.}
3.2材質(zhì)屬性添加
布料因為編織模式的不同和纖維方式的差異常表現(xiàn)出復雜的非線性彈性行為,而布料的彈性、粘性這些參數(shù)與材質(zhì)的屬性相關(guān)。布料的材質(zhì)屬性信息元素項主要包括:材料密度、拉伸系數(shù)矩陣、剪切系數(shù)矩陣、彎曲系數(shù)矩陣等。文獻[15]中通過對實際布料進行測量得到大量的材質(zhì)屬性信息。本文引用該信息構(gòu)建材質(zhì)庫,參照服裝設(shè)計標準來進行仿真。上述經(jīng)分割后的布料模型在邏輯上是彼此獨立但在物理上是一體的,這就避免了文獻[14]拼接上的問題。首先對三角面片賦予材質(zhì)信息,然后離散到各個模型頂點上,對于分割線上的頂點使用加權(quán)平均的方法來得出該點的材質(zhì)屬性信息。
為了減小系統(tǒng)的時間開銷,本文將整個模型分割操作和材質(zhì)信息的賦予操作放在整個仿真過程的預處理部分。
3.3自適應網(wǎng)格法改進
在文獻[13]的算法過程中,三種Remeshing操作會經(jīng)常破壞原本的三角面而產(chǎn)生了新的三角面??紤]本文的混合材質(zhì)情況,可能會導致原本三角面的材質(zhì)信息發(fā)生改變,出現(xiàn)畸變,這一畸變現(xiàn)象集中表現(xiàn)在已經(jīng)劃分好的區(qū)域邊界。如圖4所示,圖中黑色實線代表三角網(wǎng)格的邊線,紅色實線表示分割線,紅色虛線表示劃分過程中的三角化過程線。字母A(B)表示該三角區(qū)域適應的材質(zhì)是A(B)材質(zhì)。該圖模擬了collapsed操作引發(fā)的畸變。
圖4 Collapsed畸變模擬示意圖
為解決該問題,需要保證在Remeshing過程中分割邊界的相對完整性,同時最大程度上保證Remeshing操作的進行,使仿真結(jié)果的精度不至于下降,在不出現(xiàn)劇烈形變時避免了邊界畸變現(xiàn)象。由此,我們對文獻[13]算法提出了改進,步驟如下:
1) 遍歷模型的邊集合E,找出所有的邊e,滿足共享邊e的兩個面材質(zhì)信息不同,即e為兩種不同的材質(zhì)的分界邊。
2) 將上述以e為公共邊的三角形從原模型的面集合F中刪除,并加入邊界面集合F′中。將邊e的兩個頂點從原模型的頂點集合V中刪除,并加入新建的約束點集合V′中。
3) 在自適應的Remeshing過程中:
(1) 執(zhí)行split操作時:對于?f∈F,將經(jīng)過該操作之后生成的新面放入F中,而對于?f∈F′,將經(jīng)過該操作之后生成的新面放入F′中。
(2) 執(zhí)行flipped操作時:對于?f∈F′,此時如果f中的邊ei∈E(0≤i≤2),對該邊進行flipped操作會引起邊界的畸變。故對于該邊,需要限制其flipped操作,對于f中的其他兩條邊則無需增加限制(同樣地將經(jīng)過該操作之后生成的新面加入F′中并刪除原面)。
(3) 執(zhí)行collapsed操作時:如圖4(a),頂點M只能經(jīng)過collapsed操作到其鄰點H、J、Q、P、O、N中的其中一點,不難發(fā)現(xiàn)引發(fā)邊界畸變的是M點坍塌到N、H、P、Q點而坍塌到O、J兩點時則不會引起畸變。即對于?v∈V′,允許該點坍塌到點v′當且僅當v′∈V′且v′為v的鄰接點。然后從V′中刪除點v,將生成的新面加入F′中并刪除原面。對于?v∈V,可將其經(jīng)collapsed操作到其鄰接點v′(v′∈V or v′∈V′)。
3.4作用力模型
在布料模擬中,為了提高仿真效果的真實感,往往要考慮力對布料的影響。仿真模型中受到的外部作用力主要包括風力、重力等。受到的內(nèi)部作用力可以直接應用文獻[19]的公式導出,然后將作用力離散到三角面片的頂點即可,方法比較成熟。需要考慮的附加作用力包括:阻尼力、空氣阻力以及摩擦力。增加阻尼力是為了體現(xiàn)布料的厚實度,適當?shù)淖枘崃μ砑涌梢苑乐共剂铣霈F(xiàn)不切實際的平面內(nèi)振動,增加空氣阻力則是為了增加輕質(zhì)布料的真實感,而摩擦力的考慮則是因為布料與人體模型之間發(fā)生摩擦,需要計算出摩擦力。這些力模型均采用目前較成熟的模型。
4實驗結(jié)果
本文的實驗環(huán)境為64位Ubuntu 9.0 操作系統(tǒng),主機CPU為Intel Core四核 Q8400 2.66 GHz,內(nèi)存6 GB,程序運行環(huán)境為Eclipse+vim,采用OpenGL作為顯示和交互平臺,其他庫包括 BLAS、Boost、LAPACK、libpng、gfortran。實現(xiàn)了混合材質(zhì)布料模型的仿真,經(jīng)過分割仿真的實驗效果如圖5所示。圖5中所采用的材質(zhì)信息為表1所示。
圖5 不同混合材質(zhì)模型的分割效果圖
單肩裙粉色藍色材質(zhì)成分95%棉5%氨綸60%棉40%滌綸密度(kg/m2)0.2760.187誤差(mm)1.922.58T恤藍色紅色材質(zhì)成分87%尼龍13%氨綸60%棉40%滌綸密度(kg/m2)0.2040.187誤差(mm)1.572.58連衣裙天藍色淺黃色材質(zhì)成分99%棉1%氨綸100%滌綸密度(kg/m2)0.3240.113誤差(mm)2.302.06
以T恤模型為例,圖6為用戶對布料模型的自定義分割,圖中均為劃分后模型的初始狀態(tài),即為第0幀的狀態(tài)。
圖6 用戶自定義分割效果圖
在仿真過程中,布料模型受到外界作用力如風力的影響開始運動,在運動過程中如果使用不加約束的自適應網(wǎng)格法來進行仿真得到的效果如圖7(a)所示,出現(xiàn)畸變;使用改進的自適應網(wǎng)格法仿真效果如圖7(b)所示,畸變現(xiàn)象得以消除。
在給出的三種模型中,連衣裙模型與人體模型之間的貼身效果最差,在同等環(huán)境下表現(xiàn)出形變的差異最為明顯,我們仿真出相同環(huán)境下的運動過程。圖8(a)-(c)展示的是單一材質(zhì)布料的渲染效果,圖8(d)-(f)混合材質(zhì)布料的渲染效果。可以看出隨著風力的逐漸加大,因為兩種衣服模型的上半部分采用的材質(zhì)相同,為密度較大的皮革混合物,所以相對而言形變、褶皺細節(jié)基本相同;而下半部分圖8(d)-(f)采用的純滌綸材料相對于圖8(a)-(c)采用的皮革混合物更為輕柔,在相同的環(huán)境中發(fā)生的形變較大,“僵硬”感覺較小,生成的褶皺細節(jié)更為豐富,該實驗效果符合自然物理現(xiàn)象。
圖8 單一材質(zhì)布料與混合材質(zhì)布料運動對比圖
5結(jié)語
本文在之前研究工作的基礎(chǔ)上,從布料材質(zhì)的多樣性角度出發(fā),搭建系統(tǒng)平臺進行模擬仿真。成功地實現(xiàn)了混合布料的仿真并得到了非實時性仿真動畫,取得了真實感較強的效果,更好地展現(xiàn)出衣服樣式的多樣性,實驗結(jié)果可用于服裝設(shè)計領(lǐng)域以及其他仿真平臺。在下一步研究工作中,本文將討論復雜情況下模型的分割,如在網(wǎng)格上劃分出圓形、弧形等復雜形狀。并將進一步研究和探索減少算法的時間復雜度方法。
參考文獻
[1] 馬旖旎.服裝材質(zhì)對設(shè)計風格的影響[J].絲綢,2006(2):14-16.
[2] 姜宇冰,司國紅,孟祥玉.服裝材料與服裝設(shè)計的關(guān)系[J].黑龍江紡織,2002(1):35-36.
[3] 毛天露,夏時洪,王兆其.布料運動模型參數(shù)學習方法[J].計算機輔助設(shè)計與圖形學學報,2010,22(5):823-826.
[4] Bhat K S,Twigg C D,Hodgins J K,et al.Estimating cloth simulation parameters from video[M].The Eurographics Association,2010.
[5] Provot.Deformation constraints in a mass-spring model to describe rigid cloth behavior[C]//Proceedings of Graphics Interface,1995:147-154.
[6] Choi Ko.Stable but responsive cloth[J].ACM Transactions on Graphics (ACM SIGGRAPH) (S0730-0301),2002,21(3):604-611.
[7] 呂夢雅,李發(fā)明,唐勇,等.基于彈簧質(zhì)點模型的快速逼真的布料模擬仿真[J].系統(tǒng)仿真學報,2009,21(16):36-40.
[8] Choi K J,Ko H S.Stable but responsive cloth[J].ACM Transactions on Graphics (ACM SIGGRAPH 2002),2002,21(3):604-611.
[9] Baraff,Andwitkin.A Large steps in cloth simulation[J].SIGGRAPH,2001:43-54.
[10] Feng Wei,Wen Yu Yizhou,Kim B U.A deformation transformer for rea1 time cloth animation[J].ACM Transactions on Graphics,2010,28(4):1-9.
[11] Wang H M,Hecht F,Ramamoorthi R.Example-based wrinkle synthesis for clothing animation[J].ACM Transactions on Graphics,2010,29(4):1-8.
[12] Jiao X,Colombi A,Ni X,et al.Anisotropic mesh adaptation for evolving triangulated surfaces[J].Engineering with Computers,2010,26(4):363-376.
[13] Rahul Narain,Armin Samii,James F O’Brien.Adaptive Anisotropic Remeshing for Cloth Simulation[J].ACM Transactions on Graphics,2012,31(6):147:1-10.
[14] Etzmuss O,Keckeisen M,Strasser W.A fast finite element solution for cloth modelling[C]//Proceedings of Pacific Graphics,2003:244-251.
[15] Huamin Wang,James F O’Brien,Ravi Ramamoorthi.Data-Driven Elastic Models for Cloth:Modeling and Measurement[J].SIGGRAPH,2011,30(4):71.
[16] Bossen F,Andheckbert P.A pliant method for anisotropic mesh generation[C]//In 5th Intl. Meshing Roundtable,1996:63-74.
[17] Labelle F,Andshewchuk J R.Anisotropic voronoi-diagrams and guaranteed-quality anisotropic mesh generation[C]//Proc.19th annual Symposium on Computational Geometry SCG 03,2003:191-200.
[18] Wicke M,Ritchie D,K lingner B M,et al.Dynamic Local Remeshing for Elastoplastic Simulation[J].ACM Transactions on Grahics,2010,29(4):157-166.
[19] Terzopoulos D,Fleischer K.Deformable models[J].The Visual Computer,1988,4(6):306-331.
收稿日期:2015-01-21。國家自然科學基金項目(61300118);安徽省科技強警項目(1401b042009)。鄭利平,副教授,主研領(lǐng)域:可視化,群體和疏散仿真。周乘龍,碩士生。程亞軍,碩士生。陳星,工程師。
中圖分類號TP391.9
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.07.045
REMESHING-ORIENTED MULTI-MATERIAL CLOTH SIMULATION
Zheng Liping1Zhou Chenglong1Cheng Yajun1Chen Xing2
1(SchoolofComputerandInformation,HefeiUniversityofTechnology,Hefei230009,Anhui,China)2(ChinaAcademyofAerospaceSystemsScienceandEngineering,Beijing100048,China)
AbstractCurrently the cloth models used by cloths simulation are mainly the single material cloths, and this leads to the reality and diversity of cloths not being well exhibited. Proceeding from the diversity point of view of cloth material, in this paper we improve and extend Narain’s adaptive Remeshing method to make it adapt to the multi-materials cloth cases. First we present an interactive method to segment the cloth model. Then we fill the segmented parts with different materials through material attributes library and have designed the cloth models in multi-material. Moreover, through the improved adaptive Remeshing method we overcome the limitation of singularity in material of cloth model and obtain the simulation effect of multi-material cloth with quite high reality.
KeywordsCloth simulationInteractionMulti-materialRemeshing