物理シミュレーションのタイムステップスキーム


8

物理シミュレーションのステップに使用される操作は、最も一般的です。

  • 速度と位置を統合する
  • 衝突の検出と解決
  • 連絡先の解決(高度な場合)

少し前に私はスタンフォード大学からこの文書に出くわしました。

  • 衝突の検出と解決
  • 速度を統合する
  • 連絡先の解決
  • 位置を統合

スタッキングの問題に対する強力なソリューションを可能にするため、興味深いものです。それで不思議に思いました...

単純なものでも複雑なものでも、もしあれば、代替スキームは何ですか?それらの利点、欠点、およびパフォーマンスの考慮事項は何ですか?

回答:


2

私が長年にわたって私のために最もよく働いていることがわかったテクニックはこれです:

  • 速度を統合する

  • 衝突検出

  • 制約ソルバー(接触解決を含む)

  • 位置を統合

どうやらこれは「セミインプリシット」と呼ばれています。私が試したすべてのテクニックの中で最も安定していることがわかりました。私はこれをリトルビッグプラネットPSPの背後にある物理エンジンで使用しました。

それが役に立てば幸い!

乾杯、ポール。


「半暗黙的」に関する背景情報:gafferongames.com/post/integration_basics
mnagel

0

私が遭遇したもう1つのスキームは、次のような位置ベースのダイナミクスのスキームです。

  • 速度と位置を統合する(制約なし)
  • 衝突検出
  • 制約ソルバー(位置ベース)
  • 新しい位置から速度を更新します(基本的には、位置の場合と同じように、計算された拘束力を使用して速度を統合します)

これは確かに他のスキームがあることを示すためです。それぞれに利点があります。たとえば、PBDは布地に適していますが、半陰的速度ソルバーはリジッドに適しています。

衝突検出ステップは、位置が更新された後のどこかにある必要があります。速度の更新の前後どちらに置いてもかまいません(連続検出に速度を使用している場合を除く)。Runge-Kuttaのような高次の方法を使用すると、事態はさらに面倒になります。衝突はどこに、どのくらいの頻度で行うのですか。Kenny Erlebenは、博士論文の冒頭に、これに関するいくつかのパラグラフ(怠惰で熱心なアプローチ)があると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.