Probleme mit der Fluidsimulation und warum ist sie teuer?

Ziel ist es, 10 Sekunden lang eine hochdetaillierte Flüssigkeitssimulation für eine Nahaufnahme mit 60 Bildern pro Sekunde zu erstellen.

Nachdem ich etwa einen Tag damit verbracht hatte, MantaFlow mit Flip Fluis zu experimentieren und zu vergleichen, entschied ich mich für Letzteres, da sich MantaFlow je nach Auflösung sehr unvorhersehbar verhält.

Ich ging davon aus, dass das Wasser die Oberfläche des Beckens in 50 Bildern erreichen würde + Sie benötigen 10 Sekunden der Animation selbst bei 60 Bildern pro Sekunde, was zu einer Simulation von 650 Bildern mit einer Auflösung von 150 Millionen Voxeln führt. Diese Simulation auf dem Ryzen 3700x dauerte 5 Tage.

Weiterhin stellte sich heraus, dass der Blender beim Rendern abstürzt, wenn die Geometrie in FlipFluids zu hochpolygonal ist. Ich wollte die Simulation wirklich nicht noch einmal mit einer niedrigeren Auflösung durchführen und wieder mehrere Tage warten. Ich verbrachte ein paar Tage damit, nach einer Lösung für das Problem zu suchen, und begann sogar darüber nachzudenken, zu MantaFlow zurückzukehren.

Ich habe die Szene von Cycles auf Octane Render umkonfiguriert, das Problem blieb bestehen und ich beschloss, zu Cycles zurückzukehren.

Blender verarbeitet im Allgemeinen eine große Anzahl von Polygonen sehr gut, das Problem liegt in der FlipFluids-Geometrie. Die Addon-Entwickler geben das Problem auf ihrem GitHub zu und schreiben, dass es auf der Blender-Seite liegt, da es nicht gut mit in Python erstellter HighPoly-Geometrie oder ähnlichem funktioniert.

Ich habe beschlossen, die Geometrie nach Alembic zu exportieren, damit ich sie dann wieder importieren kann, sodass es keine Probleme damit geben sollte. Ich habe versucht, auf verschiedene Weise zu exportieren, aber es endete immer mit einem Absturz des Mixers. Ein Export dauerte sogar mehr als einen Tag.

Dann habe ich in einem amerikanischen Forum eine Lösung gefunden, in der es hieß, dass man in der Geometrie vor dem Export nur die Modifikatoren austauschen und den Smooth-Modifikator ablegen muss, woraufhin die FlipFluids-Geometrie schnell nach Alembic exportiert wurde. Es funktionierte. Ich habe die Geometrie nach Alembic exportiert, die ursprüngliche FlipFluids-Geometrie aus dem Render- und Ansichtsfenster ausgeblendet, aber die Blasen und den Schaum belassen und die Alembic-Geometrie importiert.

Ich war angenehm überrascht, dass die Alembic-Geometrie die Geschwindigkeitsinformationen beibehielt und MotionBlur auf dem Wasser korrekt funktionierte und die Szene nicht mehr abstürzte. Genauer gesagt ging es nicht sofort los, sondern etwas später.

Ich habe das Rendern gestartet, es stürzte erst am nächsten Tag nach etwa hundert Frames ab. Es ist normal, Sie können leben, ich habe das Rendern einfach dort neu gestartet, wo es aufgehört hat.

An der Kontaktstelle des Strahls mit der Wasseroberfläche sieht die Flüssigkeit dunkel aus. Überhaupt keine „blaue Lagune“. Das Problem sind die Einschränkungen der PathTracing-Technologie. An dieser Stelle gibt es eine große Anzahl von Reflexionen und Brechungen von der Wasseroberfläche und von Blasen, und der Renderer zählt maximal 12 Reflexionen und zeichnet dann Schwärze. Sie können natürlich nicht 12, sondern 128, 1024 usw. einstellen, aber dann müssen wir Monate auf das Rendering-Ergebnis warten. Deshalb habe ich den Blasen türkisfarbenes Selbstleuchten hinzugefügt und dem Wasser selbst zehnmal weniger Selbstleuchten. Der Pfosten ist weg, die Renderzeit hat sich nicht geändert. Ich rendere von Anfang an. Gleichzeitig habe ich beschlossen, nicht bei Bild 50, sondern bei Bild 100 zu beginnen, wo bereits Vibrationen auf der Wasseroberfläche sichtbar sind. Außerdem habe ich den Lichtquellen Helligkeit und dem Wasser etwas Nebel hinzugefügt.

Nach einiger Zeit des Testens fiel mir auf, dass sich die Szene in Blender 3.5 deutlich stabiler verhält als in Version 3.6, sodass ich mich entschied, weiter daran zu arbeiten. Materialien mit der Mix-Karte mussten neu konfiguriert werden, da es in Version 3.6 anders funktioniert, und die ersten Frames müssen neu gerendert werden, da jetzt einige Materialien etwas anders aussehen.

Einen weiteren Tag später betrachtete ich die ersten Sekunden der resultierenden Animation und bemerkte, dass die Pflanzen nicht wie geplant im Wind schwankten, die Zweige keine Textur hatten und das Gras verschwunden war. Das Problem ist, dass ich das Projekt auf einem Laptop gemacht habe und die Simulation und das Rendering auf einem PC, und auf dem PC gab es in Version 3.5 eine alte Version der Vegetations-Addons. Das Vegetations-Addon wurde neu installiert und die Vegetation neu konfiguriert. Plugin für Gras neu installiert, Gras neu konfiguriert. Ich habe die Animation so eingestellt, dass sie erneut gerendert wird.

Ich habe das Programm Batch Render Creator entdeckt, dank dessen ist die Anzahl der Abstürze beim Rendern noch weiter zurückgegangen.

Das Selbstleuchten aus diesem Winkel, in der Nähe des dunklen Risses, aus dem das Wasser herausfließt, sieht nicht besonders gut aus. Leider verfügt Blender nicht über eine Distanzkarte, die in 3ds Max und Corona verfügbar ist, sodass Sie die Version ohne Selbstglühen erneut rendern und in AfterEffecs mischen müssen, damit im Bereich von kein Selbstglühen auftritt ​die Lücke, aber es gibt sie auch an anderen Stellen.

Es gab auch andere Probleme, zum Beispiel mit der Kameraposition, weil ich den Anfang der Animation von Frame 50 auf Frame 100 verschoben habe, und ich musste auch einiges neu rendern. Und ich musste an Geometrieknoten herumbasteln, um den Boden in der Nähe des Wassers abzuschneiden, da ich die Simulation nicht für die gesamte Tiefe des Beckens durchgeführt habe.

Als Reaktion auf potenzielle Kritiker, die so etwas noch nie gemacht haben, aber glauben, dass es bei Houdini oder PhoenixFD weniger Probleme gibt und alles schneller erledigt werden kann, schlage ich vor, dass Sie zunächst eine 150+ Millionen Voxel-Simulation erstellen und diese auf der GPU zusammen rendern mit animierter Vegetation und Verschiebung, und notieren Sie dann, wie lange Sie dafür gebraucht haben und auf welche Nuancen und Unverträglichkeiten Sie gestoßen sind.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert