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


  在過去的幾十年中,基於物理的三維物體動態模擬成為了計算機圖形學的研究熱點,其中最常見的方法是基於力(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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM