1. 程式人生 > >小球自由落體動態模擬(Position Based Simulation)

小球自由落體動態模擬(Position Based Simulation)

距離 4行 graphic graph 過去的 快速 images 過去 forum

  在過去的幾十年中,基於物理的三維物體動態模擬成為了計算機圖形學的研究熱點,其中最常見的方法是基於力(force-based)的模擬方法,比如彈簧質點模型http://www.cnblogs.com/shushen/p/5473264.html,它把物體抽象成一系列質點以及連接這些質點的彈簧,然後通過離散化牛頓運動定律來模擬物體的運動情況。最近,基於位置的模擬方法在剛體、彈性體以及流體模擬方面都取得了不錯的效果,基於位置(position-based)的模擬方法雖然沒有基於力的模擬方法計算準確,但是它計算快速穩定,使其適用於實時交互應用領域。下面將詳細介紹基於位置模擬算法的主要原理。

技術分享

  基於位置的模擬方法將研究物體抽象成N

個粒子和M個限制條件的集合,整個算法流程如上圖所示。首先初始化每個粒子的位置xi0和速度vi0(第1-3行),然後對於時間步長Δt而言,通過歐拉積分方法得到粒子下一時刻新的位置(第5-6行),新的位置pi並不是下一時刻的最終位置,而是下一時刻的預測位置,接著生成限制條件(第7行),並通過叠代方法不斷修正預測位置pi使其滿足限制條件(第8-10行),最後利用修正後的預測位置更新下一時刻的最終位置xi和速度vi(第11-14行)。

  假設限制條件:C(x) = 0,一階泰勒展開得到:技術分享,於是位置修正量為:技術分享

技術分享

  一種最簡單的限制條件是距離限制,以兩個粒子為例,其距離限制函數為:

技術分享

  那麽距離限制函數對各自的位置導數分別為:

技術分享

其中技術分享

  於是可以得到粒子的位置修正量為:

技術分享

技術分享

技術分享

本文為原創,轉載請註明出處:http://www.cnblogs.com/shushen。

參考文獻:

[1] Bender, Jan, et al. "A Survey on Position-Based Simulation Methods in Computer Graphics." Computer Graphics Forum 33.6 (2014): 228-251.

小球自由落體動態模擬(Position Based Simulation)