Flüssigkeiten-Simulation - Eine Einführung

Mit Cinema 4D 2025.3 wird das Partikelsystem um Eigenschaften erweitert, die die Simulation von Flüssigkeiten ermöglichen. Dabei können normale Partikel nachträglich in Flüssigkeitspartikel umgewandelt werden, für die dann spezifische Eigenschaften, wie z. B. die Viskosität oder Oberflächenspannung zur Verfügung gestellt werden. Ein zusätzlicher Emitter-Typ erleichtert das schnelle Füllen beliebiger Volumen mit Flüssigkeitspartikeln, um z. B. ein Wasserglas oder auch ein Schwimmbecken schnell mit Flüssigkeit füllen zu können.



Wie in obigem Beispiel zu erkennen, ist dabei auch die Interaktion mit anderen statischen (Boden, Felsen) oder dynamischen Objekten (schwimmende Boje) möglich. Dafür stehen z. B. das Kollisions-Tag oder das Rigid Body-Tag zur Verfügung, mit denen normale Objekte für die Interaktion mit simulierten Elementen markiert werden können.

Falls Sie bislang noch nicht mit Partikel-Simulationen gearbeitet haben, bietet es sich an, sich zuerst deren Elemente und Arbeitsabläufe anzusehen. Wir haben dazu hier eine entsprechende Einführungsseite zusammengestellt. Die Steuerungselemente und Abläufe beim Erzeugen einer Flüssigkeitssimulation sind ansonsten zu denen bei Standardpartikeln identisch.


Themen in dieser Einführung:




Unterschiede zwischen Partikeln und Flüssigkeitspartikeln

Grundsätzlich werden Partikel und Flüssigkeitspartikel auf die gleiche Art generiert: Es wird ein Emitter benötigt, der die Partikel erzeugt, die ab diesem Moment in Partikel-Gruppen verwaltet werden. Der Unterschied zwischen diesen Partikelarten liegt nur in den zusätzlichen Eigenschaften, die Flüssigkeitspartikel tragen. Diese Eigenschaften werden bei Nutzung eines Flüssigkeitsfüllung-Emitters automatisch den Partikeln mitgegeben oder können auch bei bereits erzeugten "normalen" Partikeln nachträglich über den Verflüssigen-Modifikator ergänzt werden. Das nachfolgende Video und die ebenfalls verfügbare Szene geben dazu ein Beispiel.


Hier werden normale Partikel durch einen Basis-Emitter auf die Reise geschickt und nach der zweiten Kollision mit einer Bodenebene zu Flüssigkeitspartikeln konvertiert.

In diesem Beispiel werden zunächst normale Partikel durch einen Basis-Emitter erzeugt. Innerhalb der Partikel-Gruppe sorgt ein Gravitation-Kraftobjekt dafür, dass diese Partikel automatisch nach unten gezogen werden. Ein zusätzlicher Kollision-Modifikator ermöglicht die Kollision der Partikel mit einer Boden-Ebene, die über ein Kollisions-Tag verfügt.
Durch Nutzung der Benutzerdefinierten Eigenschaft für das Zählen der Kollisionen lassen sich gezielt die Partikel in eine neue Gruppe überführen, die bereits zwei Mal auf der Bodenebene abgeprallt sind. In dieser zweiten Gruppe werden die Partikel durch einen Verflüssigen-Modifikator zu Flüssigkeitspartikeln umgewandelt und reagieren dadurch automatisch aufeinander. Ausgelöst wird dies durch den Flüssigkeitsanteil-Parameter am Verflüssigen-Modifikator, der standardmäßig bereits auf 100% eingestellt ist und dadurch die vollen Eigenschaften einer Flüssigkeit aktiviert. Die Flüssigkeitspartikel reagieren dadurch nicht länger auf Modifikatoren, die die Bewegungsrichtungen der Partikel beeinflussen, sondern orientieren sich nur noch an ihren physikalischen Eigenschaften und von außen wirkenden Kräften, wie z. B. der Gravitation oder Kollision mit anderen dynamischen Elementen. Zwischenwerte für den Flüssigkeitsanteil sind aber auch möglich, damit auch Flüssigkeitspartikel weiterhin zumindest teilweise mit den klassischen Partikel-Modifikatoren beeinflussen zu können.
Flüssigkeitspartikel verfügen über zusätzliche Eigenschaften, wie Dichte, Viskosität und Oberflächenspannung.

Die folgende Eigenschaften und Objekte wirken automatisch auf Flüssigkeitspartikel:

Dabei können weiterhin viele Modifikatoren und Arbeitsweisen klassischer Partikel auch auf Flüssigkeitspartikel angewendet werden. So können z. B. die Farben weiterhin über Mathe- oder Farbmapper-Modifikatoren verändert werden oder auch Eigenschaften, wie der Radius der Partikel über einen Datenmapper-Modifikator z. B. an das Alter der Partikel gekoppelt werden. Einschränkungen bestehen immer dann, wenn Geschwindigkeiten oder Positionen der Flüssigkeitspartikel über Modifikatoren verändert werden sollen. Da Flüssigkeitspartikel automatisch physikalische Eigenschaften erhalten, durch die u. a. auch die Kräfte innerhalb der Simulation vorgegeben werden, kommt es immer zu einer Vermischung dieser zusätzlichen, über Modifikatoren und Kraft-Objekte eingebrachten Veränderungen und den automatisch auf Flüssigkeiten wirkenden Kräften. In diesem Zusammenhang ist z. B. die Nutzung eines Mischen-Modifikators hilfreich, um die Eigenschaften verschiedener Flüssigkeiten, wie z. B. unterschiedliche Farben oder Viskositäten auch mischen zu können.


Hinweise zum Konfigurieren von Flüssigkeitssimulationen

Flüssigkeiten mit Standard-Emittern erzeugen

Wie bereits in obigem Beispiel demonstriert, lassen sich Flüssigkeiten durch Ergänzen eines Verflüssigen-Modifikators an einer Partikel-Gruppe erzeugen. Durch diesen wird u. a. die Flüssigkeitsanteil-Eigenschaft an den Partikeln ergänzt und typische, physikalische Eigenschaften von Flüssigkeiten lassen sich vorgeben. Hierdurch erhalten die Partikel zudem automatische benutzerdefinierte Eigenschaften, die das Auslesen und Verändern von Flüssigkeitseigenschaften z. B. auch über andere Modifikatoren, wie den Datenmapper- oder den Mathe-Modifikator ermöglichen.

Für die Nutzung von Standard-Emittern als Quelle für eine Flüssigkeitssimulation kann der nachfolgend beschriebene Aufbau verwendet werden. Dort wird ein Basis-Emitter zur Erzeugung von Partikeln genutzt und ein flacher Würfel mit einem Kollisions-Tag als Bodenebene eingefügt, um die nach unten fallenden Partikel aufzuhalten.
Ein Verflüssigen-Modifikator in der Partikel-Gruppe der erzeugten Partikel mit dem Modus Verflüssigen und dem Flüssigkeitsanteil-Wert 100% sorgt dafür, dass normale Partikel automatisch zu vollständigen Flüssigkeitspartikeln konvertiert werden und daher direkt nach der Emission nach unten fallen und mit benachbarten Flüssigkeitspartikeln und dem Bodenwürfel interagieren können.


Hier ist ein Basis-Aufbau für die Erzeugung und Nutzung von Flüssigkeitspartikeln zu sehen


Dabei ist zu beachten, dass Flüssigkeitspartikel durchaus auch einen anderen Radius verwenden können, als ursprünglich von den emittierten Standardpartikeln verwendet wurde. Der Verflüssigen-Modifikator bietet dazu eine Option an, um zu entscheiden, ob der ursprüngliche Radius der Standardpartikel übernommen oder aber die Standardradius-Einstellung für Flüssigkeitspartikel aus den Simulationsvoreinstellungen verwendet werden soll.
Der Radius der Flüssigkeitspartikel spielt generell eine große Rolle, denn dieser gibt auch die Reichweite der Kräfte an, die zwischen den Partikeln wirken. Überlappen sich die Radien benachbarter Flüssigkeitspartikel, werden sich diese automatisch abstoßen. Diese Reaktion fällt umso heftiger aus, je näher die Positionen der Partikel beieinander liegen. Aus diesem Grund ist auch die am Emitter erzeugte Anzahl an Partikeln im Auge zu behalten.

Je mehr Partikel am Emitter erzeugt werden, desto größer ist die Gefahr, dass sich die Radien der Partikel bereits am Emitter überlappen und es daher dort zu vielen "Spritzern" kommt, also Partikeln, die sich vom Hauptstrom der Partikel entfernen. Dieses Problem kann entschärft werden, indem der Radius der Partikel oder die Rate der neu erzeugten Partikel weiter reduziert werden. Da dies nicht immer möglich ist, bietet der Verflüssigen-Modifikator auch den Übergang-Parameter an, durch den sich die Umwandlung der normalen Partikel zu Flüssigkeitspartikeln über den Zeitraum mehrerer Animationsbilder hinweg vollzieht. Sich überlappende Partikel drücken sich dadurch gemächlicher voneinander ab, was deren explosionsartiges Abstoßen verhindern kann.

Das folgende Video stellt die gleiche Basis-Szene dar, wobei dort der Standardradius 1 cm für die Partikel auf 5 cm verändert wurde. Deutlich ist zu erkennen, wie das gesamte Volumen der Flüssigkeit zunimmt und es daher am Emitter bereits zu einem Auseinanderdriften einzelner Partikel kommt.



Flüssigkeiten mit dem Flüssigkeitsfüllung-Emitter erzeugen

Die Nutzung von Standard-Emittern bietet sich immer dann an, wenn ein kontinuierlicher Strom von Flüssigkeitspartikeln, z. B. wie bei einem laufenden Wasserhahn benötigt wird. In Fällen, bei denen eine Flüssigkeit schlagartig innerhalb eines Volumens bereits vorhanden sein soll, wie z. B. in einem Schwimmbecken, bietet sich die Nutzung des Flüssigkeitsfüllung-Emitters an. Dieser füllt ein zugewiesenes Volumen schlagartig mit Flüssigkeitspartikeln und kann dabei automatisch die anfängliche Überlappung von Partikeln vermeiden, da diese in einem festen Raster und nicht zufällig platziert generiert werden.

Der Abstand der Partikel in dem gewählten Anordnungsmuster kann entweder basierend auf dem Standardradius-Wert aus den Simulationsvoreinstellungen für Flüssigkeiten entnommen werden, oder aber ein eigener Distanzwert wird eingetragen. Achten Sie bei Eingabe einer eigenen Distanz darauf, dass diese nicht kleiner als der doppelte Radius der Flüssigkeitspartikel ist, damit es nicht bereits bei Erzeugung der Partikel zu Abstoßungen kommt.

Anders als bei den Standard-Emittern, kann beim Flüssigkeitsfüllung-Emitter keine Emission von Partikeln über einen längeren Zeitraum hinweg aktiviert werden. Die Emission findet immer nur in exakt einem Animationsbild statt.


Anders als bei Nutzung der Standard-Emitter, kann ein beliebiges Volumen mit dem Flüssigkeitsfüllung-Emitter auf einen Schlag gefüllt werden, ohne dass es dabei zu Überlappungen zwischen der Flüssigkeitspartikeln kommt.


In obigem Beispiel wurde im Flüssigkeitsfüllung-Emitter ein einfaches Würfel-Grundobjekt als Volumen für die Erzeugung der Partikel zugewiesen, das innerhalb eines einfach modellierten Beckens platziert wurde. Dieser Emissions-Würfel sollte dann zumindest für das Rendering auf unsichtbar geschaltet werden. Hilfreich ist auch, wenn das für die Emission erzeugte Volumen etwas kleiner ist als der Raum, der durch die Flüssigkeit gefüllt werden soll. Dies macht die Kollisionsberechnung zwischen der Flüssigkeit und dem zu füllenden Gefäß robuster. Auch in diesem Fall erhält das Gefäß-Objekt wieder ein Kollisions-Tag. Die Flüssigkeitspartikel reagieren automatisch darauf, ohne dass ein zusätzlicher Kollision-Modifikator verwendet werden muss.

Hinweis:

Flüssigkeitspartikel kollidieren zwar automatisch mit anderen dynamischen Objekten oder Objekten, die über ein Kollisions-Tag verfügen, dennoch kann aber auch das Hinzufügen eines Kollision-Modifikators weiterhin hilfreich sein, z. B. wenn das Kollision-Ereignis über eine Benutzereigenschaft erfasst oder die Anzahl der Kollisionen ausgewertet werden soll. Hier war bereits ein entsprechendes Beispiel dazu zu sehen.


Flüssigkeiten mischen

Flüssigkeitspartikel bieten verschiedene Einstellungen, um ihr Verhalten beim Aufeinandertreffen mit anderen Flüssigkeitspartikeln zu steuern. Besondere Bedeutung kommt dabei dem Zieldichte-Wert zu, der sowohl am Verflüssigen-Modifikator als auch am Flüssigkeitsfüllung-Emitter zu finden ist. Je größer die Dichte einer Flüssigkeit ist, desto mehr Kraft kann diese auf anderen dynamische Objekte, wie z. B. Stoffe oder Rigid Bodies ausüben und desto schneller sinkt diese Flüssigkeit in einer anderen Flüssigkeit ab, die eine geringere Dichte hat.
Im folgenden Beispiel haben die orangefarbenen Partikel gegenüber den blauen Partikeln im Pool eine geringere Dichte. Sie haben daher einen größeren Auftrieb und schwimmen oben auf der Pool-Flüssigkeit.

Beide verwendeten Emitter (Flüssigkeitsfüllung-Emitter für den Pool und Basis-Emitter für den Wasserstrahl) schicken ihre Partikel an die gleiche Partikel-Gruppe, in der ein Verflüssigen-Modifikator für die Umwandlung der orangefarbenen Partikel zu Flüssigkeitspartikeln sorgt. Im Verflüssigen-Modus des Verflüssigen-Modifikators werden nur die Partikel verarbeitet, die nicht bereits zu einer Flüssigkeit konvertiert wurden. Die bereits als Flüssigkeit emittierten Partikel des Flüssigkeitsfüllung-Emitters werden also durch den Verflüssigen-Modifikator nicht in ihren Eigenschaften beeinflusst. Daher können wir über den Verflüssigen-Modifikator und den Flüssigkeitsfüllung-Emitter unterschiedliche Eigenschaftswerte für die beiden Flüssigkeiten definieren.


Die Partikel mit der geringeren Dichte (hier die orangefarbenen Partikel) schwimmen automatisch auf der Flüssigkeit mit der im Vergleich größeren Dichte (hier die blauen Partikel).


Im nachfolgenden Beispiel wurde die Dichte der orangefarbenen Partikel so weit erhöht, dass sie größer als die Dichte der blauen Partikel ist. Der simulierte Wasserstrahl taucht daher in die Pool-Flüssigkeit ein und sinkt ab.



Haben alle Flüssigkeitspartikel die gleiche Dichte, vermengen sie sich gleichberechtigt miteinander. Keine der Flüssigkeiten sinkt dabei permanent ab oder steigt auf. Die Vermischung ist nur von den Bewegungen innerhalb der beiden Flüssigkeiten abhängig, sowie von deren Fließeigenschaften und von außen einwirkenden Kräften.



Selbst wenn beide Flüssigkeiten identische Dichte-Werte haben, kann noch eine Trennung erzwungen werden. Dafür steht die Misch-ID-Eigenschaft an den Flüssigkeitspartikeln zur Verfügung. Nur Partikel, die einen identischen Misch-ID-Wert haben, können sich in Abhängigkeit ihrer Dichte mischen. Partikel, die unterschiedliche Misch-ID-Werte habe, trennen sich automatisch voneinander, so wie im folgenden Video.



Häufiger dürfte jedoch der Fall sein, bei dem sich die Eigenschaften der unterschiedlichen Flüssigkeiten beim aufeinandertreffen vermengen sollen. Dazu eignet sich das Ergänzen eines Mischen-Modifikators zu der Partikel-Gruppe. Im Beispiel des folgenden Videos werden auf diese Weise die Farbwerte der Partikel bei Annäherung vermischt, was sich auch gut für das Vermengen unterschiedlich gefärbter Flüssigkeiten nutzen lässt.



Grundlegende Flüssigkeitsarten

Unter dem Oberbegriff Flüssigkeit wird oft einfach nur Wasser verstanden, aber es lassen sich z. B. auch Zahnpasta oder Honig darüber simulieren. Die Unterschiede zwischen diese verschiedenen Materialien und Elementen liegen in deren Fließeigenschaft, der so genannten Viskosität. Bei großer Viskosität verhält sich die Flüssigkeit eher wie eine zähe Masse, wogegen sie bei kleinen Viskosität-Werten dünnflüssiger erscheint.
Diese Effekte können durch angepasste Dichte-Werte (zähflüssige Materialien sind oft dichter als z. B. dünnflüssiges Wasser) und auch Dämpfung-Vorgabe unterstützt werden (durch einen größere Dämpfung kommen Bewegungen in der Simulation schneller wieder zur Ruhe). Diese Eigenschaften sind ebenfalls am Verflüssigen-Modifikator oder auch am Flüssigkeitsfüllung-Emitter zu finden.


Die Flüssigkeitspartikel verhalten sich hier durch hohe Viskosität- und Dämpfung-Werte z. B. wie Zahnpasta oder Gelee.


Durch eine Reduzierung der Viskosität kann das Verhalten dünnflüssiger Flüssigkeiten simuliert werden. Dies ist im folgenden Video dargestellt.


Generell gilt zudem, je dünnflüssiger eine Flüssigkeitssimulation wirken soll, desto kleiner sollte auch der Radius der Partikel gewählt werden. Daraus ergibt sich, dass pro Volumen auch mehr Partikel simuliert werden müssen. Die simulierte Flüssigkeit kann sich dadurch noch enger an unregelmäßigen Oberflächen entlang bewegen und feinere Details, wie z. B. kleine Wellen darstellen. Dies geht allerdings auch mit aufwändigeren Berechnungen und somit einer längeren Simulationsdauer einher. Es gilt daher immer, ein sinnvolles Verhältnis zwischen der gewünschten Detailtiefe der Simulation und der Anzahl der erzeugten Partikel zu finden.


Die Simulation verhält sich hier dank hoher Partikelanzahl und geringer Viskosität-Werte wie Wasser.


Direkte Gegenüberstellung von Flüssigkeiten mit unterschiedlicher Viskosität.


Flüssigkeiten als Geometrie verwenden

Standardmäßig werden Flüssigkeitspartikel genau wie normale Partikel dargestellt und lassen sich genauso rendern. Dazu kann z. B. ein MoGraph Klon-Objekt oder ein Redshift Objekt-Tag mit der Partikel-Gruppe kombiniert werden, um beliebige Objekte oder Standardformen an den Partikelpositionen berechnen zu lassen. Dies kann hilfreich sein, wenn z. B. Granulate oder Sand dargestellt werden sollen, denn auch diese Elemente können durch eine Flüssigkeitssimulation in ihrem Verhalten angenähert werden. Für klassische Flüssigkeiten sind jedoch organische Oberflächen gängig, die dann z. B. auch mit entsprechenden Flüssigkeitsmaterialien belegt werden können.


Links sind die gerenderten Partikel zu sehen, rechts die durch das Flüssigkeits-Mesh daraus berechnete Geometrie.


Prinzipiell kann dafür zwar auch die Kombination aus Volumenerzeuger und Volumenmesher mit der Partikel-Gruppe verwendet werden. Noch besser geeignet ist jedoch der Flüssigkeits-Mesher, denn dort finden sich zusätzliche Einstellungen speziell für die Darstellung von Flüssigkeiten, um z. B. einzelne Tropfen automatisch verkleinert darzustellen oder um die Farben der Partikel entlang der Flüssigkeitsoberfläche zu interpolieren.

Der Flüssigkeits-Mesher kann an beliebiger Position innerhalb des Objekt-Managers platziert werden. Er wirkt automatisch auf alle Partikelgruppen innerhalb der Simulationsszene. Es muss also z. B. keine manuelle Verlinkung zu Partikel-Gruppen vorgenommen werden. Auf Wunsch lassen sich jedoch einzelne Partikel-Gruppen auch ausschließen, z. B. wenn Sie weiterhin die Standarddarstellung einzelner Partikel in der Szene erhalten möchten, während andere Partikel-Gruppen als Flüssigkeit berechnet werden sollen. Es lassen sich nämlich alle Partikelarten damit verarbeiten, die mit einem Verflüssigen-Modifikator einen Flüssigkeitsanteil-Wert zugewiesen bekommen haben, selbst wenn dieser nur 0% beträgt.

Dabei können u. a. das Zusammenlaufen benachbarter Partikel und die Polygondichte der berechneten Hülle am Flüssigkeits-Mesher konfiguriert werden. Für das Rendern besonders wichtig ist jedoch die Export-Rubrik des Flüssigkeits-Meshers, denn dort wählen Sie die Eigenschaften aus, die innerhalb der Szene und auch beim Rendern zur Verfügung gestellt werden sollen. In der Regel ist dies zumindest die Geometrie der Flüssigkeit. Sollen z. B. auch die Farben der Partikel auf die Oberfläche der Flüssigkeit übertragen werden, ist zusätzlich die Farbe-Option zu aktivieren. Dadurch entsteht am Flüssigkeits-Mesher ein Vertex Farben-Tag mit dem Namen __color__, das dann im Material mit einem Vertex Attribute-Node ausgelesen und z. B. mit dem Basis-Farbe-Eingang eines Standard- oder OpenPBR-Materials verknüpft werden kann.


Hier werden zwei unterschiedliche gefärbte Flüssigkeiten gemischt. Ein Mischen-Modifikator berechnet dabei die Farbangleichung der Partikel. Ein Flüssigkeits-Mesher erzeugt eine passende Oberfläche, die dann mit Materialien belegt werden kann.


Obige Szene demonstriert auch die Nutzung von Datenmapper-Modifikatoren, um die Viskosität und Oberflächenspannung der Flüssigkeit während der Simulation zu verändern. Bei der Erläuterung der benutzerdefinierten Eigenschaften von Flüssigkeitspartikeln finden Sie ein zusätzliches Beispiel, bei dem der Wechseln von Flüssigkeitseigenschaften während der Simulation demonstriert wird.