【摘要】本文主要研究了三維織物動態模擬的實現過程。文章分別從織物模型、質點位置的計算方法等方面針對現有的方法進行綜合分析,根據每種方法的特點進行選擇,并最終在計算機上進行了模擬實現。實驗結果表明,布料的模擬效果較為真實,運行過程流暢,對硬件配置無較高要求。
【關鍵詞】織物模擬;織物模型;質點位置
1.引言
自上個世紀80年代以來,三維織物的動態模擬問題就一直是研究人員的熱點研究問題,現有的方法大致可分為三類:幾何方法,物理方法和混合方法。幾何方法主要在不考慮織物的物理特性的情況下運用幾何方程,模擬織物的視覺效果,這一類方法單獨使用時不能產生較為真實的效果;物理方法將織物視為由一系列微小的粒子組成,每一個粒子所受到的力都要計算出來,模擬動態的織物;混合方法是結合了物理和幾何的方法,更多的用來模擬較復雜的動態織物。
2.織物模型的選擇
目前,基于物理方法的織物模型種類很多,如有限元模型,有限體積模型,粒子系統模型等。本文的織物模型選擇的是經典的質點——彈簧模型,這是一種實現較為簡單且有效的方法,這種模型將織物模擬為相互關聯的質點,每個質點的運動情況由不同的時刻所受到的合力決定。
3.計算方法的選擇
目前有兩種計算的方式,隱式積分算法和顯式積分算法。
隱式積分算法從系統整體出發計算質點位置,這類算法的優點在于由于將質點視為一個連接的整體,潛在的不穩定性通常會消失,這樣模擬過程不會出現不穩定或放大的情況;缺點是存在泰勒級數的截斷誤差且很難用代碼正確的實現。
顯示積分算法的基本思想是獨立地更新所有未知的變量,這類算法的缺點是由于把一些變量看作是獨立的,相互之間并不影響,而織物上的質點彼此之間是相互連接在一起的,因此這種方法模擬的織物有可能會出現質點彼此之間移動不同步的情況,質點的位置會稍微出現些偏差,但是這種偏差是可被忽略的。
本文選擇顯示積分算法主要考慮該算法編碼實現較為簡單,對CPU的性能要求也不高,并且實現方式很多。顯示積分算法中目前較為常用有Euler算法和Verlet算法。
3.1 Euler算法
在數學和計算機領域,Euler算法是最基礎的一種算法,用于計算離散時間段中物體受力后的運動軌跡。該算法的主要優點是易于實現,但是由于該方法會產生較大的誤差,因此可能在數值上會不穩定,尤其是對于剛性方程。
3.2 Verlet算法
該算法主要應用在分子動力學模擬方面,計算粒子的運動軌跡,相較Euler算法具有更好的穩定性,且具有其他的一些對于物理系統非常重要的屬性,如時間可逆性。該算法的穩定性很大程度上取決于統一的更新率,或能在一個很小的時間增量內識別出位置,有時也被用在游戲的物理引擎中。
和Euler算法不同的是,為了降低誤差,Verlet算法計算下一個時間點位置的方法并不使用速度,而是通過前一個時間點和當前時間點的位置,如式(1)所示:
在下一個時間點到來之后,再計算前一個時間點的速度,計算速度的公式如式(2)所示:
實現過程中本文選擇Verlet算法,它有更好的穩定性,誤差也較小。
4.具體實現
織物模型采用質點-彈簧系統,由16個質點,58個彈簧組成。為了達到更為真實的效果,每一個質點通過12個彈簧相互連接,分別為4個結構彈簧,4個剪切彈簧和4個彎曲彈簧,每個彈簧都有相同的系數和剛性。如下圖所示。
其中是用來減小質點運動速度的,相當于空氣阻力;指質點的質量,單位為千克。代表剛性系數,指時間步長,表示彈簧的重力系數。
一開始,每個質點的位置都會設置到初始位置,并且所受外力為0,由于P1和P4是固定住的,因此在第一行只需計算質點P2和P3的位置坐標,之后每一次運行Verlet算法時都要設置一個默認重力值,施加重力之后質點位置坐標的計算用到以下計算公式:
其它質點依此類推。
為了滿足彈簧的約束條件,要給每一個質點施加彈簧張力并計算它們的位置信息,要使用以下公式:
在上述公式中,表示彈簧長度;表示彈簧的剩余長度系數;P1和P2為連接在一個彈簧兩端的兩個質子。
依此類推加上所有的彈簧張力。16個質點的初始位置和計算后位置坐標如表1所示。
5.實驗結果與結論
程序采用C++語言進行編寫,使用Visual Studio 2008進行編譯,運行硬件環境配置如下:CPU為Intel Core2 T5870,主頻為2GHz;內存為2GB,顯卡為ATI Mobility Radeon X1350,顯存128MB,實驗結果如圖2所示。
實驗結果表明,織物的動態模擬效果較為真實,并且運行過程連貫順暢,對硬件配置無太高要求。
參考文獻
[1]祝雙武,郝重陽.一種基于真實感圖像生成的織物外觀仿真快速算法[J].系統仿真學報,2008,20(5):1234-1237.
[2]胡江帆,嚴佩敏,周俊瑋,萬旺根.基于改進質點彈簧模型下的布料實時仿真[J].計算機仿真,2008,25(7):184-187.
[3]趙慧青.虛擬服裝設計中的布料仿真與碰撞檢測算法研究[D].成都:成都理工大學,2008.
[4]吳夢熊.三維織物動態真實感仿真技術研究與實現[D].上海:東華大學,2008.
[5]Thomas Stumpp,Jonas Spillmann,Markus Becker.A Geometric Deformation Model for Stable Cloth Simulation[J].Workshop on Virtual Reality Interaction and Physical Simulation VRIPHYS,2008.
作者簡介:孔令寅(1986—),陜西西安人,碩士,四川大學錦江學院計算機學院教師。