Fluide

Mit Flüssigkeiten können Sie die physikalischen Eigenschaften von Flüssigkeiten wie Wasser, Öl, Honig und Lava simulieren sowie den Effekt der Schwerkraft, Kollisionen mit Objekten und disruptive Einflüsse durch Bewegungsfelder replizieren, um zum gewünschten Ergebnis zu gelangen.

Einführende Konzepte

Flüssigkeitssimulationen setzen sich aus folgenden Komponenten zusammen:

Optimieren der Leistung

Beim Anfertigen einer beliebigen Flüssigkeitssimulation ist es das Ziel, so schnell wie möglich ein visuell ansprechendes Ergebnis zu erzeugen. Dazu ist es wichtig, die verfügbaren Optionen zu verstehen, um Details und Genauigkeitsdetails gegen Arbeitsspeicher und Berechnungszeit auszutarieren.

Die Haupteinstellung zur Steuerung der Simulationdetails ist die Option Master-Voxelgröße im Bereich Solver-Eigenschaften der Gruppe Solver-Parameter. Diese Einstellung beeinflusst auch in hohem Maße die Genauigkeit. In der Regel verwenden Sie einen höheren Wert für eine schnelle, weniger detailreiche Vorschau Ihrer Arbeit; dann wählen Sie einen niedrigeren Wert für eine genauere Simulation, wenn Sie mit dem Ergebnis zufrieden sind.

Bei jeder Master-Voxelgröße können die Attribute Transportschritte und Zeitschritte im Bereich Simulationsparameter der Gruppe Solver-Parameter die Genauigkeit einer Simulation erhöhen. Dies geht jedoch mit zusätzlichen Berechnungsschritten und mehr Zeitaufwand einher. Weitere Informationen finden Sie weiter unten im Abschnitt Adaptivitätseinstellungen.

Eine vorteilhafte Kombination von Master-Voxelgröße und Adaptivitätseinstellungen hängt von der Geschwindigkeit der Partikel im Verhältnis zur Skalierung der modellierten Szene ab. Wenn z. B. die Partikelgeschwindigkeiten so hoch sind, dass sie sich in einem einzigen Zeitschritt von einer Seite eines Colliders zur anderen bewegen, sieht es so aus, als ob überhaupt keine Kollision stattgefunden hätte. Wenn außerdem die Partikel einen Collider zu stark durchdringen, werden sie möglicherweise auf die falsche Seite bewegt, so als ob sie 'undicht' wären. Um diese Probleme festzustellen, können Sie die Partikelgeschwindigkeiten untersuchen. Legen Sie dafür in den Anzeigeeinstellungen fest, dass der Geschwindigkeitskanal als Farbverlauf dargestellt wird.

Bei der Arbeit mit einem sehr kleinen Maßstab, z. B. beim Simulieren eines einzelnen Wassertropfens, müssen Sie unter Umständen die Frame-Rate der Szene aufgrund der sehr hohen Geschwindigkeiten im Verhältnis zu den kleinen Abständen und kurzen Zeitrahmen erhöhen.

Adaptivitätseinstellungen

Verwenden Sie die Adaptivitätseinstellungen in der Gruppe Simulationsparameter im Fenster Simulationsansicht, um die Auflösung automatisch anzupassen. So wird das höchste Maß an Details angezeigt, wann und wo es nötig ist, ohne unnötig Speicherplatz und Berechnungszeit in Anspruch zu nehmen. Für die Steuerung stehen vier Optionssätze zur Verfügung:

Räumliche Adaptivität

Die Option Räumliche Adaptivität wird verwendet, um Voxel mit niedrigerer Auflösung in der Mitte der Flüssigkeit zu erstellen, da dort kein hoher Detaillierungsgrad erforderlich ist. Die durch die Master-Voxelgröße festgelegte maximale Auflösung wird jedoch in Bereichen mit schnellen Bewegungen, entlang der Grenzen zu Kollisionsobjekten und entlang der freien Oberfläche (der Grenze zur Luft) beibehalten.

Diese Option ist in der Regel für die meisten Simulationen aktiviert.

Überschüssige Partikel löschen

Durch die Option Überschüssige Partikel löschen werden einige Partikel entfernt, wenn die Anzahl pro Voxel in Bereichen mit niedriger Auflösung einen bestimmten Grenzwert überschreitet. Deaktivieren Sie diese Option, wenn Sie einen Volumenverlust oder sonstige größere Unterschiede zwischen räumlich adaptiven und nicht adaptiven Simulationen feststellen.

Transport- und Zeitschritte

Über die Optionen Transportschritte und Zeitschritte in der Gruppe Simulationsparameter lässt sich einstellen, wie oft die Berechnungen für jeden Frame durchgeführt werden. Mehrere Iterationen führen zu einer höheren Genauigkeit, die Berechnung dauert jedoch länger. Passen Sie diese Einstellungen an, wenn Sie Probleme wie Volumenverlust, Partikelwölbungen, spontane Schübe und Lücken durch Collider bemerken.

  • Transportschritte steuert die Anzahl der Iterationen, die verwendet werden, um die Partikel im Anschluss an die Druckberechnungen entlang des Voxel-Geschwindigkeitsfelds zu führen. Passen Sie diese Einstellungen zunächst an, wenn Sie beispielsweise bemerken, dass Partikel statische Collider durchdringen. So lässt sich das Problem möglicherweise ohne längere Berechnungszeiten beheben. Da jedoch der Druck nicht neu berechnet wird und die Collider und andere Festkörper nicht mit jeder Iteration neu voxeliert werden, hilft die Option Transportschritte möglicherweise nicht bei sich schnell bewegenden Collidern und in anderen komplexen Situationen.
  • Zeitschritte steuert die Anzahl der Iterationen der gesamten Simulation pro Frame, einschließlich Voxelierungs-, Druck- und Transportphasen. Diese Einstellungen können die Genauigkeit vor allem bei hohen Geschwindigkeiten deutlich erhöhen, die Berechnungszeit kann sich dadurch jedoch verlängern.

Beide Optionen lassen sich gemeinsam verwenden. Dabei wird über Transportschritte die Anzahl der Iterationen in jedem Zeitschritt der Transportphase geregelt. Anders ausgedrückt: Jeder einzelne Frame beinhaltet möglicherweise mehrere Zeitschritte, je nach den Einstellungen für Zeitschritte. Und jeder Zeitschritt umfasst möglicherweise mehrere Transportschritte, je nach den Einstellungen für Transportschritte.

Adaptivität steuert, ob zusätzliche Unterschritte ausgelöst werden. Möglicherweise wird pro Frame eine unterschiedliche Anzahl von Iterationen durchgeführt, je nachdem, wie weit und wie schnell sich die Partikel in diesem Frame bewegen. Die Werte liegen auf einer nichtlinearen Skala:
  • Bei 0,0 können sich Partikel eine praktisch unbegrenzte Strecke bewegen, ohne weitere Unterschritte auszulösen.
  • Bei 0,1 können sich Partikel bis zu 10 Voxellängen bewegen, bevor weitere Unterschritte ausgelöst werden.
  • Bei 0,32 können sich Partikel bis zu 5 Voxellängen bewegen, bevor weitere Unterschritte ausgelöst werden.
  • Bei 0,5 können sich Partikel bis zu 1,0 Voxellängen bewegen, bevor weitere Unterschritte ausgelöst werden.
  • Bei 0,75 können sich Partikel bis zu 0,5 Voxellängen bewegen, bevor weitere Unterschritte ausgelöst werden.
  • Bei 1,0 können sich Partikel bis zu 0,001 Voxellängen bewegen, bevor weitere Unterschritte ausgelöst werden.
Min. Transportschritte/Min. Zeitschritte: Iterationen werden immer pro Frame durchgeführt. Das bedeutet, dass Sie eine bestimmte Anzahl von Unterschritten erzwingen können, selbst wenn die Partikel langsam sind. Meist ist es jedoch besser, stattdessen die Adaptivität anzupassen, um unnötige Berechnungen zu vermeiden.
Anmerkung: Für das erste Frame einer Simulation wird nur eine Iteration durchgeführt.

Max. Schritte bestimmt die Gesamtzahl der pro Frame durchgeführten Iterationen und gibt einen Grenzwert für die Berechnungsmenge an. Die Partikel bewegen sich jedoch immer um die gesamte Entfernung, die durch ihre Geschwindigkeit und die Frame-Länge vorgegeben ist. Das bedeutet, dass die Partikel den durch die Adaptivität festgelegten Grenzwert möglicherweise nicht immer einhalten. Wenn die Adaptivität beispielsweise auf 0,5 eingestellt ist, aber der Wert für Max. Schritte sehr niedrig ist, können schnelle Partikel möglicherweise nicht die gesamte Entfernung in Schritten von 1 Voxellänge zurücklegen. In diesem Fall ist jeder Schritt etwas länger als 1 Voxellänge, damit die gesamte Entfernung zurückgelegt werden kann.

Zeitrahmen ist eine Einstellung speziell für Transportschritte, durch die die Geschwindigkeit des Partikelflusses verändert wird. Werte über 1,0 beschleunigen den Fluss, ohne neue Geschwindigkeiten oder Beschleunigungen einzuführen, während Werte zwischen 0,0 und 1,0 den Fluss verlangsamen. Das Ergebnis ist möglicherweise nicht physikalisch korrekt, kann jedoch nützlich sein, wenn Sie eine Simulation schnell zeitlich anpassen möchten. Seien Sie jedoch vorsichtig, da durch diese Einstellung unerwünschte Nebeneffekte auftreten können, insbesondere bei extremen Werten.

Überlegungen zur Skalierung

Die Skalierung ist sehr wichtig bei der Arbeit mit Flüssigkeitssimulationen, da sich diese direkt auf die Glaubwürdigkeit des Endergebnisses auswirken. Denken Sie beispielsweise an die physisch verkleinerten Modelle von Seen und Schwimmbecken in alten Filmen, die nie ganz echt wirkten. Dies ist darauf zurückzuführen, dass in der Realität eine ein Meter hohe Welle in einem Gewässer anders aussieht als eine ein Zentimeter hohe Welle. Deshalb ist es wichtig, dass Sie den Einheiten die nötige Aufmerksamkeit schenken, um die bestmöglichen Ergebnisse zu erhalten, ohne dabei zu große Arbeitsspeicherreserven und zu viel Berechnungszeit zu investieren.

Bei der Erstellung einer Simulation gilt es, drei wichtige Parameter zu berücksichtigen:

Mit der Voxelgröße kann bestimmt werden, wie genau die Simulation durchgeführt wird. Je kleiner dieser Wert in Zentimeter ist, desto genauer wird die Berechnung. Dies geht jedoch auf Kosten von mehr Speicher und Ressourcen. Ein größerer Wert führt zu weniger genauen Ergebnissen: Sie werden erkennen, dass keine Partikel erzeugt wurden, das Partikel über Kollisionsflächen schweben oder nicht durch Löcher fließen. Die Voxelgröße wird bei der Übertragung aller Netze zur Simulation verwendet, sodass die Netzgenauigkeit beeinträchtigt wird; außerdem ist es die minimale Partikelgröße.
Warnung: Sehr kleine Voxelgrößen können zu hohem Arbeitsspeicherverbrauch und zu Systeminstabilität führen.

Das Max. Einheits-Setup ist wichtig, da es festlegt, wie sich Flüssigkeiten verhalten und wie viel Arbeitsspeicher sie verbrauchen. Bei der Arbeit mit Flüssigkeiten dürfen Sie nie die realen Abmessungen der Szene aus den Augen verlieren. Daher sollten Sie keine internen Einheiten verwenden. Setzen Sie die Einheitenskala auf Meter, um eine Vorstellung von der tatsächlichen Größe der Szene zu erhalten. Max Fluids berücksichtigt auch benutzerdefinierte Einheiten. Sie müssen aber beim Ändern darauf achten, welche die vorgabemäßige Einheit ist. Im Idealfall sollten Sie ein Maßband zur Hand haben. So können Sie Objekte messen und sehen, wie groß sie tatsächlich sind. Einheiten haben auch einen Einfluss darauf, wie die Szene aussieht. Eine 15 cm hohe Welle sieht nämlich anders aus als eine 15 Meter hohe Welle. Die benutzerdefinierte Überschreibung von Einheiten im Flüssigkeitssolver sollte nur verwendet werden, wenn Sie künstlich von den Einheiten eingeschränkt werden, z. B. einer Game-Engine, oder Sie einen Spezialeffekt wie das Rendern von realistischem Wasser in Puppenhausgröße benötigen.

Szenengröße ist die Größe der Szene mit realen Bemaßungen, die durch das Einrichten von Einheiten festgelegt wird. Die Szenengröße hat eine direkte Auswirkung darauf, wie Sie die Voxelgröße festlegen. Wenn Ihre Flüssigkeitsszenengrenzen beispielsweise 10 mal 10 km sind, wird die Einstellung der Voxelgröße auf 0,05 cm höchstwahrscheinlich niemals zu Ende berechnet werden, da die Arbeitsspeicheranforderung so groß ist. Im Idealfall sollten Sie zunächst mit einer sehr großen Voxelgröße beginnen und sich dann nach unten arbeiten, bis Sie angemessene Ergebnisse unter Zuhilfenahme eines angemessenen Arbeitsspeichervolumens erhalten. Außerdem gilt: Je dichter das Voxelraster ist, desto länger braucht die Simulation zur Berechnung.

Sowohl die Option Transportschritt als auch die Option Transportzeit bestimmen die Simulationsqualität. Sie haben jedoch eine größere Auswirkung darauf, wie schnell sich Partikel bewegen, als auf die Gesamtqualität.

Anmerkung: Verwenden Sie niemals das Werkzeug Skalieren für das Flüssigkeitsobjekt oder das Bewegungsfeld, da dadurch die Berechnungen falsch durchgeführt werden.

Arbeit mit kleinem Maßstab

Bei Simulationen mit kleinem Maßstab sind aufgrund der hohen Geschwindigkeiten, der kurzen Entfernungen und der Voxelgrößen einige zusätzliche Überlegungen vonnöten. Möglicherweise müssen Sie die Einstellungen für Zeitschritt und Transportschritt erhöhen, um ein gutes Ergebnis zu erzielen. In einigen Fällen kann es auch erforderlich sein, die Frame-Rate der Szene zu erhöhen, um eine Hochgeschwindigkeitskamera zu emulieren.

Bei sehr kleinen Maßstäben wie beim Simulieren eines einzelnen Wassertropfens müssen Sie möglicherweise einige zusätzliche Anpassungen vornehmen. So führt Oberflächenspannung beispielsweise selbst mit vielen Zeitschritten nicht immer zu genauen Ergebnissen. Es ist daher möglicherweise effizienter, physikalisch nicht präzise Werte zu verwenden, um ein realistischeres Ergebnis zu erzielen. In einigen Fällen kann auch eine Verringerung des Schwerkraftbetrags nützlich sein.

Zudem können Sie Einstellungen wie Wirbelstärke und Tröpfchen deaktivieren, damit keine Berechnungen durchgeführt werden, die in diesem Maßstab keine Auswirkungen haben.

Netze

Das Netz ist eine weitere Darstellung des Ergebnisses. Zusätzlich zum Rendern kann es auch als Alembic oder anderer Cache für die Verwendung in einer anderen Szene oder Software exportiert werden. Es verfügt über keine Polygone, es sei denn, Sie aktivieren die Vernetzung für die Form.