国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

柔性織物動態(tài)仿真的研究及實現(xiàn)

2013-10-27 02:28:32魯艷波李英琳
關(guān)鍵詞:毛衫碰撞檢測質(zhì)點

魯艷波,李英琳

(天津工業(yè)大學(xué)紡織學(xué)部,天津 300387)

柔性織物動態(tài)仿真是紡織CAD的重要內(nèi)容.在服裝領(lǐng)域內(nèi),應(yīng)用動態(tài)仿真技術(shù)可以讓設(shè)計師與客戶在計算機屏幕上直觀地從各個方向和角度觀察服裝的穿著效果,并交互式地對服裝款式、尺碼進(jìn)行修改、選擇,極大提高了設(shè)計的效率;另外,在網(wǎng)上試衣、網(wǎng)絡(luò)銷售、3D動畫電影及網(wǎng)絡(luò)游戲等方面都有著廣泛的前景.然而,織物仿真通常計算量大、復(fù)雜度高,在目前的普通PC機硬件平臺上很難達(dá)到逼真、實時的效果,故降低計算量一直是織物仿真研究的重點.自1995年P(guān)rovot[1]提出經(jīng)典的質(zhì)點彈簧模型以來,大量的研究都圍繞著這個模型或其優(yōu)化模型來試圖降低運算量.也有大量學(xué)者在求解計算過程提出新的算法降低運算量,如Baraff等[2]采用隱式迭代把每次迭代的步長拉大,從而減少迭代的次數(shù),降低了計算量;張宗國等[3]所研究的自適應(yīng)庫塔龍格方法,能夠自動調(diào)整微分方程的步長進(jìn)行求解,不僅減少了計算量也提高了精度.以上研究均注重于提高實時仿真速度,在模型設(shè)計及算法計算過程中沒有考慮到不同織物結(jié)構(gòu)給仿真過程帶來的影響.本文根據(jù)毛衫織物彈性好、柔軟的特點設(shè)計質(zhì)點彈簧模型參數(shù),利用二分法求解碰撞檢測來降低運算量,并結(jié)合毛衫組織特點在碰撞響應(yīng)時差別化求解質(zhì)點的速度和受力.

1 影響織物動態(tài)仿真效果的因素

圖1 織物仿真效果影響因素Fig.1 Influencing factors of clothing simulation

影響織物動態(tài)仿真效果的因素主要有建立織物運動的模型、碰撞處理、紋理貼圖,如圖1所示.

在織物的運動過程中,紗線的非線性且各向異性的應(yīng)力應(yīng)變關(guān)系,使得柔性織物的運動規(guī)律不像剛體那樣不易變形,也不像流體那樣變化無約束.織物任何一部分的運動都會因針織物組織的相互串套影響其余部分的運動,影響程度也隨距離和組織而變化.織物的不同組織結(jié)構(gòu)、不同紗線種類等都會使織物模型有一定的不同,想要建立一個逼真的、能模擬出織物各部分真實運動的模型,而這個模型可以參數(shù)化以便適應(yīng)不同特點的織物的情形是不可能的.這里,以毛衫為例根據(jù)毛衫具備的織物柔軟、彈性好的特點設(shè)計質(zhì)點彈簧模型的參數(shù).

在求解織物運動模型時必然涉及大量復(fù)雜的運算,尤其是在碰撞檢測和碰撞處理求解時.如果不能及時進(jìn)行碰撞檢測,就會出現(xiàn)織物與場景中其他物體之間相互穿透和彼此重疊等失真現(xiàn)象.而且,碰撞檢測和碰撞響應(yīng)要在每時每刻進(jìn)行,整個過程就需要大量的瞬時運算,運算量過大又會降低仿真過程的運行速度.整個碰撞檢測與碰撞響應(yīng)所需的運算時間通常占到整個仿真過程的40%以上.提高運算量取決于常微分方程組的求解方法,通常用的有歐拉法、中點積分法和高階龍格庫塔法及其優(yōu)化方法.根據(jù)劉凌霞等[4]的研究,這里采用顯式歐拉方法,因為考慮到仿真速度,質(zhì)點受力除彈簧力和重力外其余都較小,這種情形可以保證較小的步長而不失系統(tǒng)的穩(wěn)定性,速度也就越快.

紋理貼圖的優(yōu)劣也決定著仿真效果的高低.織物紋理由二維的織物CAD軟件設(shè)計得來,或來自真實織物的照片.其實質(zhì)是一個二維空間里面存儲的一些顏色信息,在紋理映射的過程中,確定織物表面的點與紋理空間中點的映射關(guān)系,按照一定的算法將紋理空間的紋理圖案映射到織物的表面[5].紋理坐標(biāo)和運動模型各個圖元坐標(biāo)的吻合程度和細(xì)分程度都影響著仿真效果,因為二維紋理都是以1個面圖元為單位的映射,1個面又由3個點確定,而面中區(qū)域各點的顏色信息就根據(jù)這3點的顏色信息的線性插值而來.

2 織物物理運動模型的建立

為了方便起見,假定所研究的布料是矩形的,密度和厚度是均勻的,并忽略紗線受力各向異性帶來的差異.一般布料厚度在視覺上與其長度和寬度相比可以忽略不計,這樣布料就可假設(shè)為厚度為0的理想曲面.

織物的運動可以分為拉伸運動、彎曲運動和剪切運動.因此模型可假設(shè)為:把織物劃分成m×n的矩形網(wǎng)格,如圖2所示.

圖2 毛衫織物的質(zhì)點彈簧模型設(shè)計Fig.2 Mass-spring model of wool fabric

圖2中,每一個網(wǎng)格結(jié)點是一個虛擬質(zhì)點,每個質(zhì)點和其相鄰的質(zhì)點用一個彈簧相連,彈簧沒有質(zhì)量且長度不為0.質(zhì)點直接通過彈簧以3種連接方式分別約束織物的拉伸變形、剪切變形和彎曲變形.連接質(zhì)點(i,j)和(i+1,j+1)、連接質(zhì)點(i+1,j)和(i,j+1)的彈簧叫剪切彈簧,約束織物的剪切變形;連接質(zhì)點(i,j)和(i+2,j)、連接質(zhì)點(i,j)和(i,j+2)的彈簧叫彎曲彈簧,約束織物的彎曲變形.連接質(zhì)點(i,j)和(i+1,j)、連接質(zhì)點(i,j)和(i,j+1)的彈簧叫結(jié)構(gòu)彈簧,約束織物的拉伸變形.

整塊布料可以看作一系列均勻分布的離散點[6].通常結(jié)構(gòu)彈簧彈性系數(shù)很大,用于阻止布料在經(jīng)緯2個方向產(chǎn)生過度的拉壓變形;剪切彈簧用于模擬面料內(nèi)傾斜方向的作用力,彈性系數(shù)較大,以阻止斜向的過度變形;彎曲彈簧較特殊,連接的是經(jīng)緯2個方向相隔的質(zhì)點,用于模擬布料在彎曲或折疊時的抗彎曲性能,其彈性系數(shù)很小[1].但是毛衫織物柔軟、彈性很好,織物運動時的彎曲形變和剪切形變也比較大,其質(zhì)點彈簧模型的彎曲彈簧、剪切彈簧的彈簧系數(shù)也應(yīng)較大.質(zhì)點的數(shù)量也不是越多越好,質(zhì)點數(shù)量越多,運算量越大,仿真效果也越好.通過多次試驗比較,采用24×24=576個質(zhì)點建立模型,各個質(zhì)點的質(zhì)量m=1 g,所受力為重力G=mg=9.8 N,3種彈簧的彈簧系數(shù)分別為:結(jié)構(gòu)彈簧彈簧系數(shù)為10 N/mm,阻尼系數(shù)為0.5 Ns/mm;剪切彈簧彈簧系數(shù)為4 N/mm,阻尼系數(shù)為0.5 Ns/mm;彎曲彈簧彈簧系數(shù)為0.9 N/mm,阻尼系數(shù)為0.7 Ns/mm.

3 二分法碰撞檢測和差異化碰撞響應(yīng)

碰撞檢測是發(fā)現(xiàn)碰撞并報告,碰撞響應(yīng)是在碰撞發(fā)生后,根據(jù)碰撞點、質(zhì)點在碰撞時刻的位置、速度、受力等參數(shù),瞬時改變質(zhì)點的速度及受力.采用質(zhì)點彈簧模型,主要的碰撞檢測是檢測點、面之間的碰撞.通常的碰撞檢測方法是利用沿坐標(biāo)軸的包圍盒方法,有AABB包圍盒和ABB包圍盒等[7].而采用球體作為碰撞對象,只需求得每個質(zhì)點與碰撞球之間的距離r,然后與球體半徑R比較,若r<R就表示質(zhì)點已經(jīng)滲透到了球體內(nèi).

3.1 二分法檢測的實現(xiàn)

先設(shè)定一個閾值作為碰撞檢測的允許誤差,越小越好,這里選取0.001 mm,然后在任意時刻t計算所有質(zhì)點在t+Δt時刻與所有碰撞面之間的距離d=r-R,當(dāng)0<d<0.001 mm時,t+Δt時刻即為碰撞時刻及碰撞點;當(dāng)d<0時,此時發(fā)生了質(zhì)點滲透到碰撞點內(nèi)部的情形,如圖3所示.此時則需要調(diào)整Δt,使時間步長Δt減半,即Δt=Δt/2再重新進(jìn)行檢測,如此不斷循環(huán)[8].這樣,運算效率較高且系統(tǒng)穩(wěn)定.

圖3 二分法點面碰撞滲透處理Fig.3 Solution of point-face collision and permeation

根據(jù)牛頓力學(xué)原理,質(zhì)點(i,j)隨時間運動的受力、加速度、速度和位移如式(1)所示:

在整個碰撞處理過程中要時刻求解常微分方程組(1),有效的數(shù)值積分法有歐拉積分法、中點積分法和高階龍格庫塔方法.根據(jù)文獻(xiàn)[3]的研究,這里采用顯示歐拉積分法求解.雖然方程組(1)是時間域上的二階微分方程,但是歐拉法的思想是用差商代替微商,可以把二階方程組降階為一階方程組.令Δt為時間步長,對于初始條件 x(t0)=x0,x在下一刻 t+Δt的值為 x(t0+ Δt),歐拉方法對于 x(t0+ Δt)的計算公式為

所以,質(zhì)點在任意時刻的加速度、速度和位置均可依次推出.其局部截斷誤差考慮到運行效率,求二階即可,即

3.2 差異化碰撞響應(yīng)的實現(xiàn)

檢測到碰撞發(fā)生后,就要及時進(jìn)行碰撞響應(yīng),以避免發(fā)生穿越交疊等失真現(xiàn)象.所以碰撞響應(yīng)就是要改變碰撞質(zhì)點的速度大小和方向、受力的大小和方向.在以往的織物仿真中,通常是在碰撞面設(shè)置一個向量場或給織物質(zhì)點施加一個向外的瞬時足夠大的作用力,在碰撞后,把質(zhì)點的受力與速度的改變按照同一算法進(jìn)行處理[9],稱之為質(zhì)點速度、受力的一致性響應(yīng),如圖4所示.

圖4 質(zhì)點速度、受力一致性響應(yīng)Fig.4 Consistency response of particle velocity and force

這種作法會造成一定程度的不真實效果,在碰撞響應(yīng)的瞬間會看到個別質(zhì)點有“跳動”現(xiàn)象,這明顯不符合毛衫織物的特點.毛衫織物彈性好,柔軟度高,其與球體碰撞時,在碰撞之后會在織物內(nèi)把彎曲的線圈拉直,這個過程雖然需要極短的時間,但是碰撞本身就很短,不能將其忽略.在碰撞的這一刻,毛衫織物不僅不會有“跳動”現(xiàn)象,反而會有短暫的“靜止”現(xiàn)象.根據(jù)毛衫織物的這一特點,本文采用質(zhì)點速度和受力的差別化響應(yīng)方法,如圖5所示.圖5中,質(zhì)點的速度按照動量守恒定律計算,而質(zhì)點受力則完全大小相同,方向相反.

圖5 質(zhì)點速度、受力差異化響應(yīng)Fig.5 Differences in response of velocity and force

4 織物的紋理映射

為了達(dá)到較好、真實的效果,本文選取毛衫織物的實物照片進(jìn)行紋理映射.為了能夠進(jìn)一步觀察毛衫織物中線圈長度不同時的仿真效果,選取平針部分和移圈部分交替相間的阿蘭花組織面料.其中,移圈部分又有明顯的“孔洞”和紗線密集區(qū),這兩部分的線圈長度不一樣,仿真時可比較觀察.實物映射時,把整個紋理坐標(biāo)劃分為[0,1]之間的二維數(shù)組,分別對應(yīng)于運動模型中縱橫各個質(zhì)點的坐標(biāo).實物圖像的紋理信息通過OpenGL函數(shù)讀入事先分配好的二維數(shù)組,假設(shè)把紋理圖案放在一個正交坐標(biāo)系中,紋理坐標(biāo)的最大值是1,最小值是0,這樣紋理任意一點的信息都可以被使用.在用OpenGL繪制時根據(jù)在該坐標(biāo)點指定的紋理顏色進(jìn)行繪制,而其余沒有給定顏色的模型圖元則按照線性插值求出其顏色數(shù)據(jù).結(jié)合前面的質(zhì)點彈簧模型共用576個質(zhì)點,529個平面,其中每一個四元數(shù)(4個相鄰質(zhì)點)確定一個面,并應(yīng)用對應(yīng)的一部分紋理.

5 織物仿真的實現(xiàn)

基于Microsoft Visual C++6.0開發(fā)平臺和OpenGL三維圖形庫[10].首先,建立織物參數(shù)設(shè)置模塊,設(shè)定織物物理運動模型參數(shù),如質(zhì)點數(shù)量、質(zhì)量、彈簧系數(shù)、阻尼系數(shù)和選擇紋理等;其次,給織物添加初始力,此處僅為重力,織物開始運動;最后,循環(huán)計算織物在運動過程中受力、加速度、速度和位置的變化,時間間隔為Δt,Δt可以人為設(shè)定大小,也可按照最小值計算(即繪圖函數(shù)每次調(diào)用的間隔).當(dāng)有質(zhì)點滲透到碰撞球內(nèi)時,則調(diào)用Δt=Δt/2,再重新計算質(zhì)點的參數(shù);當(dāng)碰撞發(fā)生時則立即調(diào)用碰撞響應(yīng)函數(shù)對質(zhì)點的受力、速度參數(shù)進(jìn)行處理.整個過程不斷循環(huán),直至退出系統(tǒng)[11].其實現(xiàn)流程圖如圖6所示.每一個質(zhì)點在任何一刻的速度大小和方向都各不相同,需要通過求解常微分方程組計算出任意時刻質(zhì)點的受力、加速度和速度,并在Δt內(nèi)求出下一刻的質(zhì)點位置和受力、速度等.利用顯示歐拉方法對整個常微分方程組進(jìn)行求解.

圖6 織物仿真實現(xiàn)流程圖Fig.6 Structure chart of clothing simulation

6 仿真效果分析

對于不同組織結(jié)構(gòu)的毛衫織物,可以根據(jù)織物的力學(xué)運動差異,改變質(zhì)點彈簧模型中各類彈簧的參數(shù)來模擬,但通常需要多次調(diào)整參數(shù)才能達(dá)到理想效果.圖7為最終得到的毛衫織物運動仿真效果圖.

圖7 織物動態(tài)仿真效果圖Fig.7 Effect picture of dynamic clothing simulation

圖7仿真效果表明,毛衫織物的質(zhì)點彈簧模型中彎曲彈簧和剪切彈簧都應(yīng)較大,但質(zhì)點數(shù)量不能過大;利用二分法求解點、面的碰撞檢測能夠提高仿真速度,但是僅限于碰撞體表面簡單、迭代步長小的情形;毛衫織物的模型質(zhì)點速度、受力的差別化響應(yīng)更能模擬出織物在碰撞時的真實情形.

7 結(jié)束語

本文所提出的織物動態(tài)仿真方法對于毛衫織物的仿真是一種可行的方法.毛衫織物中線圈長度較大,彎曲度高,在建立質(zhì)點彈簧模型時要選取較大的彎曲彈簧系數(shù)和剪切彈簧系數(shù).利用二分法求解較小步長且迭代簡單的微分方程組可以提高仿真速度.毛衫織物柔軟、彈性好的特點使其與球體碰撞時會有短暫“靜止”現(xiàn)象,利用質(zhì)點速度受力差異化響應(yīng)的方法可獲得更好的仿真效果.對于不同織物的仿真,應(yīng)根據(jù)此類織物的受力運動特點,建立動態(tài)模型并應(yīng)用不同優(yōu)化算法才能達(dá)到更好的效果.

[1]PROVOT X.Deformation constraints in a mass-spring model to describe rigid cloth behavior[C]//Proceedings of Graphics Interfaces 95.Quebec:[s.n.],1995:147-154.

[2]BARAFF D,WITKIN A.Large steps in cloth simulation[C]//Computer Graphics Proceeding(SIGGRAH).Orlando:[s.n.],1998:43-54.

[3]張宗國,羅笑南.基于自適應(yīng)龍格庫塔方法的柔性織物仿真[J].計算機應(yīng)用研究,2004(12):170-172.

[4]劉凌霞,宋強.基于簡化的質(zhì)點彈簧模型織物變形仿真研究[J].計算機仿真,2011,28(5):406-409.

[5]王躍存,李曉慧,劉麗杰.織物紋理與計算機仿真[J].天津工業(yè)大學(xué)學(xué)報,2006,25(5):21-24.

[6]紀(jì)峰,李汝勤.基于粒子-彈簧系統(tǒng)的面料仿真模型[J].紡織學(xué)報,2004,25(2):42-44.

[7]ERISON Christer.實時碰撞檢測算法技術(shù)[M].劉天慧,譯.北京:清華大學(xué)出版社,2010.

[8]沈照功,潘振寬.基于質(zhì)點彈簧模型的布料仿真及碰撞檢測方法[J].計算機仿真,2006,26(3):284-287.

[9]柳楊,孫守遷,徐愛國.織物物理模擬與三維服裝實時仿真技術(shù)[J].紡織學(xué)報,2008,29(7):76-82.

[10]吳夢熊.三維織物動態(tài)仿真真實感技術(shù)研究與實現(xiàn)[D].上海:東華大學(xué),2008.

[11]BOARD Review,SHREINER Dave,WOO Mason.OpenGL編程指南[M].徐波,譯.北京:機械工程出版社,2008.

猜你喜歡
毛衫碰撞檢測質(zhì)點
全新預(yù)測碰撞檢測系統(tǒng)
巧用“搬運法”解決連續(xù)質(zhì)點模型的做功問題
毛衫護(hù)理標(biāo)簽調(diào)研與分析
家電科技(2021年1期)2021-03-03 06:07:32
基于BIM的鐵路信號室外設(shè)備布置與碰撞檢測方法
Unity3D中碰撞檢測問題的研究
電子測試(2018年1期)2018-04-18 11:53:00
碧溪鎮(zhèn)中國毛衫小鎮(zhèn)
紡織報告(2017年9期)2017-10-19 09:19:13
質(zhì)點的直線運動
質(zhì)點的直線運動
街頭真人秀
智族GQ(2016年11期)2016-09-13 12:30:38
BIM技術(shù)下的某辦公樓項目管線碰撞檢測
天等县| 若羌县| 岳普湖县| 厦门市| 鄂伦春自治旗| 如东县| 新巴尔虎左旗| 石嘴山市| 谷城县| 宜章县| 平武县| 澄江县| 蛟河市| 鄄城县| 日照市| 洛扎县| 泾源县| 张家口市| 铜陵市| 平阴县| 浑源县| 榆社县| 贡嘎县| 珠海市| 阿荣旗| 民和| 贞丰县| 乐昌市| 德安县| 伊吾县| 仪征市| 璧山县| 辽宁省| 奉节县| 平泉县| 祁阳县| 丹寨县| 新源县| 阳曲县| 辛集市| 左云县|