Dein eigenes Partikelsystem mit Simulation Nodes- Artikel in Digital Production 2304
Featured

Dein eigenes Partikelsystem mit Simulation Nodes- Artikel in Digital Production 2304

Das Logo der Digital Production hat in letzter Zeit einiges mit­machen müssen. Es wurde in Houdini mit einem nassen Handtuch beworfen und in Tyflow zu Erde gemacht. Und jetzt wird es in Blender angezündet – wo soll das enden?

Es gibt Features in Blender, auf die warten die Nutzer seit Jahrzehnten. Dazu gehörte bisher ein von Grund auf neu entwickeltes Partikelsystem. In Blender 3.6 ist jetzt endlich eine Alternative zu den in die Jahre gekommenen, herkömmlichen Partikeln verfügbar: Die „Simulation Area“ in den Geometry Nodes. Als Nebeneffekt können damit nicht nur Partikel simuliert werden, sondern auch Cloth, Soft Bodies usw., allerdings muss man die Simulation noch quasi von Grund auf per Hand erstellen, was wir in diesem Artikel am Beispiel eines Partikelsystems durchspielen werden.

Brenne, Logo, brenne!

Als konkretes Beispiel soll ein Objekt in Flammen aufgehen, denn auch die Feuersimulation in Blender hat so ihre Macken, daher nutzen wir ganz oldschool eine Partikelsimulation für einen stilisierten Feuereffekt. Als Beispielobjekt dient das Logo der Digital Production, Sie können aber auch jedes andere 3D-Objekt verwenden.

Was ist eigentlich eine Simulation in Blender?

In Blender sind alle Prozesse eine Simula­tion, deren Zustand in einem Frame vom Zustand im vorhergehenden abhängt. Dazu zählen klassischerweise Partikel, Cloth, Soft Bodies, Rigid Bodies, Feuer, Wasser, Rauch und die Blender-Besonderheit „Dynamic Paint“. Dem stehen Werk­zeuge wie die Modifier aus den Kategorien „Modify“, „Generate“ und „Deform“ sowie die Geometry Nodes gegenüber, bei denen jedes Frame unabhängig von den Restlichen ist.

Simulation Zone

In besagten Geometry Nodes kann man in Blender 3.6 jetzt eine sogenannte „Simulation Zone“ einrichten, das ist der Bereich, in dem die Simulationen ablaufen. Das kann man sich folgendermaßen vorstellen: Am Ein­gang der Simulation Zone kann man Daten zuführen. Diese werden einmalig ausgelesen und bleiben ab da in der Simulation Zone. Am Ausgang lassen sich verarbeitete Daten ausgeben, diese werden dann im nächsten Frame über den Eingang wieder in die Simulation Zone geschickt und können dort weiterbearbeitet werden. Das kann die Position eines Partikel sein, aber auch seine Größe oder irgendeine andere Eigenschaft, auf die man mit Geometry Nodes Zugriff hat. Ein Ändern der Größe mit der Lebensdauer eines Partikels war bisher zum Beispiel gar nicht möglich. Dank der Geometry Nodes haben wir jetzt fast vollständige Freiheit, was den Aufbau von Partikelsystemen angeht. Diese geht allerdings noch mit der Auflage einher, dass man alles selbst erzeugen muss. Auf Seiten der Geometry Nodes findet man in Blender 3.6 eigentlich nur die Simulation Zone und die dazugehörigen Features wie Baking, aber noch keinerlei High-Level-Werkzeuge wie Emitter oder Kraftfelder. Diese werden wahrscheinlich in Zukunft als Nodegroup-Assets nachgeliefert, ähnlich den Hair Assets, die in Blender 3.5 Einzug gehalten haben. Bis dahin ist aber Handarbeit angesagt.

Der Default Cube darf bleiben

Erzeugen Sie eine neue Szene und lassen Sie den Default Cube ausnahmsweise am Leben. Er soll als Container für unser Partikelsystem fungieren. Geben Sie ihm am besten mit dem Shortcut F2 einen passenden Namen wie „Particle Nodes Container“. Wechseln Sie dann in den Geometry-Nodes-Workspace und klicken Sie auf „New“, um einen neuen Node Tree zu erzeugen. Vergeben Sie auch hier einen passenden Namen wie „Fire Particle System“.

Enter the Zone

Erzeugen Sie mit „Shift+A – Simulation – Simulation Zone“ einen Unterbereich, in dem sich später die Simulation abspielen wird. Diese ist weinrot hinterlegt und verfügt über einen eigenen Eingang und Ausgang. Wenn man Nodes zwischenschaltet, wird der hinterlegte Bereich größer. Nodes, die sich innerhalb befinden, haben Zugriff auf Simulationsdaten und sind selbst Teil der Simulation. Nodes von außerhalb können mit den Nodes in der Zone  verbunden werden, haben dann aber selbst keinen Zugriff auf die Simulation, was sich später noch als praktisch herausstellen wird.

Punkte auf Flächen verteilen

Ein Partikelsystem basiert auf Punkten, daher ist unsere erste Amtshandlung, solche hinzuzufügen. Als Emitter soll vorerst noch die Geometrie des Default Cubes dienen. Fügen Sie eine „Point – Distribute Points on Faces“-Node hinzu und setzen Sie sie zwischen die Geometry Ein- und Ausgänge der Simulation Zone. Noch sollte aber nichts passieren, da die Simulation Zone noch mit nichts verbunden ist. Ziehen Sie den Geometry- Ausgang der Simulation Output-Node auf den Geometry-Eingang der Group Output-Node und den Geometry-Eingang der Group Input-Node auf den gleichnamigen Eingang der Simulation Input-Node. Sofern der Playhead in der Timeline auf Frame 1 steht, sollten jetzt Punkte im Viewport erscheinen.

Mein erstes Partikelsystem: quasi das „Hello World“ unter den Partikel-Systemen. Auf den Flächen des Würfels werden Partikel verteilt, die in den folgenden Frames nach oben wegfliegen dank des Offsets in der Set Position-Node.

 

In Bewegung setzen

Die Punkte bewegen sich aber noch nicht, sprich, wir haben zwar ein Partikelsystem, aber noch keine Simulation. Es fehlt noch eine Node, die die Position der Partikel in jedem Frame verändert bzw. updated. Fügen Sie eine Node „Geometry – Write – Set Position“ hinzu und platzieren Sie sie zwischen dem Points-Ausgang der Distribute Points on Faces-Node und dem Geometry-Eingang der Simulation Output-Node. Setzen Sie unter „Offset“ den Wert für Z auf 0.1. Wenn Sie nun die Animation ab Frame 1 starten, bewegen sich die Partikel mit konstanter Geschwindigkeit nach oben, da in jedem Frame 0.1 zur Z-Position dazu addiert wird.

Mein erstes eigenes Partikelsystem

Glückwunsch, Sie haben soeben Ihr erstes eigenes Partikelsystem mit den Blender Simulation Nodes erstellt. Es besteht aus einem Emitter, der Partikel auf den Flächen des Eingangsobjekts verteilt. Diese Partikel werden in jedem Frame um einen konstanten Faktor nach oben verschoben. Der Aufbau entspricht einem Legacy-Blender-Partikelsystem, bei dem Start und Ende der Partikelemission auf den gleichen Frame fallen.

Einfluss von Außen

Eine andere typische Form, Partikel zu emittieren, ist die wiederkehrende Emission über mehrere Frames, quasi ein Inflow-Objekt. Das ist auch die Voreinstellung des Legacy-Partikelsystems. In den Simulation Nodes müssen wir dafür aus dem Simulationsbereich heraus, um von außen regelmäßig neue Partikel hinzuzufügen. Dafür ist ein weiteres Objekt notwendig. An dieser Stelle wird der bisherige Würfel zum Container des Partikelsystems und ein anderes Objekt übernimmt die Rolle des Emitters.

Ist doch Logo!

In unserem Beispiel verwenden wir das DP-Logo, Sie können aber beliebige Mesh-Objekte nutzen. Fügen Sie eine „Input – Scene– Object Info“-Node hinzu. Diese hat einen orangenen Eingangs-Socket. Verbinden Sie ihn mit dem leeren Socket der Group Input-Node. Jetzt erscheint im Modifier ein Eingabefeld für Objekte. Sie können es benennen, indem Sie im Node Editor die Sidebar mit der Taste N öffnen und im Group-Tab unter „Inputs“ einen passenden Namen wie „Emitter Object“ geben. Sie können hier sogar einen Tooltip definieren.

Zum bloßen Container degradiert

Schalten Sie die Object Info-Node auf „Relative“, damit später die Punkte auch an der richtigen Position erscheinen, falls Sie das Objekt bewegen, skalieren oder drehen. Verbinden Sie dann den Geometry-Ausgang mit dem Mesh-Eingang der Distribute Points on Faces-Node und trennen Sie den Geomtry-Eingang der Simulation Input-Node ab. Damit ist die Verbindung zur ursprünglichen Geometry des Würfels gekappt, er ist jetzt nur noch ein Container für die Simulation.

Vereinigung

Fügen Sie der Szene ein Objekt ihrer Wahl hinzu und wählen Sie es im Geometry ­ Nodes-Modifier des Containers aus. Wenn  Sie jetzt die Animation ab Frame eins mittels der Leertaste abspielen, erscheinen wieder nur einmalig Partikel. Damit der Emitter dauerhaft Partikel absondern kann, müssen die neu hinzugefügten Punkte in jedem Schritt mit den schon vorhandenen vereinigt werden. Fügen Sie eine Node „Geometry – Join Geometry“ hinzu und platzieren Sie sie auf der Verbindung zwischen „Distribute Points on Face“ und „Set Position“. Die Join Geometry-Node hat einen etwas langgezogenen Eingangs-Socket. Diese Darstellung soll andeuten, dass hier beliebig viele Nodes eingesteckt werden können. Verbinden Sie den Geometry-Ausgang der Simulation Input-Node damit.

Zufall zu jeder Zeit

Wenn Sie jetzt die Simulation von Frame eins starten, sehen Sie einen Strom von Partikeln aus dem Emitter. Aber sie sehen noch aus wie Fäden, da sie zu jedem Frame exakt von der gleichen Position auf der Oberfläche des Objektes erzeugt werden. Wir benötigen jedoch in jedem Frame eine andere Verteilung, damit es aussieht, als ob von der gesamten Fläche Partikel emittiert werden. Fügen Sie eine Node „Input – Scene – Scene Time“ hinzu und verbinden Sie den Frame-Ausgang mit dem Seed-Eingang der Distribute Points on Faces-Node. Verbinden Sie zudem den Density-Eingang der Node mit dem leeren Socket der Group Input-Node, um die Emissionsdichte von außen steuern zu können.

Animierbare Partikelemission

Wenn Sie jetzt die Animation abspielen, sehen Sie nicht nur einen Partikelstrahl von ihrem Objekt wegfliegen, Sie können sogar animieren, wie viele Partikel der Emitter pro Frame erzeugt. Das war mit dem Legacy- Partikelsytem in Blender bisher nicht so einfach möglich. Hier zeigt sich die Stärke der Simulation Nodes, denn um solcherlei Einschränkungen müssen Sie sich keine Gedanken mehr machen.

Mein besseres Partikelsystem: Mit nur wenigen Nodes konnten wir ein Partikelsystem mit animierbarer Emission erzeugen.

 

Auf Lebenszeit

Ein weiteres Feature von Partikelsystemen ist die Option, jedem Partikel eine Lebenszeit zu geben und sein aktuelles Alter auszulesen. In den Simulation Nodes erreichen wir das, indem wir für jeden Punkt bei Geburt ein Attribut „Alter“ setzen, das dann in jedem Frame um eins hochgezählt wird. Fügen Sie zwischen Distribute Points on Faces und Join Geometry eine Node „Attribute –Capture Attribute“ hinzu. Jetzt wird jedem Punkt beim Erzeugen ein Float mit dem Wert 0.0 zugewiesen. Verbinden Sie den Attribute-Ausgang mit dem leeren Eingangssocket der Simulation Output-Node. Jetzt erscheint ein entsprechender Ausgang bei der Simulation Input-Node.

Verheiraten

Genauso wie mit der Join Geometry-Node für die Punkte müssen wir auch hier einen Weg finden, das Alter der bestehenden Partikel mit dem neu hinzugekommenen zu „verheiraten“. Fügen Sie eine Node „Utilities – Math – Math“ hinzu. Diese ist standardmäßig schon auf die richtige Operation „Add“ eingestellt. Jetzt haben alle Partikel das Attribut und es wird durch die Simulation durchgeschliffen. Wir zählen aber noch nicht hoch. Duplizieren Sie die Add-Node und platzieren Sie sie zwischen die bestehende Add-Node und die Simulation Output-Node und setzen Sie die den Wert im unteren Eingang auf 1.0. Jetzt wird mit jedem Frame eins zum Alter dazugezählt.

Alter vs. Lebenszeit

Bisher zeigt das Alter noch keinen Effekt. Wir können es dafür nutzen, Partikel nach einer bestimmten Zeit in Frames sterben bzw. verschwinden zu lassen. Duplizieren Sie eine der Add-Nodes und platzieren Sie sie in einem freien Bereich in der Simulation Zone. Verbinden Sie den oberen Eingang mit der zweiten Add-Node und ändern Sie die Operation auf „Greater Than“. Fügen Sie dann mit „Input – Group – Group Input“ eine weitere Group Input-Node hinzu und verbinden Sie den Threshold-Eingang der Greater Than-Node mit dem freien Socket der Group Input-Node. Nennen Sie den neuen Parameter „Lifetime“, ein Default-Wert von 50.0 macht hier Sinn. Fügen Sie eine Node „Geometry – Operations –Delete Geometry“ hinzu und platzieren Sie diese zwischen dem Geometry-Ausgang der Set Position-Node und dem Geometry-Eingang der Simulation Output-Node. Verbinden Sie den Selection-Eingang mit dem Value-Ausgang der Greater Than-Node. Ab jetzt werden alle Partikel, die älter sind als ihre Lebenszeit, aus der Simulation entfernt. Wenn Sie die Animation jetzt abspielen, verschwinden die Partikel ab Frame 50 wieder.

Alter und Lebenszeit: Das Partikelsystem um einen neuen Faktor Lebenszeit erweitert. Wird diese überschritten, werden die entsprechenden Punkte aus der Simulation entfernt. Um später das Shading auf Basis des Alters der Partikel beeinflussen zu können, wurde ein entsprechendes Ausgabeattribut hinzugefügt.

 

Normalisation

Das Alter der Punkte können wir auch als Ausgabeattribut nutzen, damit wir später in Cycles die Partikel je nach Alter unterschiedlich einfärben können. Da Cycles gerne mit Werten zwischen 0.0 und 1.0 gefüttert wird, sollten wir ihn vorher auf diesen Wertebereich normalisieren. Verbinden Sie zunächst den Attribute-Ausgang der Simulation Output-Node mit dem freien Socket der Group Output-Node. Wenn Sie jetzt das Ouput Attributes-Panel im Modifier aufklappen, sehen Sie ein leeres Feld. Hier können Sie später dem Attribut einen Namen geben, damit Sie im Shader darauf zugreifen können, z. B. „age“, dann erscheint es auch als eigene Spalte im Spreadsheet Editor. Die Beschriftung des Felds und den Tooltip können Sie wieder im Group-Tab der Sidebar des Node-Editors ändern, zum Beispiel in „Age“.

Kraftfelder

Die zweite Komponente, die wir beim Legacy-Partikelsystem hinzufügen würden, wären Kraftfelder, um die Bewegung der Partikel zu kontrollieren. Bei den Simulation Nodes passiert dies innerhalb der Simulation Zone über Vektoren, die den Offset der Set Position-Node steuern. In unserem Fall wären das zwei Komponenten. Eine Art Wind, der die Partikel in eine gewünschte Richtung weht, und ein Feld zum Verwirbeln. Den Wind können wir extrem simplifizieren, indem wir eine konstante Bewegung in eine Richtung annehmen. Wenn wir einen Z-Anteil hinzunehmen, haben wir auch gleich noch den Auftrieb integriert.

Abdriften

Verbinden Sie den Offset-Eingang der Set Position-Node mit dem freien Socket der Group Input-Node und nennen Sie den neu erzeugten Eingang „Wind Force“. Ein Wert von 0.05, 0.01 und 0.025 lässt die Partikel sanft und leicht nach hinten abdriften.

Verwirbeln

Zum Verwirbeln der Partikel benötigen wir noch eine zweite Kraft. Wir können sie aus einer Noise-Textur extrahieren, denn die RGB-Farben der Textur können auch als XYZ-Werte eines Vektors interpretiert werden. Diese müssen mit den bisherigen Kräften zusammengeführt werden, was wieder über Mathematik geschieht. Fügen Sie eine Node „Utilities – Vector – Vector Math“ hinzu und platzieren Sie sie zwischen dem Wind Force-Socket der Group Input-Node und dem Offset-Eingang der Set Position-Node. Klicken Sie auf den untereren, freien Vektor- Eingang der Add-Node und ziehen Sie die Maus an eine freie Stelle. Neben dem Mauscursor sollte ein Plus-Symbol vorhanden sein. Wenn Sie nun die Maus loslassen, erscheint ein Suchfeld. Geben Sie dort „Noise“ ein und wählen Sie aus den Suchergebnissen „Noise Texture – Color“. 

Anpassungen

Es erscheint eine Noise Texture, deren Color-Ausgang direkt mit dem Vector-Eingang der Add-Node verbunden ist. Wenn Sie jetzt die Animation abspielen, schießen die Partikel in einer Diagonale davon. Das liegt daran, dass die Noise Texture für jeden Kanal nur positive Werte zwischen 0.0 und 1.0 ausgibt. Das Ergebnis sollen ja Farben sein, und deren Kanalwerte definieren sich in Blender als Bereich zwischen 0.0 und 1.0.

Negativ

Die Partikel sollen sich aber in alle Richtungen bewegen, auch entgegengesetzt einer Achse, sprich, in negative Richtung. Um das zu erreichen, müssen wir von allen Kanälen 0.5 abziehen, dann liegt der Bereich zwischen -0.5 und +0.5. Duplizieren Sie die Vector Math-Node, platzieren Sie sie zwischen dem Color-Ausgang der Noise Texture-Node und der bestehenden Vector Math-Node, die derzeit auf „Add“ eingestellt ist, und stellen sie den Operator der neuen Node auf „Subtract“. Im unteren Vektorfeld geben Sie 0.5, 0.5 und 0.5 ein.

Gewusel

Wenn Sie jetzt die Animation abspielen, sehen Sie ein ziemliches Gewusel. Die Turbulenz durch die Noise Texture ist noch viel zu stark. Duplizieren Sie erneut eine Vector Math-Node, platzieren Sie sie zwischen Subtract und Add und setzen Sie die Ope­ration auf „Scale“. Setzen Sie den unteren Eingang auf 0.2 und verbinden Sie ihn mit dem freien Socket der Group Input-Node. Nennen Sie den neuen Eingabeparameter „Turbulence Strength“ und betrachten Sie die Animation. Setzen Sie dafür die Lifetime auf 100. Die Partikel werden jetzt schick durcheinandergewirbelt durch die Noise Texture.

Kontrolle

Wie grob oder fein die Turbulenzen sind, lässt sich über den Scale-Eingang der Noise Texture-Node steuern. Setzen Sie ihn auf 1.0 und verbinden Sie ihn ebenfalls mit der Group Input-Node und nennen Sie den Parameter
„Turbulence Scale“. Wenn Sie die Animation jetzt abspielen, fließen die Partikel ähnlich, als hätten Sie zu einem Legacy-Partikelsystem ein Turbulence-Force Field hinzugefügt und den Flow-Wert auf 1.0 gestellt. Dieses Fließen wie in einem Bach ist aber nicht ganz so, wie sich Feuer bewegt. Die Flammen züngeln und ändern ständig die Richtung.

Die vierte Dimension

Um diesen Effekt mit der Noise Texture zu simulieren, schalten Sie das Drop Down in der Noise Texture auf „4D“. Nun ist ein neuer Eingang „W“ hinzugekommen, damit kann die Noise Texture permanent verändert werden. In anderen Programmen wird der Parameter „Evolution“ genannt, was wirklich eine sprechende Bezeichnung ist. Um diesen zu animieren, müssen Sie keine Keyframes setzen. Verbinden Sie ihn stattdessen mit dem Seconds Ausgang der Scene Time-Node und schon wabern und züngeln die Partikel beim Abspielen der Animation.

Material setzen

Bevor Sie zum Shading schreiten können, müssen Sie den Partikeln noch ein Material geben. Fügen Sie dafür eine Node „Material– Set Material“ zwischen den Geometry-Ausgang der Simulation Output-Node und den Geometry-Eingang der Group Output-Node. Wählen Sie im Drop Down ein vorhandenes Material aus, den Namen und die Shader bearbeiten Sie im nächsten Schritt.

Das fertige Partikelsystem: Nach der Integration der Noise Texture als Turbulence Field und dem Setzen des Materials ist das Partikelsystem abgeschlossen.

 

Rendern in Cycles

Um die Partikel zu rendern, benötigen wir die Cycles Render Engine, denn Eevee kann die Punkte noch nicht darstellen. Wechseln Sie im Render-Tab des Properties Editor die Render Engine auf Cycles und wechseln Sie in den Shading Workspace. Schalten Sie dort im Viewport den Render Preview ein, jetzt erscheinen die Partikel als kleine Kugeln. Wählen Sie im Shader Editor im Material-Drop Down dasselbe Material aus, das sie auch in den Geometry Nodes vergeben haben. Jetzt können Sie auch den  Namen ändern, z. B. in „Particle Material“.

An ihrem Namen soll Cycles sie erkennen

Fügen Sie eine neue Node „Input – Attribute“ hinzu und geben Sie im Feld „Name“ exakt den Namen ein, den Sie dem Age-Attribut gegeben haben und verbinden Sie den Fac-Ausgang mit dem Base Color-Eingang der Principled BSDF-Node. Die Partikel sind jetzt in einem Gradienten von Schwarz nach Weiß gefärbt, je nach Alter. Die perfekte Eingabe für eine Color Ramp.

Rendering in Cycles: Die von den Simulation Nodes erzeugten Punkte können noch nicht mit Eevee dargestellt werden, daher verwenden wir Cycles als Renderengine. Zum Einfärben kommt das „age“-Attribut zum Einsatz, dessen Namen wir im Modifier vergeben haben und exakt so in der Attribute-Node eingeben.

 

Rampe

Fügen Sie eine Node „Converter – Color Ramp“ zwischen Fac und Base Color ein. Setzen Sie einen weiteren Stop, indem Sie das Plus-Icon der Node drücken, und setzen Sie den Stop ganz links auf ein helles, desaturiertes Orange. Setzen Sie dann den Wert für „Value“ im Farbrad auf den Wert 5.0. Jetzt reflektieren die Partikel mehr Licht, als auftrifft. Ein netter Effekt, der physikalisch zwar überhaupt nicht korrekt ist, aber etwas mehr Zeichnung hergibt als beim Einsatz von Emission. Setzen Sie den zweiten Stop auf ein sattes Rot mit Value von 2.0 und den letzten Stop auf reines Schwarz. Stellen Sie die Interpolation im Dropdown in der rechten oberen Ecke der Node zudem auf „Ease“.

Fadeout

Jetzt sind die Kugeln eingefärbt, es wäre aber schön, wenn sie ausfaden, als würden die Flammen ausbrennen bzw. sich auflösen wie Rauch. Verbinden Sie den Fac-Ausgang der Attribute-Node mit dem Alpha-Eingang der Principled BSDF-Node. Es sieht nun so aus, als würde das Logo zu Beginn rauchen und der Rauch sich zu Feuer zu verwandeln. Damit das Feuer dann letztendlich ausfadet, benötigen wir wieder eine Color Ramp. Setzen Sie wieder drei Stops und die Interpolation auf „Ease“. Der mittlere Stop bekommt ein reines Weiß und der rechte ein reines Schwarz. Der linke Stop bekommt einen Value von 0.1. Dadurch sind die Partikel am Emitter noch leicht sichtbar und hüllen ihn quasi ein.

Artefakte

In den Spitzen der Flammen dürften jetzt schwarze Artefakte erschienen sein, je nachdem, wie viele Partikel Sie verwenden. Die schwarzen Flecken kommen daher, dass Cycles nur eine bestimmte Anzahl an Oberflächen besucht, die sogenannten Bounces. Und jedes Mal, wenn ein Strahl durch eine der Kugeln geht, sind das gleich zwei Transparent Bounces. Setzen Sie die Anzahl der Transparent-Bounces im Light Paths-Panel der Render Properties auf 256. Jetzt faden die Flammenzungen sauber aus.

Licht und Schatten

Da die Partikel in unserem Setup zum Leuchten auf Licht von Außen angewiesen sind, lohnt es sich, in die World eine HDRI-Textur zu laden. Den schwarzen Hintergrund erreichen Sie, indem Sie in den World Properties das Panel „Ray Visibility“ öffnen und dort den Haken bei „Camera“ und „Glossy“ entfernen. Letzteres ist eine kleine Vorarbeit für den nächsten Schritt.

Boden Verlegen

Fügen Sie der Szene eine Plane hinzu und skalieren Sie sie um den Faktor 50. Fügen Sie ihr dann ein neues Material hinzu und setzen Sie den Wert bei „Metallic“ in der Principled BSDF-Node auf 1.0. Die Stärke der Spiegelung können Sie justieren, indem Sie die Base Color heller oder dunkler machen. Für eine exakte Replikation des Ergebnisses setzen Sie den Wert von „Value“ in der Farbauswahl der Base Color auf 0.5. Löschen Sie als Nächstes die noch immer vorhandene Lichtquelle und machen Sie, wenn nötig, das Material des Emitterobjektes dunkler, damit es im Kontrast zum hellen „Rauch“ deutlich erkennbar ist.

Backe backe Kuchen

Nach dem Platzieren der Kamera ist es Zeit zu rendern. Sie können sowohl ein Standbild als auch eine Animation rendern. Dafür wäre es praktisch, wenn die Simulationsdaten gespeichert werden könnten, damit man nicht immer wieder neu simulieren muss. Dieser Prozess nennt sich „Baking“ und findet sich für die Simulation Nodes im Physics-Tab des Properties Editor. Öffnen Sie dort das Simulation Nodes-Panel und klicken Sie auf „Bake“. Jetzt werden alle Frames in der Timeline simuliert und gespeichert. Eine erneute Simulation ist nicht notwendig.

Ausblick

Dieser Artikel sollte einen Überblick darüber verschaffen, wie Partikelsysteme in den neuen Simulation Nodes grundsätzlich aufgebaut sind. Von dieser Basis aus können Sie weiter vordringen. So könnten Sie auch den Radius der Partikel mit dem Alter verändern. Ein Feature, das mit dem Legacy-Partikelsystem ebenfalls nicht so einfach möglich ist. Oder sie bauen es so um, dass die zeitabhängigen Berechnungen immer in Sekunden statt in Frames passieren, wodurch ihr System von der Framerate des Projektes unabhängig wird. Damit das Feuer noch besser flackert, könnten Sie die Emission ebenfalls mit einer sicher zeitlich verändernden Noise Texture modulieren. Nochmals realistischer können Sie das Ergebnis gestalten, wenn Sie den Partikeln eine ganz leichte Anfangsgeschwindigkeit entlang der Normalen des Emission-Objektes mitgeben.

Fazit

Mit den neuen Simulation Nodes in Blender 3.6 lassen sich Partikelsysteme erstellen, deren Mächtigkeit das bestehende Legacy-Partikelsystem übertrifft. Dank der Mächtigkeit der Geometry Nodes hat man ein gewaltiges Potential vor sich, das allerdings erst gehoben werden muss. Dennnoch fehlen jegliche High Level-Nodes, man muss sich selbst so einfache Dinge wie einen Emitter oder ein Kraftfeld noch zusammenklicken. Hier ist zu erwarten, dass es in Zukunft zahlreiche Node-Groups und Assets sowohl von den Entwicklern selbst, als auch aus der Community geben wird.

Dieser Artikel erschien im Magazin Digital Production, Ausgabe 2304.