> > > Physiksimulation: Wenn sich Legosteine wie Flüssigkeiten verhalten

Physiksimulation: Wenn sich Legosteine wie Flüssigkeiten verhalten

DruckenE-Mail
Erstellt am: von

lego simulationEntwickler von Game-Engines und auch solche bei AMD und NVIDIA versuchen sich immer wieder an Physik-Engines oder APIs, die das Verhalten von Flüssigkeiten möglichst realistisch nachahmen sollen. Wir hatten dazu bereits einige Meldungen, da es in den letzten Monaten scheinbar große Fortschritte in der Entwicklung solcher Simulationen gab. Meist wird hier die PhysX-API von NVIDIA verwendet, die mit WaveWorks auch entsprechende Bibliotheken bereithält. Mit am beeindruckensten ist sicherlich eine Küstendemo auf Basis der Unreal-4-Engine.

Der kanadische Programmierer Ryan Guy hat ein digitales Modell für Legosteine erstellt, welches er als Open-Source-3D-Paket zur Verfügung stellt und welches in der freien Software "Blender" ausgeführt werden kann. Wie sicherlich nicht viele erwarten würden, ist das Verhalten von Legosteinen gar nicht so einfach zu berechnen und eine entsprechende Umsetzung womöglich sogar noch schwieriger als die Simulation echter Flüssigkeiten. Hintergrund der Entwicklung einer solchen Software ist die Tatsache, dass ein echter Brickfilm, also ein animierter Film in dem Legosteine verwendet werden, üblicherweise Frame für Frame aufgebaut und dann zusammengesetzt wird. Bei einer hohen Anzahl an Steinen und einer bestimmten Szene ist dies natürlich sehr aufwändig und hier könnte eine solche Software Abhilfe schaffen.

Neben der Simulation und dem Verhalten von "Legosteinen als Flüssigkeit" hat sich Guy aber auch noch weitere Modelle ausgedacht. Darunter sind die Visualisierung von Federsystemen oder Oberflächenrekonstruktionen wie eine Gischt, Luftblasen oder Schaum. Teilweise ist der Code dieser Modelle auf GitHub freigegeben worden. Auch das von Guy entwickelte Programm GridFluidSim3D ist auf GitHub zu finden.

Die meisten Szenen hat Ryan Guy auf seinem Notebook gerendert. Darin stecken ein Intel Core i5-4200U, 8 GB Arbeitsspeicher und eine Intel HD Graphics 4400. Bereits aus den technischen Daten wird ersichtlich, dass es sich dabei sicherlich nicht um die typische Rendering-Maschine handelt und so ergeben sich auch Renderzeiten von 40 Stunden für eine zusammenfallende "Wasserkugel" aus Legosteinen. Dabei sind die verschiedenen Abschnitte des Renderings hinsichtlich des Rechenaufwand höchst unterschiedlich. Die in Blender integrierte physikalische Path-Tracing-Render-Engine ist dabei am rechenintensivsten. Die Flüssigkeitssimulation aus dem GridFluidSim3D-Programm verwendet ein Polygonnetz, welches in Blender geladen und dort gerendert wird. Diese Simulation dauerte bereits 6,7 Stunden, hinzu kommt das Rendering mit 37 Stunden was insgesamt dann sogar etwas mehr als 40 Stunden ergibt.

Die erwähnte Simulation der Wasserkugel kommt auf eine Auflösung von 128 x 256 x 128 Steinen. Am Ende werden 5,88 Millionen Partikel berechnet und die gesamte Dauer der Simulation beträgt 494 Frames. Mit entsprechend schnellerer Software dürfte der gesamte Rendering-Prozess natürlich deutlich schneller ablaufen, wobei wir derzeit nicht abschätzen können, ob das Rendering teilweise auf einer schnellen GPU erfolgen könnte.