3

マニュアルには、小さな単位 (0.1 ~ 10 メートル) を使用する必要があると記載されています。測定単位としてピクセルを使用することはお勧めしません。しかし、なぜ Box2D は、小さいユニットを使用する場合よりもうまく機能し、シミュレーションが優れているのでしょうか?

4

3 に答える 3

10

Box2D は、MKS 単位系を内部的に使用するシミュレーション フレームワークです。信頼性が高く予測可能なシミュレーションが必要な場合は、作成するシミュレーション システムをこの単位系内の妥当な値で表現する必要があります。箱は箱のように振る舞い、岩は岩のように振る舞い、球は球のように振る舞います。

ピクセルを単位として、スカラー質量値が 10 の 20 x 20 ピクセルのボックスがある場合、実際には長さ 20 メートルの辺を持つボックスが作成され、質量はわずか 10 キログラムになります。本質的に、シミュレーションを設定して現実的に動作させるのが難しくなります。

ピクセルを単位として使用することを妨げるものは何もありません。しかし、信頼性が高く、自然に、予測どおりに動作するためには、シミュレーション フレームワークに供給される値を、期待される単位で合理的な境界内で表現する方が、より適切で簡単です。

于 2012-05-18T16:53:11.610 に答える
2

おそらく、ピクセル数がデバイス/ディスプレイ間で変わる可能性があるため、信頼性がありません。たとえば、iPad1で10ピクセルを移動した場合、iPad3では解像度が高い(1インチあたりのピクセル数が多い)ため、iPad3で10ピクセルを移動した場合よりもさらに移動します。メーターを使用すると、物理エンジンに信頼性の高い測定単位が提供され、すべてのデバイス/ディスプレイで一貫性が保たれます。

于 2012-05-18T16:47:16.540 に答える
2

ここから撮影

Box2D 物理オブジェクトは、長さと幅がメートル単位で定義されます。Box2D は、1x1 メートル サイズのオブジェクト用に調整されています。PTM (ピクセルからメートル) が必要な理由は、ピクセル サイズとメートル サイズの間に 1 対 1 の相関関係を持たせたくないからです。

たとえば、長さ 200 ピクセル、高さ 50 ピクセルの車があり、PTM 変換を使用しなかった場合、200 メートル x 50 メートルの Box2D 車を作成することになります。これは長さ 656 フィート、つまりセミトラック 12 台分の長さです。この車を動かすために必要な力を想像してみてください。

あなたが望むのは、Box2D のピクセル サイズをメートルの寸法に縮小することです。ほとんどの場合、1 メートルに対して 30 または 32 ピクセルの PTM を使用することになります。

Box2D が 1 メートルに最適に調整されている理由は、数値 1 の計算が他の数値の操作よりも高速であるためだと思います。例: root(1) = 1. (根は物理エンジンでは一般的な計算です)。したがって、最も一般的なオブジェクトのサイズが 1X1 メートルになるように、PTM 比率を微調整する必要があります。

Box2Dのドキュメント セクション 1.7   にもいくつかの洞察があります。

Box2D は浮動小数点数で動作し、Box2D を適切に実行するには許容誤差を使用する必要があります。これらの公差は、メートル - キログラム - 秒 (MKS) 単位で適切に機能するように調整されています。特に、Box2D は 0.1 ~ 10 メートルの移動オブジェクトでうまく機能するように調整されています。これは、スープ缶とバスの間のサイズのオブジェクトがうまく機能することを意味します。静的オブジェクトは、それほど問題なく最大 50 メートルの大きさになる場合があります。

于 2012-05-18T16:57:30.260 に答える