# Flamme simulieren



## paulee (22. Nov 2008)

Hallo Leute,


gibt es in Java3d die Möglichkeit eine Flamme zu simulieren?

Ich dachte an ein Lagerfeuer oder sei es nur eine einfache Flamme einer Kerze.

Bislang fehlt mir eigentlich jeglicher Ansatz, darum zaehle ich auf ein paar Erfahrungswerte eurerseits 

Ueber jeden denkanstoss/tip wuerde ich mich freuen


----------



## Soulfly (23. Nov 2008)

Schau dir vielleicht mal Tutorials zu Partikelanimationen an, damit müsstest du was anfangen können. Ich selber hab Partikelanimationen eher immer mit JOGL gemacht aber denke es sollte auch mit Java3D funktionieren. Viel Spaß beim Parameterspielen ^^

MfG Soulfly


----------



## Marco13 (23. Nov 2008)

Die Mgölichkeit gibt es oder gibt es nicht, unabhängig von Java3D. An einer Sekunde Simulation einer Flamme könnte ein Großrechner Jahre rechnen, und trotzdem hätte er die Realität nur oberflächlich angenähert. Wenn du irgendwas machen willst, was auf den ersten Blick die Assoziation "Feuer" hervorruft: Da gibt's sicher Literatur im Bereich CFD bzw. den schon angesprochenen Partikelsystemen. Wenn es noch billiger sein soll: DAS geht natürlich immer :wink:


----------



## paulee (23. Nov 2008)

danke schonmal fuer die Ansaetze...

Naja, klar muss es nicht hyperrealistisch wirken...es soll halt einfach ein feuerchen darstellen. Hatte schon an ein farbenwechselndes flackerndes polygoenchen gedacht  ...aber das ist das doch ZU billig.

Naja Partikelsysteme, da muss ich mich erstmal einlesen wie das in java funkt. Hab auch nur lediglich was von SUN gefunden, wo ein Springbrunnen mit wasserpartikeln beschrieben wird. Vielleicht ist das ein Ansatz.

Ich bin recht fit in 3dstudiomax und koennte mir natuerlich da was machen.... aber eigentlich wollte ich das mal rein in java3d machen 


Im Netz findet man echt sehr wenig darueber, was mich ehrlich gesagt ein bisschen wundert.

 :meld:


----------



## Marco13 (23. Nov 2008)

Ein Ansatz, der für kleine Flammen ..  :? hm - akteptabel aussieht, oder zumindest ein gutes Aufwand-Nutzen-Verhältnis hat: 

Man kann die Feuer-Farben "durchnummerieren", z.B. 
0 für dunkel-glut-rot (unterer Rand)
50 für leuchtend gelb (Flammenmitte)
99 für dunkelgelb, fast schwarz (Flammenspitze)
100 schwarz

Dann kann man in einer Textur den unteren Rand (d.h. NUR die unterste Pixelzeile) mit zufälligen Farben belegen, etwa Werten von 0 bis 10. Dann geht man nach oben durch die Textur, und berechnet die Farbwerte für die Pixel: Der Pixel p[x,y] bekommt als Farbwert
p[x,y] = ((p[x-1,y-1] + p[x,y-1] + p[x+,y-1]) / 3) + 5 + random(5)
oder Bildlich:

```
A
B C D
```
Der Farbwert von A ist eine Mischung aus B,C und D, ein bißchen heller gemacht, und ein bißchen "Zufall" dazu. Die "heiße Luft" die man damit am unteren Rand (in Form von kleinen Farbwerten) vorgegeben hat, steigt damit nach oben. Für die Berechnung des Farbwertes kann man natürlich beliebig weiter ins Detail gehen. Das ganze wird dann in einer Schleife animiert, wobei natürlich in jedem Schritt am unteren Rand der Textur neue, zufällige Farben eingefügt werden...

Das sieht erstmal nicht sooo grandios aus, insbesondere, wenn man damit "große" Flammen simulieren will, aber wenn man so eine Textur auf 3, 4 "feuermäßig" geformte Polygone pappt, und die z.B. sternförmig anordnet, könnte ein hübsches Lagerfeuerchen rauskommen....


----------

