0

状況があります: オブジェクト "A" は静止オブジェクト "B" に落ちますが、"A" が "B" に着地するとき、"A" と "B" の間にスパンがあります。問題を解決するには?

4

2 に答える 2

1

Box2d は反復ソルバーを使用しており、シミュレーションの品質はシミュレーションで使用する数値に依存します。たとえば、box2d マニュアルでは、ダイナミック ボディの寸法を [0.1, 10] の範囲に保つことが推奨されています。精度0.002(コメントから)は非常に優れています。

したがって、問題を解決するには2つの方法があります。使用する測定システムを変更するか、位置および/または速度の反復を増やします。最初の方法は、計算時間が増加しないため、はるかに優れています。

于 2011-07-09T21:01:13.693 に答える
0

Box2d にはb2_linearSlopパラメータがあります (PhysX では AKA 'Skin')

物理シミュレーションの安定性を向上させるために、ジオメトリのサイズを少し追加します。多分それはあなたが説明したアーティファクトを引き起こします.

box2d のソース コードで次の文字列を探してみてください (元の box2d のフラッシュ ポートから取得しましたが、他のプラットフォームでも同じはずです)。

/**
* A small length used as a collision and constraint tolerance. Usually it is
* chosen to be numerically significant, but visually insignificant.
*/
static public const b2_linearSlop:Number = 0.005;   // 0.5 cm
于 2011-07-19T09:22:41.677 に答える