Simulation

Die meisten der folgenden Einstellungen können animiert werden. Damit ist es möglich, die Einstellungen an die verschiedenen Phasen einer Simulation anzupassen, d.h. zum Beispiel, Sie können rechenzeitintensive Parameter wie Zwischenschritte oder Iterationen dann erhöhen, wenn Sie wirklich gebraucht werden und in Phasen wo z.B. keine Kollisionen stattfinden, stellen Sie diese auf niedrige Werte, um die Simulation dort beschleunigt ablaufen zu lassen.

Zwischenschritte[1..200]

Dieser Parameter ist ausschlaggebend für die Präzision der Simulation. Je höher die Werte, desto genauer wird gerechnet und desto präziser erfolgt die Kollisionsabfrage (allerdings ist auch die Berechnungszeit größer).

Jedes Animationsbild wird intern zeitlich mit den hier angegebenen Zwischenschritten unterteilt. Für jeden Zwischenschritt wird der Simulationsalgorithmus (Berechnung der Constraint-Wirkung, Objektpunktpositionen und -geschwindigkeiten etc.) komplett durchgerechnet.

Besonders im Falle von Durchdringungen bei hohen Geschwindigkeiten sollten Sie diesen Wert erhöhen. Stellen Sie sich ein schnelles Objekt vor, das mit einem herabhängenden Tuch kollidiert. Angenommen, in Bild 12 ist es links neben dem Tuch und in Bild 13 schon rechts daneben. Cinema 4D würde hierbei keine Kollision feststellen (wenn Zwischenschritte auf 1 stünde). Bei mehreren Zwischenschritten, in denen dann z.B. Bild "12.2" und Bild "12.3" berechnet würden, könnte die Kollision festgestellt und korrekter verarbeitet werden.

Jetzt muss leider ein Nachteil hervorgehoben werden: Zwischenschritte (und nicht nur diese, auch Iterationen) haben einen Einfluss auf die Steifigkeit der zu simulierenden Kleidungsobjekte. Je größer Zwischenschritte/Iterationen, desto steifer - oder anders gesagt, desto genauer, also präziser wird z.B. Biegsamkeit/Dehnbarkeit eingehalten - verhält sich der Stoff.

Vereinfacht gesagt passiert das deswegen: erst bei sehr vielen Zwischenschritten und Iterationen nähert sich das Ergebnis der echten Lösung an. Meistens müssen aus Geschwindigkeitsgründen diese Werte kleiner gestellt werden. D.h. der Solver, der zahllose Constraints berücksichtigen muss, kürzt ab und weicht gegenüber dem echten Ergebnis ab. Diese Abweichung macht sich primär in fehlender Steifigkeit (= gummiartiges Verhalten), aber evtl. auch unpräziserer Kollision etc. bemerkbar.

Hinweis: Sollte es zu vielen Durchdringungen kommen, versuchen Sie zuerst Durchgänge zu erhöhen, bevor Sie das dann mit Zwischenschritten tun. Erstere rechnen schneller.

Beachten Sie, dass es bei sehr hohen Werten (z.B. 200) zu paradoxen Verhaltensweisen kommen kann: anstatt dass die Präzision zunimmt, wird sie schlechter. Der Grund hierfür liegt in der 32-Bit-Rechengenauigkeit der GPU. Probieren Sie stattdessen den nächsten Parameter Iterationen - statt Zwischenschritte - zu erhöhen. Siehe auch Tipps und Tricks für weitere entsprechende Maßnahmen.

Iterationen[0..1000]

Intern wird ein iterativer Algorithmus verwendet, der sich dem mathematisch(!) optimalen Endergebnis (= alle Constraints werden eingehalten) möglichst gut annähert. Iterationen legt dabei fest, wie oft die zahlreich wirkenden Constraints pro Zwischenschritt durchgerechnet werden.

Die praktischen Auswirkungen z.B. auf das Kleidungsverhalten ist: der Stoff wird steifer - weil Constraints besser eingehalten werden.

Höhere Werte können Punktezittern (“Jitter”) zu vermeiden helfen.

S.a. vorherigen Parameter Zwischenschritte, beide Einstellungen sind eng miteinander verküpft und haben ähnliche Wirkungen.

2023

Wenn Sie Iterationen auf 0 stellen, kommt intern ein anderer Solver zum Einsatz, der langsamer als der Standard-Solver konvergiert, im übertragenen Sinne also die Constraints etwas laxer behandelt. Gleichzeitig wird Glätteniterationen auf 1 gesetzt.

Damit erzielen Sie sich eine größere Robustheit und Homogenität der Simulation. Allerdings wirken Kleidung und Seile dann dehnbarer.

Besonders bei Simulationen mit vielen Constraints, die mitunter gegeneinander arbeiten - Constraint A will z.B. einen Punkt nach links bewegen, Constraint B nach rechts - kann es zu Punktezittern (s.a. nächsten Absatz) kommen. In solchen Fällen kann der andere Solver bessere Ergebnisse liefern.

Um die größere, gummiartigere Dehnbarkeit auszugleichen, wird empfohlen, Zwischenschritte zu erhöhen.

Vermeiden von Punktezittern (“Jitter”)

Die folgenden beiden Einstellungen dienen primär dazu, ein auf kleine Bereiche reduziertes Punktezittern zu reduzieren.

Allgemein kann es auch helfen, Zwischenschritte zu reduzieren und Iterationen zu erhöhen.

Glätteniterationen[0..1000]

Bei den internen Punktberechnungen durch die verschiedenen Constraints, die an diesen “zerren”, kann es zu großen Punktabweichungen kommen, die den Eindruck erwecken können, dass zusätzliche, plötzlich auftretende Impulse wirken.

Mittels Glätteniterationen > 0 werden zusätzliche, mittelnde Berechnungen vorgenommen, wodurch dieser Effekt an Wirkung verliert, es also zu weniger Zittern kommt.

Verwenden Sie diesen Parameter nur, wenn er notwendig ist, da er Nebeneffekte wie etwa sich ändernde Steifigkeiten zur Folge haben kann.

Dämpfung[0..100%]

Mittels dieses Parameters kann Geschwindigkeit bzw. Energie aus dem System genommen werden. Es sind kleine Werte so bis ca. 3% angeraten. Höhere Werte lassen die Simulation dann zunehmend wie unter Wasser getaucht erscheinen.

Simulationen neigen dazu, gelegentlich zu “explodieren”, dem kann durch vorsichtiges Erhöhen dieses Wertes entgegen gearbeitet werden.

2023

Geschwindigkeit abschneiden

Beschleunigung abschneiden

Diese beiden Einstellungen dienen primär dazu, instabile Simulationszustände - die in einem Einfrieren der Simulation gipfeln könnten - zu verhindern. Es werden dabei zu große Geschwindigkeiten bzw. Beschleunigungen (beide auf Punktebene) begrenzt. Das hilft dabei, Kollisionen zu verringern und Durchdringungen zu vermindern, die andernfalls nur durch rechenzeitaufwendiges Hochsetzen der Parameter (Kollisions)-Durchgänge und/oder Zwischenschritte in den Griff zu bekommen wären.

Es sei hier noch ein Effekt namens “TDR (Timeout Detection & Recovery)” erwähnt, ein Betriebssystemschutzmechanismus, der bei überlasteter Grafikkarte die Simulation mit einer Fehlermeldung stoppt. Dieser Effekt kann durch die beiden Einstellungen ebenfalls gemindert werden.

Die beiden Methoden haben den Nachteil, dass die Simulation zwar stabiler läuft, das aber auf Kosten des Realismus geht, da die gesamte Simulation gedämpft wird.

Verwenden Sie dann:

Beachten Sie den grundlegenden Unterschied zwischen dem Abschneiden der Geschwindigkeit und der Beschleunigung: im ersten Fall wird die Geschwindigkeit tasächlich effektiv begrenzt, während es bei letzterem zwar zu keinem Beschleunigungszuwachs, aber trotzdem noch zu einem Geschwindigkeitszuwachs kommen kann (solange eine - positive - Beschleunigung herrscht, so lange wächst die Geschwindigkeit).

Für Geschwindigkeit abschneiden haben Sie folgende Optionen:

Das ist alles nicht ganz einfach zu verstehen. Im Prinzip definieren Sie maximal zulässige Geschwindigkeiten, die in einigen Fällen von bestimmten Gegebenheiten abhängen.

Hinweis:Wenn Sie sehr schnelle, animierte Kollisionsobjekte vorliegen haben, die mit einem Kleidungsstück/Soft Body kollidieren, kann es bei zu großer Geschwindigkeits- bzw. Beschleunigungsbegrenzung insofern problematisch werden, als dass das Kollisionsobjekt einfach durchschlägt, weil den Objektpunkten schlicht nicht gestattet wird, sich schnell genug zu bewegen.

Von Bounding Box

Definieren Sie hier die maximal zulässige Geschwindigkeit, wenn Sie oben Szenenskalierung eingestellt haben.

Größe

Definieren Sie hier die maximal zulässige Geschwindigkeit, wenn Sie oben Absolut eingestellt haben.

Radius

Definieren Sie hier die maximal zulässige Geschwindigkeit, wenn Sie oben Kollisionsradius eingestellt haben.

Für Beschleunigung abschneiden haben Sie folgende Optionen:

Von Bounding Box

Definieren Sie hier die maximal zulässige Beschleunigung, wenn Sie oben Szenenskalierung eingestellt haben.

Kollisionen

Die Kollisionsabfrage ist immens wichtig, erstens sieht es unschön aus, wenn es zu Durchdringungen kommt und zweitens: ist das erst mal passiert, haften die durchdrungenen Bereiche zäh aneinander und sind nur noch schwer voneinander zu trennen. Deshalb gibt es im Folgenden eine ganze Reihe von separaten Einstellungen, die nur die Kollision betreffen und schneller berechnet werden können, als alternativ Zwischenschritte und Iterationen hochzusetzen, die sehr rechenzeitintensiv sind und darüber hinaus auch noch wesentliche Eigeschaften wie z.B. die Textilsteifigkeit stark ändern.

Diese Kollisionseinstellungen beziehen sich auf interne Rechenvorgänge und klingen in der Beschreibung kompliziert - und das sind sie auch prinzipiell, obwohl schon möglichst einfach beschrieben. Deshalb sei allgemein geraten, diese Werte bei Kollisionsproblemen vorsichtig zu erhöhen.

Durchgänge[0..1000]

Ein sich schnell bewegendes Textil kollidiert mit einem Zylinder, bei Durchgänge 0 kommt es linker Hand zu Durchdringungen, rechts bei einem Wert von 5 nicht.

Hiermit definieren Sie, wie oft pro Animationsbild eine Kollisionsabfrage vorgenommen wird. Wird eine Kollision erkannt, werden dynamisch und temporär Kollisions-Constraints (deren Präzision mit den nächsten 3 Parametern kontrolliert werden kann) erzeugt, die dann dafür sorgen, dass das Tag-tragende Objekt nicht in andere - oder auch auch seine eigene - Kollisionsgeometrie eindringen kann.

Definieren Sie hier einen Wert von 1, wird am zeitlichen Beginn des Simulationbildes eine Kollisionsabfrage vorgenommen. Die evtl. dabei erzeugten Kollisons-Constraints bleiben bis zur nächsten Kollisionsabfrage erhalten und werden für jeden Zwischenschritt berücksichtig und ausgewertet.

Besonders für schnelle, schnell rotierende oder allgemein nicht geradlinig bewegte Geometrie kann das Hochsetzen dieses Wertes Vorteile bringen. In so gut wie jedem Durchdringungsfall ist das Erhöhen von Durchgänge hilfreich.

Achten Sie darauf, dass Zwischenschritte nicht kleiner als Durchgänge ist, sonst passiert nichts.

Zusätzliche Iterationen[0..100]

Mittels dieses Parameters werden nur für die vorher von Durchgängen und Durchgang Endbild gefundenen, bereits vorhandenen Kollisions-Constraints noch einmal zusätzliche Iterationen vorgenommen. Auch das hilft, Kollisionen zu vermeiden.

Achten Sie darauf, dass bevor Sie Durchgänge, Durchgang Endbild und/oder Zwischenschritte erhöhen, es erst hier einmal mit der Aktivierung dieser Option probieren. Eventuell ist es damit schon getan. Zusätzliche Iterationen lässt sich relativ schnell berechnen.

Durchgang Endbild

Dieser Parameter fügt am zeitlichen Ende des Simulationbildes, bei der eigentlich schon alle neuen Punktepositionen berechnet wurden, zusätzliche Kollisonsabfragen ein. Damit soll verhindert werden, dass existierende Durchdringungen (die dem Algorithmus zunächst durch die Lappen gegangen sind) beim Berechnungsstart des nächsten Simulationbildes vorhanden sind, was sich problematisch auf die Simulation auswirkt. Bei jedem Durchgang werden die dabei neu entdeckten Kollisions-Constraints mehrfach (und zwar so oft wie bei Iterationen definiert) durchgerechnet.

Beachten Sie, dass nur kleine Werte im Bereich von 1-3 einen Nutzen bringen.

Sie könnten alternativ auch Durchgänge hochsetzen, aber Durchgang Endbild ist meist schneller.

Insbesondere auch bei sich bewegenden Kollisionsobjekten kann das Erhöhen von Durchgang Endbild (und auch Zusätzliche Iterationen) zu besseren Ergebnissen führen.

2023

Zeichnen

Zeichnen

Mit diesen Einstellungen können Sie sich einige Simulationselemente anzeigen lassen. Diese haben informellen Charakter. Mit Zeichnen können kann die Anzeigekonfiguration der folgenden Einstellungen zusammen ein- und ausgeschaltet werden.

Beachten Sie, dass die Elemente tatsächlich erst mit Start der Simulation (normalerweise also ab Bild 1) angezeigt werden.

Partikel zeichnen

Lassen Sie sich hiermit die simulierten Objektpunkten anzeigen. Der Kollisionsradius (Dicke bzw. Radius bei Meshes bzw. Splines) wird dabei ebenfalls angezeigt.

Dehnungs-Constraints zeichnen

Hiermit können die strukturerhaltenden Dehnungs-Constraints eingeblendet werden. Diese erstrecken sich stets zwischen benachbarten Objektpunkten und zuschaltbaren (s.a. Vierecksdiagonalen) Diagonalverbindungen.

Biegungs-Constraints zeichnen

Dieser - zugegebenerweise nicht all zu informative Modus - zeigt die Biegungs-Constraints, die dafür sorgen, dass ein Kleidungsobjekt nicht einfach in sich zusammenfällt, sondern Winkeländerungen zwischen Polygonen einen gewissen Widerstand entgegengesetzt.

Streben-Constraints zeichnen

Mittels dieser Option können Streben-Constraints (selbst wenn deren Darstellung im Soft Body Tag ausgeschaltet ist) eingeblendet werden. Sollten Streben reißen, so wird das ebenfalls abgebildet, indem diese ausgeblendet werden; im Tag sollte Zeichnen dazu auf Aus stehen.

Konnektoren zeichnen

Mittels dieser Option können Konnektor-Constraints (selbst wenn diese im Konnektor-Tag ausgeschaltet sind bzw. kein Konnektor-Tag selektiert ist) eingeblendet werden. Sollten Constraints reißen, so wird das ebenfalls abgebildet, indem diese ausgeblendet werden.