Das Simulationssystem
Allgemein
Maxon legt mit einer neuen Simulationstechnik den Grundstein für ein neues Dynamicssystem in Cinema 4D. Es handelt sich dabei um ein System, das alle möglichen Arten von physikalischem Verhalten berechnen kann, als da wären z.B. Kleidung und Spline-Simulation ("Seil").
Derzeit funktionieren mit dem neuen Simulationssystem alle Tags, die Sie im Tag-Unterverzeichnis Simulations-Tags finden:
-
Kleidung: kann polygonalen Objekten und polygonerzeugenden Generatoren zugewiesen werden.
-
Seil (das frühere Spline-Dynamics-Tag): kann Splines zugewiesen werden.
-
Konnektor: wird Seil-, bzw. Kleidungs-Tag tragenden Objekten zugewiesen und befestigt diese aneinander.
-
Kleidungsgürtel (das frühere Gürtel-Tag): wird Kleidungs-Tag tragenden Objekten zugewiesen und befestigt diese an anderen polygonalen, nicht simulierten Objekten.
-
Seilgürtel (das frühere Haar-Constraint-Tag): wird Seil-Tag tragenden Objekten zugewiesen und befestigt diese an anderen polygonalen, nicht simulierten Objekten.
-
Kollision: wird nicht simulierten polygonalen Objekten und polygonerzeugenden Generatoren zugewiesen, die dem Simulationssystem als Hindernis dienen, d.h. Objekte können mit diesen kollidieren und druchdringen sie nicht.
Das neue Kleidungs/Spline-Simulationssystem arbeitet intern anders als das alte System. Es gibt folgende grundlegenden Unterschiede:
-
Altes System: das alte System basierte auf Impulsen und Kräften, die zu Beschleunigungen und Geschwindigkeiten führten. Massen und Federn spielten dabei eine große Rolle.
-
Neues Simulationssystem: Objektpunkte werden als Partikel angesehen, die durch - je nach Anwendungsgebiet - spezifische Regeln (Constraints genannt) verbunden sind. So gibt es für Kleidung z.B. 2 Haupttypen von Constraints: Abstandsbeschränkungen für Partikel, die durch Mesh-Kanten verbunden sind und Biegebeschränkungen für nebeneinanderliegende Mesh-Polygone. Erstere versuchen den Partikelabstand konstant zu halten, letztere den Winkel zwischen den Polygonen. Dann gibt es z.B. noch Kontakt-Constraints, die Partikel (bzw. Kanten, Dreiecke), die sich zu nahe kommen, sachte auseinanderschieben, um Durchdringungen zu vermeiden. Für jedes Animationsbild muss ein sogenannter “Solver” dies alles unter einen Hut bringen und die Partikel entsprechend positionieren.
Das klingt alles kompliziert, reduziert sich im Endeffekt aber auf die folgenden Vorteile: Das neue Simulationssystem ist schneller (lässt sich z.B. auch auf der GPU berechnen), präziser, realistischer, stabiler und einfacher in der Bedienung. Außerdem ist mit dem neuen System folgendes möglich:
-
Die meisten der Simulations-Kraftobjekte wirken.
-
Die Zerreissenfunktionalität benötigt kein Kleidungs-Oberflächen-Objekt.
-
Das Kleidungs-Tag tragende Objekt muss nicht mehr polygonal sein, kann also auch ein Generator sein.
-
Ist in Hierarchien dem obersten Objekt ein Kleidungs-Tag gegeben, so verhalten sich untergeordnete Objekte, als hätten sie jeweils ein eigenes, werden also unabhängig voneinander berechnet.
Das neue Simulationssystem hat - wie von Simulationssystemen allgemein gewohnt - ebenfalls Solver-Grundeinstellungen, die Sie unter “Projekteinstellungen/Simulation” finden. Da sich diese Voreinstellungen - natürlich - auf das Simulationsverhalten auswirken, können Sie verschiedene Simulationen mit unterschiedlichen Voreinstellungen versehen, indem Sie mehrere Simulationsszenen-Objekte verwenden, die identische Parameter wie die Simulations-Projektvoreinstellungen vorhalten. Den Simulationsszenen-Objekten können dann unterschiedliche Tags/Kräfte/Kleidungsgürtel und -Kollisionsobjekte zugewiesen werden. Die in einem Simulationsszenen-Objekt enthaltenen Tags interagieren miteinander, nicht jedoch mit denen eines anderen Simulationsszenen-Objekts.
Tipps und Tricks
-
Zu Beginn einer Simulation sollte es unter Berücksichtigung der Einstellung Dicke zu keinen Kontakten kommen. Ansonsten wird bei Simulationsstart innerhalb eines Animationsbildes alles aus der Kontaktzone weggeschoben, was dann zu Knittern und Zittern führen kann.
-
Bei zu schnellen oder abrupten Bewegungs- oder Deformationsänderungen kann es zu Durchdringungen bei der Kollision kommen. Allgemein hilft hier das Erhöhen der Zwischenschritte.
-
Bei Simulationselementen, die weit vom Weltursprung entfernt sind, kann es zu mathematischen Rundungsfehlern kommen (GPUs rechnen mit 32 Bit - statt 64 Bit bei der CPU), was sich in seltsamem Simulationsverhalten äußern kann (z.B. verschiedenes Kleidungsverhalten bei gleichen Einstellungen, z.B. 2 Fahnen, die weit voneinander entfernt sind flattern total unterschiedlich). Hier kann es helfen, die zu simulierenden Objekte näher an den Weltursprung zu rücken oder Szenenskalierung zu variieren.
-
Es ist z.B. nicht ganz einfach, physikalisches Textilverhalten zu kontrollieren. Hauptsächlich ist textiler Stoff charakterisiert durch seine Steifigkeit. Im neuen Simulationssystem gibt es zwar einen entsprechenden Parameter Biegsamkeit, allerdings ist dieser von einer ganzen Reihen Faktoren abhängig, die die Steifigkeit beeinflussen. Es sind dies z.B. Zwischenschritte, Iterationen (beide Simulations-Projekteinstellungen), Biegsamkeit, Dehnbarkeit (Kleidungs- bzw. Seil-Tag) und auch der Meshdichte. Deshalb können Angaben wie “Biegsamkeit = 1 und das Objekt verhält sich wie Leder” nicht gemacht werden.
-
Die eben schon erwähnte Meshdichte und -verteilung hat ebenfalls großen Einfluss auf das Verhalten einer Simulation.
Sie sehen auf dieser Abbildung 5 Kugeln mit gleichem Durchmesser, exakt gleichen Kleidungs-Tag-Einstellungen, aber verschiedenen Meshes. Beim Fallen und Kollidieren mit der Ebene werden sich diese Objekte völlig unterschiedlich verhalten. Die zweitletzte Kugel mit dem dichten Mesh wird sich viel stärker verformen als die anderen, die Kugel rechts hat auf der rechten Seite eine viel höhere Meshdichte, was die Masse dort konzentriert. Somit wird sich diese nach Bodenkontakt nach unten rechts drehen.
Limitationen
-
Der Geschwindigkeitsvorteil bei der Berechnung auf der Grafikkarte (GPU) stellt sich erst bei hinreichend komplexen Simulationen ein. Bei kleinen Szenen, bei denen nur ein paar hundert Polygone beteiligt sind, kann die CPU schneller sein.
-
Beim Berechnen auf der GPU kommt es beim Starten der Simulation zu einer kleinen Verzögerung. In dieser Zeit werden eine Vielzahl von Daten kompiliert. Das passiert nur bei Erststart, wenn Sie zurückspringen und erneut starten, geht es unverzüglich los.
-
Simulationen führen auf verschiedenen Rechner zu verschiedenen Ergebnissen. Ebenso kommt es zu Unterschieden, wenn Sie die Simulation auf der CPU oder der GPU (auszuwählen hier: Hardware) berechnen lassen. Deswegen sollten Sie Simulationen immer backen/cachen, wenn Sie identische Ergebnisse benötigen (z.B. beim Rendern auf einer Renderfarm). Sie tun das das z.B. beim Kleidungs-Tag im Tab “Cache”.
.