Blender Dokumentation: Soft Bodies: Wirkung innerer Kräfte
Diese Seite bezieht sich auf Blender v2.43 |
Um zu verhindern, dass sich die Vertices eines Softbody-Objektes vollständig unabhängig voneinander verhalten, müssen Kräfte definiert werden, die die Vertices zusammenhalten. Diese Kräfte wirken zunächst entlang der Edges, also der Verbindungen zwischen den Vertices. Dadurch können zwei Vertices aber immer noch frei umeinander rotieren, wenn sie nicht durch weitere Verbindungen daran gehindert werden werden.
Die logische Methode einen Körper daran zu hindern zusammenzufallen wäre es also, im Inneren des Körpers zusätzliche Edges zu erzeugen. Das funktioniert auch, hat aber leider Auswirkungen auf die Meshstruktur. Daher können virtuelle Edges benutzt werden:
- Stiff Quads: Zwischen den Vertices jedes 4-Gons (jeder Fläche mit genau vier Eckpunkten) werden zusätzlich diagonale Edges eingefügt.
- Rigidity: Diese Option erzeugt Verbindungen zwischen einem Vertex und seinen übernächsten Nachbarn (das schließt die diagonalen Edges mit ein). Die Steifigkeit dieser Verbindungen wird durch E Stiff * Rigidity bestimmt. Auch die Dämpfung wirkt auf diese Verbindungen.
Edges
[Bearbeiten]Die entscheidenden Eigenschaften des Materials legen Sie mit den Eigenschaften der Edges fest. Die beiden wesentlichen Parameter sind
- E(dge) Stiff(ness): Wieweit kann sich der Abstand zwischen den Vertices ändern? Eine Stiffness von 1 bedeutet, dass sich der Abstand zwischen den Vertices gar nicht ändern kann, damit erhalten Sie einen unelastischen Festkörper. Stoff hat eine Stiffness von ungefähr 0.9, Gummi eine kleinere Stiffness.
- E(dge) Damp(ing): Wie stark wird die Bewegung gedämpft? Bei Festkörpern wird die Bewegung überhaupt nicht gedämpft, bei Stoff ebenfalls fast nicht. Bei Gegenständen aus Gummi wird die Bewegung stark gedämpft.
In Abbildung 2 ist das für verschiedene Stiffness- [Steifigkeit] und Damping- [Dämpfung] Werte gezeigt. Die unteren Vertices der blauen Fläche fallen aufgrund ihrer Schwere nach unten.
- Die Steifigkeit beträgt 0.999, die unteren Vertices bewegen sich überhaupt nicht, da sie mit den oberen Vertices fest zusammenhängen.
- Die Steifigkeit beträgt 0.5.
- Die Steifigkeit beträgt nur noch 0.1, die unteren Vertices bewegen sich weiter nach unten.
- Die Steifigkeit beträgt ebenfalls 0.1, aber die Bewegung wird mit einer Dämpfung von 4 berechnet.
Selbst wenn ich die Dämpfung auf Null setze, wird noch gedämpft, auch bei maximaler Dämpfung zittert das Objekt noch nach.
Das liegt daran, dass die Berechnungsgenauigkeit möglicherweise nicht hoch genug ist. Der Parameter MinS auf dem Soft Body II-Panel erhöht die Berechnungsgenauigkeit bei Bedarf. In Abbildung 2 wurde mit dem Parameter MinS: 1100 gerechnet. Da die blaue Fläche nur aus vier Vertices aufgebaut ist, ist das kein Problem. Hat man viele Vertices steigt dadurch natürlich stark die Rechenzeit.
Das liegt daran, dass im Code absichtlich eine Ungenauigkeit ist:
Die neue Geschwindigkeit im Zeitschritt wird mit
v(t+dt)= v(t) + a(t)*dt
berechnet
der neue Ort jedoch mit
x(t+dt)= x(t)+ v(t+dt)*dt.
So können noch Situationen berechnet werden, in denen sonst die Differntialgleichungen numerisch explodieren würden. Ein Beispiel ist die sehr harte Feder mit Steifigkeit 0.999. BM