Masse-Feder-System (Computergrafik)

(Weitergeleitet von Feder-Masse-Modell)

Das Masse-Feder-System (kurz MFS, englisch Mass-Spring-System), in der Literatur auch Masse-Feder-Modell (kurz MFM), ist ein Verfahren in der Computergrafik, um das Deformationsverhalten von auf Polygonnetzen basierenden Objekten zu bestimmen. Es kann sowohl auf ebene als auch auf räumliche Objekte angewandt werden.

Die Gründe für die weite Verbreitung des Masse-Feder-Systems sind das leichtverständliche physikalische Konzept, die einfache Implementierung und die relativ niedrigen Rechenanforderungen.[1]

Geschichte

Bearbeiten

Das Masse-Feder-System basiert auf den physikalischen Ansätzen des Hookeschen Gesetzes.

Wegen der geringen Rechenleistung damaliger Computer wurde es anfänglich nur für Flächen genutzt (sowohl zweidimensionale, als auch im dreidimensionalen Raum eingebettete Flächen, zum Beispiel ein Tischtuch, das über einen Tisch fällt). Deshalb wurde es bei seinen ersten Verwendungen ab dem Jahr 1981 zunächst nur zur Haut- und Stoffverhaltenssimulation verwendet.[2][3] Erst 1989 wurden die ersten MFS-Volumenmodelle veröffentlicht.[4][5]

Heute ist es ein gängiges Verfahren in der Computerspielbranche und in der Medizin[1] zur Simulation operativer Eingriffe.

 
Zwei Masseknoten, die mit einer Feder und einem Dämpfer verbunden sind.

In einem Masse-Feder-System werden Objekte durch ein Netz aus Masseknoten, mechanischen Federn und Dämpfungsgliedern dargestellt.[2][6]

 
Ablauf der Verschiebung eines Punktes in einem Masse-Feder-System zu verschiedenen Zeitpunkten.

Die Knoten eines Polygonnetzes bekommen jeweils eine Masse. Die Kanten werden durch eine mechanische Feder, die mit einem Dämpfungsglied parallel geschaltet ist, dargestellt. Somit hat sie eine Federkonstante, eine Ruhelänge und eine Abklingkonstante. Das Dämpfungsglied ist notwendig, wenn das Objekt nach der Deformation nicht schwingen, sondern eine Ruhelage finden soll. In Abhängigkeit von den Masseknoten wird der Reibungskoeffizient errechnet.

Die Masseknoten sind regelmäßig im ganzen Objekt verteilt und stellen es so dar. Zur Verbindung der Masseknoten werden Federn zwischen sie gesetzt. Sind zwei Masseknoten miteinander verbunden, nennt man sie benachbart. Die Ausgangsform des Objekts liegt vor, wenn alle Federn in Ruhelage sind ( ), also deren Ruhelänge haben. Wird nun ein Masseknoten verschoben, liegt an den benachbarten Federn eine potentielle Energie an ( ), die nun durch Verschieben der benachbarten Massepunkten minimiert wird. Eine solche Verschiebung wirkt sich auf das ganze Netz aus, wodurch sich dieses verschiebt.

Um einer Verschiebung im Raum entgegenzuwirken, können Punkte „befestigt“ werden (an einer absoluten Position oder an einer relativen Position zu einem anderen Massepunkt).[6] Dadurch kann unter anderem eine plastische Deformation erzielt werden.

Das Masse-Feder-System kann, um physikalisches Verhalten realistischer zu machen, um eine Kollisionserkennung ergänzt werden, damit die Massepunkte auf Kollisionen untereinander und auf Kollisionen mit anderen Objekten reagieren können.

Berechnung

Bearbeiten

In der folgenden Herleitung wird von einem  -dimensionalen Raum ausgegangen.

Masse-Feder-Systeme haben ihren Ursprung in der klassischen Mechanik. Sie basieren auf der Idee, dass ein Körper   durch einen einzelnen Masseknoten   repräsentiert werden kann. Weitergehend kann dieser Masseknoten in   kleinere Masseknoten  , verteilt über den ganzen Körper, unterteilt werden, sodass gilt:

 

Nach dem Hookeschen Gesetz ist das Verhalten einer Feder mit parallelem Dämpfungsglied folgendermaßen definiert:

 

wobei   die Federkonstante,   die Auslenkung der Feder zur Ruhelage und   der Reibungskoeffizient ist.

Newtons Definition zum Verhalten einer bewegten Masse ist:

 

  ist die Kraft, die dem Körper der Masse   die Beschleunigung   erteilt.

Auf Basis dieser letzten beiden Gleichungen kann die Bewegungsgleichung eines einzelnen Masseknotens   hergeleitet werden.

Auf den Masseknoten   mit der Masse   wird bei der Verschiebung um   die Kraft   ausgeübt:

 

Die Auslenkung   wird bei zwei Masseknoten   und   in einem Masse-Feder-System mit der Distanz voneinander, abzüglich der Länge der Feder im Ruhezustand  , berechnet:

 

  ist die Position des  -ten Masseknotens. Mit   wird der Richtungsvektor als Einheitsvektor von Masseknoten   zu Masseknoten   berechnet. Der Betrag von   ist der Abstand zwischen Masseknoten   und Masseknoten   minus der Ruhelänge der Feder, was den Längenskalar darstellt. Das Skalarprodukt   ist die Auslenkung des Masseknotens   in Abhängigkeit vom Masseknoten  .

Das führt zu folgender Kraft, die auf den einzelnen Masseknoten   mit dem benachbarten Knoten   wirkt:

 

Die externen Kräfte, die auf den Masseknoten   wirken, können als   zusammengefasst werden:

 

mit dem Vektor der äußeren Kraft  , dem Gravitationsvektor   und dem Vektor der anderen externen Einwirkungen  .

Fasst man alle auf den Masseknoten   wirkenden Kräfte zusammen, erhält man folgende Differenzialgleichung als Bewegungsgleichung, wobei   die Menge der benachbarten Masseknoten ist:

 

Es gilt  :

 

Die Bewegungsgleichung für das gesamte System erhält man, indem man alle Verschiebungen   mit dem Vektor  , die Massen   mit der Matrix  , die Reibungskoeffizienten   mit der Matrix   und die Federkonstanten   der einzelnen Masseknoten durch die Matrix   beschreibt:[1]

 

Die Matrizen   und   sind beide symmetrisch, da   und  . Daraus folgt, dass jeweils nicht alle   Komponenten, sondern nur   Komponenten berechnet werden müssen. Außerdem können die Komponenten auf der Hauptdiagonalen der Matrizen   und   (also die Komponenten   und  ) vernachlässigt werden, da es keine Feder gibt, die an beiden Enden mit demselben Masseknoten verbunden ist. Die Anzahl der zu berechnenden Komponenten verringert sich somit auf  .

Siehe auch

Bearbeiten
Bearbeiten
Commons: Masse-Feder-Systeme – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

Bearbeiten
  1. a b c Markus A. Schill: Biomechanical Soft Tissue Modeling Techniques, Implementation and Applications. Universität Mannheim, Mannheim 2001, DNB 964635690, urn:nbn:de:bsz:180-madoc-448 (englisch, Dissertation).
  2. a b S. Platt, N. Badler: Animating Facial Expressions. In: Computer Graphics. Band 15, Nr. 3, 1981 (englisch, citeseerx.ist.psu.edu [PDF]).
  3. K. Waters: A Muscle Model for Animating Three-Dimensional Facial Expression. In: Computer Graphics. Band 21, Nr. 4, 1987 (englisch, Link).
  4. J. Chadwick, D. Haumann, R. Parent: Layered Construction for Deformable Animated Characters. In: Proceedings of ACM SIGGRAPH. 1989 (englisch, citeseerx.ist.psu.edu [PDF]).
  5. D. Terzopoulos, K. Waters: Physically-based Facial Modelling, Analysis and Animation. In: The Journal of Visualisation and Computer Animation. Band 1, 1990 (englisch, nyu.edu [PDF]). PDF (Memento vom 23. April 2016 im Internet Archive)
  6. a b Jens Neumann: Verfahren zur adhoc-Modellierung und -Simulation räumlicher Feder-Masse-Systeme für den Einsatz in VirtualReality-basierten Handhabungssimulationen. Technische Universität Berlin, Fraunhofer IRB Verlag, 2009, ISBN 978-3-8167-7954-4 (Dissertation).