簡介
在動畫中對人物衣物的建模是非常重要的,直接影響到真實感的體驗。廣泛採用的技術是彈簧質點模型。彈簧質點模型是一種物理模型,其核心是把布料的形狀用微分方程來表示。該模型結合布的物理屬性, 如質量、硬度和彈性等布的材料屬性, 運用力學理論建立起微分方程。
彈簧模型
1. 拉力彈簧: 拉力彈簧將一個質點和與它直接相連的質點連接。它產生的力用於抵抗布的拉伸或壓縮。
2. 交叉彈簧: 一個交叉彈簧跨過兩相鄰三角形的公共邊, 連接兩個有公共邊的三角形上的質點。在質點- 彈簧模型中, 交叉彈簧主要用於模擬布的彎曲力。
力模型
1.內力
a)彈簧力
假定一個彈簧Si, j連接兩個質點Pi 和Pj。根據虎克定律, 作用力F s (Si, j) 和彈簧變化長度成正比:
其中, ks i, j是彈簧的剛度, I i, j是彈簧的矢量, l0i, j是彈簧的原長, x i和x j是質點Pi 和Pj 的位置。
b)阻尼力
動態的布模擬中, 適當的阻尼力對維持系統的穩定性是非常重要的。例如, 爲了防止兩質點間出現不規則的振動, 一個強張力必須伴隨一個穩定的強阻尼力。在我們的質點- 彈簧模型中, 阻尼力Fd(Si, j) 和兩個相連質點的速度差成正比。其公式如下: Fd(Si, j) = kd 其中, kd i, j是阻尼常數, v i和v j是兩質點Pi和Pj 的速度。在質點i 上的內力Fint可以描述爲:
其中, n 是直接連接質點i 的質點數目。
2.外力
a)重力
在我們的模型中, 我們用規則的網格描述布模型; 因此, 我們認爲每個質點有相同的質量, 該質量等於布的總質量除質點的數量。在布模擬過程中, 作用在每個質點的重力是常數。
b)空氣阻力
根據Stocke 的阻力定律, 空氣阻力Fair和質點速度的n 次冪成正比。這個定律可近似表示如下:
其中, m i 是質點的質量, kr 是定義的空氣阻力的正常數, vi 是速度矢量, 其大小爲‖vi ‖, 方向爲vdi 。在我們的模型中, 我們將指數n 選爲1, 那麼空氣阻力表示爲:
考慮重力和空氣阻力, 作用在質點上的外力可以表示如下:
這樣, 作用在質點上的總力爲:
數值方法 歐拉方法
假設m i 是質點Pi 的質量; 在時刻t, 質點的位置爲xi , 速度爲vi , 加速度爲ai , 作用在質點上的力爲F i 。根據牛頓定律, 質點的加速度和作用力存在如下的關係: Fi = miai。因此ai =Fi/m i。
爲了求出每一時刻每個質點的速度和位置, 在我們的系統中, 運用了顯式的歐拉方法。這裏要求迭代步長h 足夠小, 而且假定在每個時間段加速度爲常數。根據歐拉方法, 下一時刻( t+ h) 的速度vi ( t+ h) 和時刻t 的速度vi ( t) 存在如下關係:
vi ( t+ h) = vi ( t) + aih= vi ( t) +Fim ih
那麼, 下一時刻( t+ h) 的位置xi ( t+ h) 和時刻t 的位置xi ( t) 存在如下關係:
xi ( t+ h) = xi ( t) + vi ( t+ h) h
參考論文:《基於質點- 彈簧模型的布模擬方法》 褚蓮娣 2002
注:本文僅供學習交流使用,謝絕轉載