沙 莎,蔣高明,馬丕波,李欣欣
(江南大學(xué)教育部針織技術(shù)工程研究中心,江蘇無錫 214122)
利用計算機(jī)技術(shù)對緯編織物進(jìn)行模擬是近年來比較熱門的研究課題。國內(nèi)外許多專家和學(xué)者針對織物模擬進(jìn)行了一系列研究工作。利用計算機(jī)技術(shù)對緯編織物進(jìn)行模擬,可提高設(shè)計效率,降低生產(chǎn)成本,對開發(fā)緯編新產(chǎn)品和提高緯編產(chǎn)品性能具有重要的意義。
Weil[1]采用他用純幾何的方法,將織物懸掛在約束點上,通過計算約束點間懸鏈線位置的變化對織物進(jìn)行模擬。Ng等[2]基于幾何模型,在人體模型的基礎(chǔ)上建立衣服層,同時在織物褶皺線附近建立正弦曲線模擬褶皺。這2種方法都是基于幾何造型的方法,雖然可較好地展示織物外形,但不能準(zhǔn)確表現(xiàn)出織物的局部結(jié)構(gòu)特征。針對幾何造型方法存在的問題,Terzopoulos等[3]提出了基于物理的連續(xù)彈性變形模型,該模型認(rèn)為形變體的變化遵循牛頓定律和彈性力學(xué)原理,通過求解方程可得到物體上各點的空間幾何位置。Yang等[4]在此基礎(chǔ)上提出了粒子系統(tǒng)技術(shù),使織物具有更逼真的物理效果,將織物模型仿真提升到更高的層次,但這種連續(xù)的物理模型計算量極大,沒有考慮到紗線的編織結(jié)構(gòu)等微觀特征,難以適用于更加松弛的毛衣、圍巾等針織物的模擬[5]。
Xabier[6]結(jié)合了 Terzpopulos 的彈性變形模型,提出了基于物理方法的離散型彈簧-質(zhì)點模型,這個模型使用一個準(zhǔn)確的時間間隔方法,得到力學(xué)方程,對織物進(jìn)行模擬。Baraff等[7]用隱式歐拉法對力學(xué)方程求解,得到穩(wěn)定的模擬效果,但計算復(fù)雜。國內(nèi)對于這方面的研究已經(jīng)進(jìn)行了一段時間,劉卉等[8]將彈性曲線在某點的曲率作為彈性系數(shù),將相同的彈簧設(shè)置成不同的彈性系數(shù),解決了仿真中出現(xiàn)的超彈性問題,并且將服裝的省道和褶皺等問題考慮在內(nèi)。Yang等[9]用四階的龍格-庫塔法對力學(xué)方程求解,獲得了穩(wěn)定的模擬效果,但計算也復(fù)雜。
由于緯編織物組織結(jié)構(gòu)的復(fù)雜性和特殊性,對其模擬的方法與機(jī)織物有所不同。離散的物理模型能夠較好展現(xiàn)出緯編織物結(jié)構(gòu)的局部細(xì)節(jié),運(yùn)算效率高,仿真效果好,但傳統(tǒng)離散的平面彈簧-質(zhì)點模型在模擬結(jié)構(gòu)復(fù)雜的緯編組織時存在局限性。為解決以上問題,本文對平面彈簧-質(zhì)點模型進(jìn)行改進(jìn),提出立體的彈簧-質(zhì)點模型對緯編織物進(jìn)行模擬。將平面的彈簧質(zhì)點模型立體化為長方體模型,采用標(biāo)準(zhǔn)模板類(standard template library,STL)中的隊列模板(deque)來創(chuàng)建隊列,使得元素可被隨機(jī)訪問讀取。通過定義作用于質(zhì)點的力對緯編織物進(jìn)行物理模擬,用Velocity-Verlet法求解變形的方程,該方法增強(qiáng)了模擬效果的真實感和穩(wěn)定性。
將織物看成是由排列規(guī)則的離散質(zhì)點組成的,織物的質(zhì)量均勻分布在各個質(zhì)點上,質(zhì)點由沒有質(zhì)量的彈簧連接,如圖1所示。圖中彈簧分為3種類型:結(jié)構(gòu)彈簧、剪切彈簧與彎曲彈簧。結(jié)構(gòu)彈簧用于保持織物質(zhì)點間經(jīng)緯方向的距離;剪切彈簧用于保持織物質(zhì)點間斜向方向的距離;彎曲彈簧連接經(jīng)緯方向間隔的2個質(zhì)點,用于模擬織物彎曲或折疊時的抗彎曲性能。前2種彈簧彈性系數(shù)很大,最后一種彈簧的彈性系數(shù)很小,在織物仿真中可不考慮。
傳統(tǒng)的彈簧-質(zhì)點模型雖然有其獨(dú)特的優(yōu)勢,但是在緯編織物仿真模擬中存在局限性。緯編織物組織結(jié)構(gòu)復(fù)雜,織物層次多樣,而應(yīng)用傳統(tǒng)的彈簧質(zhì)點模型對緯編織物的形態(tài)模擬單一,不能生動展示出對緯編組織的模擬效果。
圖1 彈簧-質(zhì)點模型Fig.1 Mass spring models.(a)Mass connections;(b)Structure spring;(c)Shear spring;(d)Bend spring
為解決傳統(tǒng)的彈簧質(zhì)點模型在緯編織物模擬中存在的問題,本文在原模型的基礎(chǔ)上,將平面模型立體化,變成長方體彈簧,如圖2所示。
圖2 改進(jìn)的彈簧-質(zhì)點模型Fig.2 Improved spring-mass model
各質(zhì)點均勻分布在空間的網(wǎng)格上,每個小長方體的每條邊作為結(jié)構(gòu)彈簧,長方體面上的對角線作為剪切彈簧,由于彎曲彈簧的彈性系數(shù)極小,因此在本模型中,將彎曲彈簧忽略。模型中的質(zhì)點是隨時間變化的動態(tài)系統(tǒng),在每個時間步長里,質(zhì)點模擬受內(nèi)力(彈簧力和阻尼力)和外力(重力、風(fēng)力等)的作用而移動。質(zhì)點運(yùn)動規(guī)律遵循Newton第二定律:
式中:m為將模型離散化為n個質(zhì)點后每個質(zhì)點的質(zhì)量;a為合力F作用于質(zhì)點所產(chǎn)生的加速度;X為質(zhì)點的位移;Fext(X,t)和Fint(X,t)分別為質(zhì)點所受的外力和內(nèi)力。
質(zhì)點所受的內(nèi)力由彈簧力和阻尼力組成,即Fint=Fspr+Fdamp。其中,F(xiàn)spr代表彈簧彈力,F(xiàn)d代表阻尼力。圖3(b)和(c)為線圈上質(zhì)點受結(jié)構(gòu)彈簧力和剪切彈簧力的受力分析圖。彈簧的彈力Fspr利用胡克定律可得到:
式中:Kspr為彈簧變形系數(shù);|X0Xj|t-|X0Xj|0表示在t時刻和零時刻X0與Xj距離的變化;為X0指向Xj的單位向量。
阻尼力Fdamp定義為:
式中:Kdamp為連接質(zhì)點i和j的阻尼系數(shù);Vi(t)和Vj(t)分別為質(zhì)點i與j的速度。
圖3 線圈受力變形原理Fig.3 Deformation principle of forced loop.(a)Loop structure;(b)Loop forced main view;(c)Loop forced lateral view
外力包括重力、風(fēng)力和用戶施加的作用力。假設(shè)織物受力均勻,則質(zhì)點所受重力Fgrave為:
式中:M為織物的總質(zhì)量;n為織物的總質(zhì)點數(shù);g為重力加速度,取值為9.8 N/kg。
定義一個水平方向的力作為風(fēng)力,風(fēng)力Fwind為:
式中:Kwind為風(fēng)力因子;△Vi(t)為t時刻,風(fēng)速與質(zhì)點速度之差。
用戶拖動鼠標(biāo),拽取織物時,給織物增加了一個作用力,當(dāng)用戶釋放鼠標(biāo)時,此作用力消失。作用力Fuser為:
式中:Kuser為鼠標(biāo)操作力的強(qiáng)度,△L為鼠標(biāo)拖拽的長度,與Fuser的大小成正比。
當(dāng)用戶對織物施加一個外力時,整個織物會產(chǎn)生形變,根據(jù)力由近及遠(yuǎn)傳播擴(kuò)散的原理,受力質(zhì)點將力傳播到相鄰的質(zhì)點。作用的外力不會讓所有的質(zhì)點移動,只會讓受力點相鄰的質(zhì)點發(fā)生位移,因此,只需考慮在相應(yīng)的范圍內(nèi)質(zhì)點的相互作用。
當(dāng)外力F作用于m0時,這個點在力的作用下產(chǎn)生位移,該點與L1層相鄰,所以L1層上的節(jié)點m1、m2、m3也隨之運(yùn)動,同理與L1相鄰層上的質(zhì)點也依次運(yùn)動,如圖4所示。當(dāng)力一層一層地傳播下去,達(dá)到一定深度的時候,后面的層次幾乎不受影響,可忽略不計。這樣既保證了計算的精度,又減少了計算量。在三維空間中,若一個質(zhì)點受到力的作用,限定力的傳播深度為n,則受此力影響的質(zhì)點總數(shù)[10]為N=(n+2)(2n2+8n+9)/3。
圖4 力的傳播Fig.4 Force spread
用顯式歐拉法來求解彈簧質(zhì)點模型的動力學(xué)方程,雖然方法簡單,但求解結(jié)果為一階精度,必須采用很小的時間步長,影響系統(tǒng)的運(yùn)行速度;隱式歐拉法雖然可采用較大的時間步長獲得穩(wěn)定結(jié)果,但在求解過程中需要多次迭代,計算復(fù)雜,運(yùn)算量遠(yuǎn)大于同階的顯式積分法;梯形法將顯式和隱式歐拉法結(jié)合,它的計算精度比隱式歐拉法高,但是使用傳統(tǒng)的顯式歐拉法為第1次迭代的預(yù)測初值,迭代的初值誤差較大,因此為獲得與隱式歐拉法同樣的精度,需要多次迭代;四階龍格-庫塔積分法為五階精度,運(yùn)算較為復(fù)雜;Verlet顯式積分法為二階精度,時間步長可取值更大,精度比顯示歐拉法更高。
Verlet顯式積分法在計算時間和精度上都有很大的優(yōu)勢,但是它需要獲得質(zhì)點在前一時刻和后一時刻的位置來計算質(zhì)點當(dāng)前的速度。針對這一問題,本文選用Velocity-Verlet數(shù)值積分法。
式中:m為質(zhì)點的質(zhì)量;Xi(t)為質(zhì)點i在t時刻的位置;Fi(t)表示質(zhì)點受力;Fi(t+△t)表示新位置質(zhì)點受力;Vi(t)表示質(zhì)點在t時刻的速度。
采用理想彈簧模擬織物受力變形時,彈簧的伸長量與受力成正比,若用這種線性彈簧模擬具有高度非線性特性的織物,會產(chǎn)生超彈性現(xiàn)象。避免這一現(xiàn)象的常用方法為:提高彈簧的剛度系數(shù);設(shè)置彈簧長度變化的閾值;調(diào)整質(zhì)點起止點位置和有序的調(diào)整質(zhì)點速度等[11]。增加剛度系數(shù)的方法會降低織物的變形率,調(diào)整質(zhì)點的起止點位置可能會導(dǎo)致與其相鄰的彈簧發(fā)生超彈性問題[12]。調(diào)整質(zhì)點速度也不能從根本解決織物變形的非線性問題[13]。因此本文選用設(shè)置彈簧長度變化閾值的方法來解決超彈性問題。如果彈簧變形長度超過了設(shè)定的閾值,就修改這個彈簧的張力,將超過閾值的彈簧拉回正常的位置。通過修正發(fā)生超彈性問題彈簧的張力,來解決超彈性問題。
使用Visual Studio和OpenGL建立改進(jìn)的彈簧質(zhì)點模型,并賦予質(zhì)點和彈簧物理屬性,實現(xiàn)了緯編針織物的動態(tài)模擬。采用標(biāo)準(zhǔn)模板類STL中的隊列模板deque來創(chuàng)建雙向隊列。雙向隊列能夠以分段存儲,整體維護(hù)的方式,在隊列中的任意位置添加刪除元素,并且能夠隨機(jī)遍歷、訪問、讀取元素,這些功能是傳統(tǒng)呆板的鏈表所達(dá)不到的。使用這種方式在對質(zhì)點、彈簧和控制點初始化時,相對于普通鏈表,可顯著提高查詢效率,使程序更加靈活、高效。
圖5為建立改進(jìn)模型的初始化流程圖,通過獲得視圖指針分別創(chuàng)建彈簧-質(zhì)點模型中的彈簧、質(zhì)點和線圈上的型值點,以此來賦予彈簧和質(zhì)點物理屬性和幾何屬性,完成彈簧-質(zhì)點模型的建立。
通過圖6所展示的程序處理流程實現(xiàn)對織物受力的模擬。圖7為線圈動態(tài)模擬的效果圖。
圖5 模型初始化流程圖Fig.5 Model initialization flowchart
圖6 工作流程圖Fig.6 Work flow chart
本文針對緯編織物組織結(jié)構(gòu)的特性,改進(jìn)了傳統(tǒng)的彈簧-質(zhì)點模型,將二維模型立體化,通過立體化模型來模擬組織結(jié)構(gòu)復(fù)雜的緯編織物。在模擬織物受力時,限定了力的傳播深度,保證計算精度同時又減少了計算量。用Velocity-Verlet數(shù)值積分法求解運(yùn)動微分方程,該方法能夠在較大的時間步長內(nèi)獲得穩(wěn)定且實時性好的動態(tài)模擬效果。采用標(biāo)準(zhǔn)模板類中的隊列模板創(chuàng)建隊列,加快了模型的初始化速度和訪問速度。通過限制彈簧變形值,將超過閾值的彈簧增加張力,有效地解決了緯編織物的超彈性形變問題。應(yīng)用本文的模型和方法,用 Visual Studio和OpenGL編程,模擬實現(xiàn)了緯編織物受拉力等外力作用時的動態(tài)效果,實現(xiàn)了緯編織物的三維仿真,增強(qiáng)了緯編織物動態(tài)仿真的立體感,模擬效果真實且實時性好。
圖7 線圈動態(tài)模擬效果Fig.7 Loop dynamic simulation of plain stitch without force(a)and with force(b),rib stitch without force(c)and with force(d)
[1] WEIL J.The synthesis of cloth objects[J].Computer Graphics,1986,20(4):49 -54.
[2] NG N H,GRIMSDALE L R.GEOFF-A geometrical editorfor fold formation[C]//Lecture Notes in Computer Science. Berlin:Springer-Verlag, 1995:124-331.
[3] DEMETRI Terzopoulos,PLATT J,BARR A,et al.Elastically deformable models[J].Computer Graphics,1987,21(4):205-214.
[4] YANG Ying,THALMANN N M,THALMANN D.Three-dimensional garment design and animation,a new design tool for the garment industry[J].Computers in Industry,1992,19(3):185-191.
[5] 李漢文.3D虛擬衣服動畫系統(tǒng)關(guān)鍵技術(shù)的研究與實現(xiàn)[D].蘭州:蘭州大學(xué),2012:19-21.LI Hanwen.Research and implementation of key technologies in 3D virtual clothing animation[D].Lanzhou:Lanzhou University,2012:19-21.
[6] XABIER Provot.Deformation constraints in a massspring model to describe rigid cloth behavior[C]//Proceedings of Graphics Interface.Canadian Human-Computer Communications Society,1995:147 -54.
[7] BARAFF D,WITKIN A.Large steps in cloth simulation[C]//Proceedings of the 25th Annual Conference on Computer Graphics and Interactive techniques.New York,USA:ACM,1998:43-54.
[8] 劉卉,陳純,施伯樂.基于改進(jìn)的彈簧-質(zhì)點模型的三維服裝模擬[J].軟件學(xué)報,2003,14(3):619-626.LIU Hui,CHEN Chun,SHI Bole.Simulation of 3D garment based on improved spring-mass model[J].Journal of Software,2003,14(3):619-626.
[9] YANG Jiandong,SHANG Shuyuan.Cloth modeling simulation based on mass spring model[J].Applied Mechanics,2013,310:676-683.
[10] 孟軍,衛(wèi)巍.基于彈簧質(zhì)點與有限元混合模型的建模研究[C]//全國第 19屆計算機(jī)技術(shù)與應(yīng)用(CACIS)學(xué)術(shù)會議論文集:上冊.合肥:中國科技大學(xué)出版社,2008:69 -73.MENG Jun,WEI Wei.Research on modeling based on mass spring model[C]//19th NationalComputer Technology andApplications(CACIS)Conference Proceedings:Volume I.Hefei:University of Science and Technology of China Press,2008:69 -73.
[11] 肖明興,耿兆豐.織物動態(tài)仿真中改進(jìn)的粒子模型[J].計算機(jī)應(yīng)用,2007,27(5):1145 -1146.XIAO Mingxing,GENG Zhaofeng.Improved particle system for cloth animation[J].Computer Applications,2007,27(5):1145 -1146.
[12] 惠衛(wèi)華,關(guān)正西.基于質(zhì)點-彈簧模型的布料仿真研究[J].計算機(jī)工程與設(shè)計,2007,28(3):664-667.WEI Huihua, GUAN Zhengxi. Researchoncloth modeling simulation based on mass spring model[J].Computer Engineering and Design,2007,28(3):664 -667.
[13] 紀(jì)峰,李汝勤,張瑞云.基于粒子-彈簧模型的動態(tài)服裝仿真[J].紡織學(xué)報,2004,25(6):22 -25.JI Feng,LI Ruqin,ZHANG Ruiyun.Cloth modeling dynamic simulation based on mass spring model[J].Journal of Textile Research,2004,25(6):22 -25.