Post on 05-Apr-2015
computer graphics & visualization
Deformable Bodies
Volker Jacht01. Juni 2011
computer graphics & visualization
Deformable BodiesVolker Jacht
It‘s so fluffy, I‘m gonna die!!
Motivation?
computer graphics & visualization
Deformable BodiesVolker Jacht
Motivation
computer graphics & visualization
Deformable BodiesVolker Jacht
Deformierbare Körper
• Menschen, Tiere• Haare, Seile• Kleidung, Stoffe• Pflanzen• Fachwerke
computer graphics & visualization
Deformable BodiesVolker Jacht
Inhalt• Motivation• Masse-Feder-Systeme• Simulation– Kräfte berechnen– Differentialgleichung– Numerische Lösungsverfahren
computer graphics & visualization
Deformable BodiesVolker Jacht
Masse-Feder-System• Körper wird durch viele Partikel repräsentiert, die
untereinander mit Federn verbunden sind
computer graphics & visualization
Deformable BodiesVolker Jacht
Masse-Feder-System• Partikel – Masse: – Geschwindigkeit: – Position:
• Feder – Verbunden mit Partikel: , – Normalauslenkung: – Federkonstante: – Dämpfungskoeffizient:
i
j
𝑺𝒊 , 𝒋𝒍 𝟎
computer graphics & visualization
Deformable BodiesVolker Jacht
Masse-Feder-System• Erste Idee: ein vereinfachtes 2D-Gitter• Was geschieht bei Kräfteeinwirkung?• Ausprobieren gibt Aufschluss
?
computer graphics & visualization
Deformable BodiesVolker Jacht
[DEMO]
computer graphics & visualization
Deformable BodiesVolker Jacht
Masse-Feder-System• Hinzufügen von
Diagonalfedern• => robuster?• Simulation…
computer graphics & visualization
Deformable BodiesVolker Jacht
[DEMO]
computer graphics & visualization
Deformable BodiesVolker Jacht
Inhalt• Motivation• Masse-Feder-Systeme• Simulation– Kräfte berechnen– Differentialgleichung– Numerische Lösungsverfahren
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation?• aller Partikel von Interesse
– ist der „jetzt“-Zeitpunkt,ein bekannter Zustand/Bild:
– Benötigt wird das Folgebild nachverstrichener Zeit :
• Berechnung aus Daten/Formeln, die wir kennen!
computer graphics & visualization
Deformable BodiesVolker Jacht
Inhalt• Motivation• Masse-Feder-Systeme• Simulation– Kräfte berechnen– Differentialgleichung– Numerische Lösungsverfahren
computer graphics & visualization
Deformable BodiesVolker Jacht
Masse-Feder-System• Hookesches Gesetz:• Federkraft auf Partikel durch Partikel über Feder
Längenänderung der FederRichtungsvektor von nach
(3. Newtonsches Gesetz)
computer graphics & visualization
Deformable BodiesVolker Jacht
ji
‖𝒙 𝒋−𝒙 𝒊‖
�⃗� 𝑺 , 𝒊 , 𝒋 �⃗� 𝑺 , 𝒋 ,𝒊
ji𝒍𝟎
�⃗� 𝑺 , 𝒊 , 𝒋=𝒌𝑺 ∙(‖𝒙 𝒋− �⃗�𝒊‖− 𝒍𝟎) ∙�⃗� 𝒋−𝒙 𝒊
‖�⃗� 𝒋−𝒙 𝒊‖
ji
‖𝒙 𝒋−𝒙 𝒊‖
�⃗� 𝑺 , 𝒊 , 𝒋 �⃗� 𝑺 , 𝒋 ,𝒊
Masse-Feder-System
computer graphics & visualization
Deformable BodiesVolker Jacht
Masse-Feder-System• Dämpungskraft (Reibung): • Dämpfungskraft auf Partikel durch Partikel
über Feder
Relative Geschwindigkeit zwischen und Richtungsvektor von nach
computer graphics & visualization
Deformable BodiesVolker Jacht
ji
�⃗� 𝐃, 𝐢 , 𝒋=𝒌𝑫 ∙ (( �⃗� 𝒋−�⃗� 𝒊 )∗𝒙 𝒋− �⃗� 𝒊
‖𝒙 𝒋− �⃗� 𝒊‖) ∙ �⃗� 𝒋− �⃗�𝒊
‖�⃗� 𝒋− �⃗�𝒊‖
Masse-Feder-System
�⃗� 𝑫 , 𝒋 ,𝒊�⃗� 𝐃, 𝐢 , 𝒋 �⃗� 𝒋
computer graphics & visualization
Deformable BodiesVolker Jacht
• +…• ist abhängig von und
(und allen mit )
Masse-Feder-System
𝑭𝑺𝟑
�⃗� 𝑺𝟏
𝑭 𝑺 𝟐
�⃗� 𝑮
�⃗� 𝒊
computer graphics & visualization
Deformable BodiesVolker Jacht
Inhalt• Motivation• Masse-Feder-Systeme• Simulation– Kräfte berechnen– Differentialgleichung– Numerische Lösungsverfahren
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation
MMit 2. Newtonsches Gesetz () erhält man eine Differentialgleichung 2. Ordnung:
computer graphics & visualization
Deformable BodiesVolker Jacht
Inhalt• Motivation• Masse-Feder-Systeme• Simulation– Kräfte berechnen– Differentialgleichung– Numerische Lösungsverfahren
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation: expliziter Euler• Auswertung der Steigung am Anfang
des Zeitschritts
• Je größer ,umso größer der Fehler
Genaue Lösung
Euler mit versch.
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation: expliziter Euler forEver ( ) {
forall Particles p {p.setForce()
}
// compute spring and damping forces for each particle forall Springs s {
s.getI().addForce();s.getJ().addForce();
}
// Euler with stepsize forall Particles p {
p.addVelocity(p.getForce() * / p.getMass());p.addPosition(p.getVelocity * );
}}
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation: expliztier Euler Test1. Setup und gering 2. Setup und mittel3. Setup und hoch
computer graphics & visualization
Deformable BodiesVolker Jacht
[DEMO]
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation: explizier Euler Test1. Setup und gering 2. Setup und mittel3. Setup und hoch
computer graphics & visualization
Deformable BodiesVolker Jacht
[DEMO]
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation: explizier Euler Test1. Setup und gering 2. Setup und mittel3. Setup und hoch
computer graphics & visualization
Deformable BodiesVolker Jacht
[DEMO]
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation: Instabilität Auf zum Neptun!
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation: expliziter EulerFazit:– Sehr einfach zu implementieren– Ausreichend für „kleine“ Probleme– Hohe Ungenauigkeit im Verhältnis zur Schrittgröße– Steife Systeme erzwingen kleine Zeitschritte,
da sie sonst „explodieren“– Ineffektiv
• Verbesserungsmöglichkeiten?
computer graphics & visualization
Deformable BodiesVolker Jacht
Simulation• Taylor-Reihenentwicklung– 1. Grad entspricht dem expliziten Eulerverfahren– Erhöhung des Grads durch weiteres Ableiten erhöht die
Genauigkeit– Rechenaufwendiger– ist für größere immer noch instabil
• Implizite Verfahren– Kompliziert– Erfordern deutlich höheren Rechenaufwand– Auch bei größeren stabil
computer graphics & visualization
Deformable BodiesVolker Jacht
Fragen?
computer graphics & visualization
Deformable BodiesVolker Jacht
Quellen• http://www.cs.cmu.edu/~baraff/sigcourse/– Differential Equation Basics– Particle Dynamics– Implicit Methods
• Wiki– Masse-Feder-System_(Computergrafik)– Implizites_Euler-Verfahren
• http://public.beuth-hochschule.de/~stevie/mod+sim/node40.html