2010年4月15日木曜日

粒子ベース多体衝突シミュレーション

いま、粒子ベースのアプローチで多体衝突シミュレーションを実装しています。



剛体を粒子の集まりとして表現することで、衝突判定と応力の計算を行います。

この方法の強みは、ポリゴンベースのアプローチに比べて、アルゴリズムが単純なことと、複雑な形の物体について効率良くシミュレーションできることです。

上のムービーでは立方体の衝突をシミュレーションし、立方体を表現するために使っている粒子をそのままレンダリングしています。

■関連する記事
粒子法のプログラム第1回(概要)
粒子法のプログラム第2回(プログラムの大枠)
粒子法のプログラム第3回(データ構造)
粒子法のプログラム第4回(密度と圧力の計算)
粒子法のプログラム第5回(力の計算)
粒子法のプログラム第6回(境界条件と粒子位置の更新)
粒子法のプログラム最終回(粒子の出力)
【粒子法】粒子を流体としてレンダリング
3次元の粒子法シミュレーション
粒子法のシーンを2倍のサイズにしてみたが…
粒子法のシーンを2倍のサイズにしてみた
SPHによる巻き波のシミュレーション2
-

2 件のコメント:

匿名 さんのコメント...

SPHプログラムを大変参考にさせてもらっています。

剛体同士の接触応力についてご教授ください。

流体では、壁との境界条件をペナルティ法を使って表現していますが、剛体同士の接触でもペナルティ法を使っているのでしょうか?
そのとき、剛体間の粒子の相互作用をどのように計算しているのでしょうか?

願わくば、この多体衝突のプログラムを拝見させていただければと思います。

Unknown さんのコメント...

多数の立方体を閉空間に無秩序に閉じ込めて、
揺動させると立方体は互いに面接触して、
ほとんど隙間なく、
秩序配列してしまいそうですが、
そのシミュレーションをやっていただけますでしょうか。