さまざまなオブジェクトの周りを流れる流体の半現実的なシミュレーションを必要とするゲームのアイデアがあります。さまざまな方向に傾いている不規則な表面にある水銀のプールを考えてみてください。
これはゲーム用なので、100%物理的なリアリズムは必要ありません。最も重要なことは、iPhoneの馬力を備えたデバイスでリアルタイムに計算を実行できることです。
ある種のセルオートマトンやパーティクルシステムが道だと思っていますが、どこから始めればいいのかわかりません。
助言がありますか?
さまざまなオブジェクトの周りを流れる流体の半現実的なシミュレーションを必要とするゲームのアイデアがあります。さまざまな方向に傾いている不規則な表面にある水銀のプールを考えてみてください。
これはゲーム用なので、100%物理的なリアリズムは必要ありません。最も重要なことは、iPhoneの馬力を備えたデバイスでリアルタイムに計算を実行できることです。
ある種のセルオートマトンやパーティクルシステムが道だと思っていますが、どこから始めればいいのかわかりません。
助言がありますか?
格子ボルツマン法は、離散化されたセル オートマトンのような方法で流体をシミュレートするための非常に一般的な方法です。
ただし、iPhone でのリアルタイム パフォーマンスのためには、流体をパーティクル システムとしてシミュレートしてから、パーティクルを体積質量としてレンダリングする方法を考え出す方が効果的かもしれません。これは、 Aqua Forestなどのゲームで採用されているアプローチだと思います。
これは私の研究分野ではありませんが、これは標準的な作業と見なされていると思います。
コンピュータグラフィックスの流体シミュレーション
https://www.routledge.com/Fluid-Simulation-for-Computer-Graphics/Bridson/p/book/9781482232837
また、Berkeley Animation andModelingGroupもご覧ください。
https://web.archive.org/web/20090116020253/http://www.cs.berkeley.edu/b-cam/
また、Google ScholarやCiteseerのようなツールをお勧めし、学術文献を説得します。
おそらく、パーティクル システムから始めるのがよいでしょう。これらの線に沿って、SPH (平滑化粒子流体力学) を、まだ粒子に依存している流体シミュレーションへのもう少し物理的なアプローチとして調べることができます。
Ron Fedkiwの作品は、この分野で非常に素晴らしいものです。
もう1つのコメント:流体シミュレーションは、数値並列プログラミングとスーパーコンピューター、または少なくとも高出力のマルチコアデスクトップのものです。iPhoneはおそらくそれをカットしません。
パーティクルを使用した SPH は、粘弾性やその他のものへの拡張性で有利なスタートを切ることができ、おそらく最速で稼働します。このトピックについてここ数日間書いてきたガイドを、明日のブログで公開します。( http://blog.brandonpelfrey.com )
アーチャー・マクリーンのマーキュリーやPSPのマーキュリー・メルトダウンのようなものを考えているのだろうか.
ゲームDe Blobで私が知る限り、色付きの「ブロブ」が白い環境の周りを移動し、ぶつかったオブジェクトに色を付けます。あなたがやりたいと思われることについてのあなたの説明を読んだとき、これはどういうわけか私の心の中で引き起こされました。(実際にプレイしたことがないので、そのフィット感はわかりません。)
そうは言っても、ブロブの流動性はそのゲームではほとんど人工的であることを思い出しているようです。基本的には球であり、そのサイズ/形状のわずかな変換、いくつかのモーションキュー、およびプレーヤーに印象を与える「流動的な音」の追加です。しっかりしていない何かがゲームの主人公であること。実際の物理やシミュレーション タイプのプログラミングは含まれていません。
iPhoneで実行可能なソフトウェアにぴったりのように思えます。それはおそらくあなたにとって十分でしょうか?
粒子をモデル化する必要があるほどまばらですか?
その場合は、 Lattice-Gas Cellular Automata (LGCA、こちらのサンプル ビデオを参照) をご覧になることをお勧めします。
要するに、LGCA はセル オートマトンのサブクラスであり、セルの状態はバイナリ値のタプルであり、それぞれがセルとその隣接セルの間のチャネルを表し、粒子が通過できます (粒子が1
含まれている場合はチャネル、それ以外の0
場合)。
更新スキームは、各セル内のチャネル間で粒子を再編成し (衝突)、これらの粒子をターゲットの隣接チャネルの対応するチャネルに伝搬する (伝搬) 同期並列 2 ステップ機能です。
グリッドベースのナビエ・ストークス解は常に高速で、計算速度は一定です。