複数のアトラクタを処理できる物理エンジン?


9

主に立体重力でプレイするゲームをまとめています。

つまり、現実的に振る舞う複数の惑星/星/月、および重力場における経路のプロットと経路の予測を意味します。

私はBulletトカマクニュートンなどのさまざまな物理エンジンを見てきましたが、それらのフレームワークで基本的に重力エンジンを書き直す必要があるため、どれも適切ではないようです。

互いに引き付け合う複数のボディを処理できる物理エンジンを知っていますか?

シーングラフの管理やレンダリングは必要ありません。コアフィジックスだけです。(剛体ダイナミクスと同様に、衝突検出はおまけです)。


私のバックグラウンドは物理学なので、Verlet統合またはRK4(または必要に応じてオイラー統合)を使用するエンジンを作成できますが、既成のソリューションをかなり適応させたいと思います。

[編集]:n-bodyの問題の物理シミュレーションのための優れたリソースがオンラインおよびスタックオーバーフローにあります


7
単純にBulletを使用して、なんとかして標準の重力を無効にできませんか?(たとえば、applyGravityの呼び出しを避け、ゼロベクトルを使用してsetGravityを呼び出し、BT_DISABLE_WORLD_GRAVITYを使用してください...)目的の効果が重力の形になっているからといって、基礎となる物理エンジン。
Neverender

ある種の逆スプリングを使用することができます
Roy T.

1
@RoyT。ばね自体はdに比例する力を持っていますが、重力はd ^(-2)です(d ^(-1)でもありません)。軌道は両方から取得できますが、特性は大きく異なります。「エンジンによって提供される距離ベースの制約を使用する」という意味だけであれば、はい—逆二乗制約がある場合。
Kevin Reid

@KevinReidあなたはおそらく正しいですが、私はあなたの説明を得るかどうかわかりません。ばねの力は距離に線形に依存し、重力は逆二乗に依存するということですか?
ロイT.

1
Osmosは素晴らしい小さなゲームです。私が見つけた最高のものはこのインタビュー
でした

回答:


2

三体問題では安定した軌道が得られないため、従来のタイムスライス物理エンジンを使用できるとは思いません。

あなたはステラリウムや他の天文学パッケージから物理エンジンをヤンクできるかもしれません。

ただし、最善の方法は、単に惑星の軌道を焼き、テーブルから引き出すことだと思います。あなたのプレーヤーが実際に彼の行動によって惑星の軌道に影響を与えられない限り、完全なシミュレーションをする意味はありません。


実際、N体問題に関して、安定した軌道得ることができます。統合の方法によって異なります。verletとRK4の両方で安定した軌道を管理しました。
ブライス

パスを事前に計算することは公正な提案ですが、動的にシステムを動的に生成したいと思います。また、惑星は本当に私が心配しているものではありません。私は実際にが重力の影響を受けることを望んでおり、これらはプレイヤーの制御下にあるため、経路を事前に計算することができません。
ブライス

記録のために、安定した軌道を取得する方法は、対称的なシステムを作ることです。また、不安定性のタイムスケールは、平均的なゲームの長さよりもはるかに長くなります。(数
百から数千

安定した軌道の例については、こちらを
ご覧ください

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