2011-01-28 5 views
3

私は最近、スクリーンセーバーやゲームのために現実的な(2D)lava lampのようなアニメーションを作成する方法を知りました。溶岩ランプのようなアニメーションを作成する

もちろん、偏微分方程式を使って溶岩ランプの物理をモデル化し、それをコードに変換することは可能です。しかしながら、これは、(ワックスの「ブロブ」の幾何学的形状の不規則性および変数の数が多いことに加えて、いくつかの要因のために)非常に困難であり、リアルタイム。

アニメーションにある程度のランダム性(または確率性)を持たせたいので、分析ソリューションが見つかった場合は同様に役に立たなくなります。

だから、現実的な外観のアニメーションを可能にするアプローチは誰でも考えることができます溶岩ランプは、典型的なデスクトップ/ラップトップコンピュータではリアルタイムで(例えば10-30FPS)物理学をどのように詳細にモデル化しなくてもかまいませんか?言い換えれば、「チート」する方法はありますか?

答えて

6

不正行為の1つの方法は、ブロブの動きをシミュレートするために、適切に選択された遷移テーブルを持つ確率的なcellular automatonを使用することです。いくつかの一般的なスクリーンセーバー(特にParticleFire)は、このアプローチを使用して、オブジェクトを個々のピクセルに分割し、隣り合ったピクセルの状態を見ることによって個々のピクセルがどのように遷移するかを定義することによって、2D空間で複雑なモーションをエレガントにシミュレートします。例えば、Conway's game of lifeや、simulation of a forest fireを見れば、簡単なセルオートマトンでかなり緊急な動作を得ることができます。

+0

+1。セルオートマタの岩。 – nmichaels

4

LavaLiteはオープ​​ンソースです。ほとんどのLinuxディストリビューションでは、xscreensaver-glパッケージを使用してコードを取得できます。それはmetaballsを使用します。

+0

これは原理的には良いアイデアのようですが、依然として計算上の問題があります。しかし、徹底的なモデルよりも安い道。私は本当に自分自身を見つけたはずです、私は私のGoogle-Fuで作業する必要があります!メタボールの興味深い読書+1。 awesomenessのための –

関連する問題