blender rauchsimulation

Feuerwerks-Tornado am helllichten Tag- Artikel in Digital Production 1603

Ein zentrales Element im Pilotfilm zu „Cosmos Laundromat“, der unter anderem einen animago AWARD abräumen konnte, ist der Tornado. Über diesen gelangt das Schaf Franck in eine andere Welt. Es ist ein bunter Tornado, der zeigt, dass auf dieser Insel wirklich alles passieren kann. Als Inspiration diente Tageslichtfeuerwerk. Dabei kann man streng genommen gar nicht von Feuerwerk sprechen, sondern eher von Rauchwerk. Denn bei Tageslichtfeuerwerk sieht man kein Feuer, sondern nur Rauch.

Erstellt wurde der Tornado von Andy Goralczyk. Sämtliche Daten, um den Film selbst neu zu rendern oder zu verändern, finden sich in der Blender Cloud.

Keine Extrawurst!

Für „Cosmos Laundromat – First Cycle“ wurde eine spezielle Version von Blender eingesetzt, die während der Entstehung des Films weiterentwickelt wurde. Für einen Nachbau des Tornados kann aber auch der Hauptzweig von Blender genutzt werden. Seit Blender 2.77 kann Rauch in Cycles sogar auf der Grafikkarte gerendert werden, sofern es sich um ein Modell von Nvidia mit CUDA-Unterstützung handelt. Heruntergeladen werden kann Blender 2.77 von der offiziellen Blender-Homepage für Windows, Mac OS und Linux in 32 und 64 Bit. Wie bei normalem Feuerwerk werden auch bei Tageslichtfeuerwerk kleine Sprengkörper in den Himmel geschossen, die dort in viele kleine Teile zerplatzen. Diese ziehen einen Schweif aus Rauch hinter sich her. Oder eine kleine Rauchwolke entsteht direkt beim Zerplatzen. Für beiderlei sind Partikel das Mittel der Wahl. Das Projekt beginnt daher mit dem Aufsetzen eines Partikelsystems.

Der Standard-Würfel bleibt!

Löschen Sie den Standard-Würfel nicht, sondern skalieren Sie ihn im Edit Mode auf 0.3 und geben Sie ihm ein Partikelsystem. Reduzieren Sie die Anzahl der Partikel auf 100 und setzen Sie die „Lifetime“ auf 10. Auf die Partikel sollte keine Gravitation wirken, setzen Sie daher den Wert für „Gravity“ im „Field Weights“-Panel auf 0.0. Um einen Schweif zu erhalten, wie bei einem richtigen Feuerwerk, und um die Bewegung der Partikel besser zu erkennen, setzen Sie den Wert „Trail Count“ im „Render“-Panel auf 200. Nun sollte der Partikel-Pfad deutlich sichtbar sein. Entfernen Sie zudem das Häkchen bei „Emitter“, damit die Würfel später nicht mitgerendert werden. Unter „Velocity“ setzen Sie „Random“ auf 0.5. Dadurch erhalten die Partikel eine zufällige Startgeschwindigkeit. Links daneben finden Sie „Object“, was Sie auf 0.3 einstellen. Dadurch übernehmen die Partikel beim Zeitpunkt ihrer Emission 30 Prozent der Geschwindigkeit des emittierenden Objekts. Im „Physics“-Panel setzen Sie „Brownian“ auf 50. Dadurch bewegen sich die Partikel auf zufälligen Bahnen durch den Raum.

 

Partikel emittieren Partikel?

Die Explosion beim Feuerwerk, welche die eigentlichen Rauch-Elemente verteilt, kann mit Blender-Partikeln nur über Umwege realisiert werden. Denn Partikel können in Blender selbst keine Partikel emittieren. Man kann diese Einschränkung aber umgehen. Zum einen über den Modifier Stack. Hierzu finden Sie ein ausführliches Tutorial auf BlenderDiplom.com. Zum anderen über Child-Particles. In diesem Artikel wird letztere Methode vorgestellt. Wählen Sie im „Children“-Panel „Simple“ aus und setzen Sie die Anzahl bei „Display“ und „Render“ auf 6. Setzen Sie den „Radius“ auf 0.8. Um den Radius im Laufe der Zeit beeinflussen zu können, wählen Sie „Use Clump Curve“. Ziehen Sie den linken Punkt der Kurve weit nach rechts. Nun bleiben die Kinder konzentriert, bis sie gegen Ende der Lebensdauer und damit auch am Ende ihres Pfades in alle Richtungen zerstäuben. Ein wenig mehr Zufall können Sie ins Spiel bringen, wenn Sie zusätzlich noch mit „Roughness“ arbeiten. Erstellen Sie dort ebenfalls eine Kurve wie beim Clump und setzen Sie die Werte für „Roughness“ auf 0.8 und für „Size“ auf 0.1. Jetzt prasselt ein richtiges Partikel-Feuerwerk im Viewport.

blender rauch simulation
Partikel emittieren Partikel? Über einen Trick, der sich Child-Particles und einer Clumping Curve bedient, kann ein Effekt erzeugt werden, als ob Partikel wieder Partikel emittieren.

Per Abkürzung zur Rauchsimulation

Stellen Sie die Render Engine um auf „Cycles Render“. Mit dem Würfel selektiert drücken Sie die Leertaste und suchen nach „Quick Smoke“. Jetzt erscheint ein Quader um den Würfel, die Domain für die Smoke-Simulation. Wählen Sie wieder den Würfel an und begeben Sie sich in die Physik-Einstellungen. Setzen Sie dort „Flow Source“ auf „Particle System“ und wählen Sie in der darunter erschienenen Box das Partikelsystem des Würfels aus. Setzen Sie zudem ein Häkchen bei „Initial Velocity“, damit die Bewegung der Partikel vom Rauch übernommen wird. Den „Flow Type“ setzen Sie auf „Fire and Smoke“. Jetzt entsteht bei den Partikeln nicht nur Rauch, sondern auch ein wenig Feuer. „Smoke Color“ setzen Sie auf eine Farbe Ihrer Wahl. Vergrößern Sie außerdem die Domain, damit mehr Platz für den Rauch da ist. Momentan steigt der Rauch noch schnell nach oben, er soll aber an seinem Platz bleiben. Wählen Sie die Domain und stellen Sie die „Temp. Diff.“ auf 0.001, was dem gleichen Wert wie dem bei „Density“ voreingestellten entspricht, nur in positiv. Dadurch nivellieren sich die beiden Effekte nahezu, was sowohl dazu führt, dass der Rauch nicht mehr aufsteigt, aber auch zu ganz leichten, turbulenten Bewegungen, da der Rauch nicht zwingend da am wärmsten ist, wo er auch am dichtesten ist. Damit durch die Partikel nicht immer mehr Rauch in die Szene geblasen wird, schalten Sie „Dissolve“ ein und setzen Sie den Wert auf 100. Schalten Sie zudem „Smoke Adaptive Domain“ ein, um den Rauch ein wenig schneller berechnen zu können.

blender rauch simulation
Der fertige Tornado-Shader – dieses Node Setup kümmert sich um das Shading des Tornados. Dabei werden sowohl Rauch als auch Feuer abgehandelt.

Round, round, baby, round, round

Jetzt ist der erste Emitter bereits fertig. Später wird er noch dupliziert und mit verschiedenen Farben versehen. Als Nächstes soll sich der Rauch wie bei einem Tornado drehen. Diesen Effekt erreichen Sie über einVortex Force Field. Für mehr Kontrolle wird das Kraftfeld von einer Kurve gesteuert. Fügen Sie eine Bezier Curve hinzu und setzen Sie Start- und Endpunkt so, dass sie in der Mitte der Domain vom Boden bis zur Decke reicht. Unter den Physik-Einstellungen wählen Sie „Force Field“, setzen den Typ auf „Vortex“, die „Shape“ auf „Curve“ und erhöhen Sie die „Strength“ auf 4.0. Jetzt bewegt sich der Rauch in Form eines Tornados. Allerdings bewegt sich der Rauch dabei vom Emitter weg nach oben und unten. Ziel ist aber, dass der Tornado von oben her beginnt zu wachsen. Die Lösung liegt darin, den Emitter von oben nach unten zu bewegen. Über einen Modifier gelingt das sogar entlang der Kurve. Falls Sie den Würfel inzwischen bewegt haben, setzen Sie ihn über das Tastenkürzel Alt+G zurück in den Ursprung. Wählen Sie nun zuerst den Würfel an, danach die Kurve und drücken Sie Alt+P. Im Menü, das erscheint, wählen Sie „Curve Deform“. Jetzt sind die Kurve und der Würfel in einer Eltern-Kind-Beziehung und zusätzlich sollte der Würfel beim Bewegen der Kurve folgen und sich dabei auch noch deformieren. Das Ganze dürfte aber noch etwas seltsam aussehen. Wählen Sie wieder den Würfel an und begeben Sie sich zu den Modifiern im Properties Panel (der kleine blaue Schraubenschlüssel). Wählen Sie beim „Curve De-form“ Modifier Z oder -Z als „Deformation Axis“. Wenn Sie den Würfel jetzt nach oben oder unten bewegen, folgt er der Kurve. Setzen Sie den Curve Deform-Modifier noch mittels des Pfeil-nach-Oben-Symbols ganz an den Anfang des Modifier Stacks, damit das Partikelsystem der Bewegung ebenfalls folgt. Damit Sie später mehrere Emitter gleichzeitig bewegen können, fügen Sie ein Empty hinzu, wählen den Würfel und danach das Empty aus und wählen diesmal unter „Set Parent“ direkt „Object“. Jetzt können Sie das Empty bewegen und der Würfel folgt entlang der Kurve. Sie können zudem den Würfel mit Shift+D duplizieren und die Duplikate an unterschiedliche Stellen um die Kurve herum setzen. Platzieren Sie die Emitter dabei auch über- und untereinander, damit sich die Emitter später während der Animation entlang der gesamten Kurve verteilen können. Wenn Sie jetzt das Emtpy bewegen, folgen sämtliche Emitter der Bewegung und Sie können jedem einzelnen Emitter eine eigene „Smoke Color“ geben, damit der Tornado richtig schön bunt wird. Animieren Sie nun die Bewegung der Emitter, indem Sie sich zum ersten Frame in der Timeline begeben (Umschalt + Pfeil links) und das Empty so platzieren, dass sich die untersten Würfel am oberen Ende der Kurve befinden. Setzen Sie ein Keyframe über die Taste I, wo Sie „Location“ wählen. Begeben Sie sich dann zu einem späteren Zeitpunkt in der Timeline, zum Beispiel Frame 180, bewegen Sie das Empty so weit, dass die Emitter das untere Ende der Kurve erreicht haben, und setzen Sie ein weiteres Keyframe für die Location.

Backe, backe Tornado

Jetzt ist es an der Zeit, die Simulation zu backen. Wählen Sie die Domain und setzen Sie die Resolution in den Smoke-Einstellungen auf mindestens 128 und schalten Sie „Smoke High Resolution“ an. Die High Resolution fügt nur zusätzliche Details hinzu, ändert aber nichts an der grundsätzlichen Bewegung des Rauches. Der Standardwert für die Divisions von 1 bringt schon gute Ergebnisse, je nachdem wie Ihre Workstation mit Arbeitsspeicher ausgestattet ist, können Sie den Wert auf bis zu 4 erhöhen. Noch höhere Werte sollten in diesem Beispiel kaum noch eine sichtbare Verbesserung des Ergebnisses hervorbringen.

blender rauch simulation
Das Render-Ergebnis des Workshops bei einer Domain-Auflösung von 128 mit einer High Resolution von 1. Für den Film wurden deutlich höhere Auflösungen gewählt. Der Tornado kann als Asset behandelt und in andere Projekte importiert werden.

Ansichtssache

Wählen Sie die Lampe, die sich standardmäßig in der Szene befindet, und ändern sie den Typ auf „Sun“, damit eine starke und gleichmäßig gerichtete Beleuchtung vorhanden ist. Wenn Sie jetzt die Viewport-Ansicht auf „Rendered“ einstellen, sehen Sie bereits ein passables Ergebnis. Sie können es aber noch deutlich verbessern, indem Sie den Shader bearbeiten. Wechseln Sie in das Compositing Layout und wählen Sie Shader Nodes. Der bisher vorhandene Node-Tree bildet bereits eine gute Basis. Links sind zwei Attribute Nodes, die die Daten für die Dichte und Farbe des Rauches liefern. Der Color-Ausgang des oberen Nodes ist schon mit zwei anderen Nodes verbunden, später sollen es drei werden. Hier können Sie etwas aufräumen, indem Sie mit gedrückter Shift-Taste über die beiden Verbindungen ziehen. Es entsteht an der Stelle ein Reroute-Knoten. Diesen können Sie über die Taste G an eine andere Stelle bewegen. Es besteht jetzt nur noch eine Verbindung zwischen dem Color-Ausgang des Attribute Nodes und dem Reroute-Knoten. Setzen Sie dorthin einen „Hue Saturation Value“ Node und setzen Sie die Saturation auf 2.0. Jetzt ist der Rauch deutlich bunter. Es kann aber sein, dass er einen dunklen Saum aufweist. Diesen können Sie entfernen, indem sie zwischen den „Fac“-Ausgang des Attribute Nodes mit dem Wert für „Density“ und dem folgenden „Multiply“ Node eine „Colorramp“ einfügen und den Regler für Schwarz ein wenig nach rechts ziehen, bis der dunkle Saum um den Rauch verschwunden ist. Nebeneffekt: Der Rauch sieht noch mehr nach Tageslichtfeuerwerk aus. Setzen Sie den Wert in dem Multiply Node auf 10.0, um den Rauch dichter erscheinen zu lassen.

Feuer(!)werk

Jetzt fehlt noch das Feuer. Duplizieren Sie einen der Attribute Nodes und schreiben Sie „Flame“ in das Feld. Jetzt gibt sie die Flammendaten der Simulation aus. Duplizieren Sie den Multiply Node und verbinden Sie ihn mit dem Fac-Ausgang des Attribute Nodes für das Feuer. Setzen Sie hier den Wert auf 5.0. Fügen Sie jetzt einen Emission-Shader hinzu und verbinden Sie ihn mit dem freien Input-Socket des zweiten Add Nodes. Verbinden Sie den Ausgang des Multiply Nodes mit dem „Strength“-Eingang des Emission Shaders und den Reroute-Knoten mit dem Color-Eingang. Damit ist das Shading abgeschlossen und der Tornado kann gerendert oder in eigene Projekte eingefügt werden.

blender rauch simulation
Der Grundaufbau des Tornados besteht aus einer Smoke-Domain, in der sich eine Bezier Curve befindet, der ein Vortex Force Field hinzugefügt wurde. Die Kurve dient auch als Curve Guide für eine Reihe von Emittern, die an ein Emtpy geparented sind, damit sie leicht entlang der Kurve von oben nach unten animiert werden können. Jeder der Emitter hat ein Partikelsystem.

In diesem Workshop wurde gezeigt, wie der Tornado aus „Cosmos Laundromat – First Cycle“ erstellt wurde. Der Film bietet aber noch mehr interessante Assets und Effekte. Zum Beispiel die Wolken, Francks Fell oder der Ast, den er hinter sich her zieht. Die Quelldateien zum gesamten Film sowie zahlreiche Tutorials finden sich auf der Blender Cloud, welche für den Betrag von 10 Euro im Monat abonniert werden kann und wo man auch die Quelldateien und Tutorials aller weiteren vom Blender Institute produzierten Kurzfilme unter der sehr liberalen Creative-Commons-Lizenz CC-BY findet. Die Texturen sind zudem gemeinfrei respektive CC0-lizenziert.

 

Dieser Artikel erschien im Magazin Digital Production, Ausgabe 1603. Herunterladen können Sie ihn hier als PDF.