Deformable Bodies

Download Report

Transcript Deformable Bodies

Deformable Bodies
Volker Jacht
01. Juni 2011
computer graphics & visualization
It‘s so fluffy, I‘m gonna die!!
Motivation?
Deformable Bodies
Volker Jacht
computer graphics & visualization
Motivation
Deformable Bodies
Volker Jacht
computer graphics & visualization
Deformierbare Körper
•
•
•
•
•
Menschen, Tiere
Haare, Seile
Kleidung, Stoffe
Pflanzen
Fachwerke
Deformable Bodies
Volker Jacht
computer graphics & visualization
Inhalt
• Motivation
• Masse-Feder-Systeme
• Simulation
– Kräfte berechnen
– Differentialgleichung
– Numerische Lösungsverfahren
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
• Körper wird durch viele Partikel repräsentiert, die
untereinander mit Federn verbunden sind
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
• Partikel 𝒊
• Feder 𝒔
𝒎𝒊
𝒗𝒊
𝒙𝒊
i
𝒍𝟎
– Masse:
– Geschwindigkeit:
– Position:
𝒊,𝒋
– Verbunden mit Partikel:
– Normalauslenkung:
– Federkonstante:
– Dämpfungskoeffizient:
𝒊, 𝒋
𝒍𝟎
𝒌𝑺
𝒌𝑫
𝑺𝒊,𝒋
j
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
• Erste Idee: ein vereinfachtes 2D-Gitter
• Was geschieht bei Kräfteeinwirkung?
• Ausprobieren gibt Aufschluss
?
Deformable Bodies
Volker Jacht
computer graphics & visualization
[DEMO]
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
• Hinzufügen von
Diagonalfedern
• => robuster?
• Simulation…
Deformable Bodies
Volker Jacht
computer graphics & visualization
[DEMO]
Deformable Bodies
Volker Jacht
computer graphics & visualization
Inhalt
• Motivation
• Masse-Feder-Systeme
• Simulation
– Kräfte berechnen
– Differentialgleichung
– Numerische Lösungsverfahren
Deformable Bodies
Volker Jacht
computer graphics & visualization
Simulation?
• 𝑥 𝑡 aller Partikel von Interesse
– 𝑡0 ist der „jetzt“-Zeitpunkt,
ein bekannter Zustand/Bild:
𝑥 𝑡0
– Benötigt wird das Folgebild nach
verstrichener Zeit ∆𝑡:
𝑥 𝑡0 + ∆𝑡 =?
• Berechnung aus Daten/Formeln, die wir kennen!

Deformable Bodies
Volker Jacht
computer graphics & visualization
Inhalt
• Motivation
• Masse-Feder-Systeme
• Simulation
– Kräfte berechnen
– Differentialgleichung
– Numerische Lösungsverfahren
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
• Hookesches Gesetz:
𝑭 = 𝒌𝑺 ∙ 𝒔
• Federkraft 𝑭𝑺,𝒊,𝒋 auf Partikel 𝒊 durch Partikel 𝒋
über Feder 𝑺
𝒍
𝑭𝑺,𝒊,𝒋 = 𝒌𝑺 ∙ ( 𝒍 − 𝒍𝟎 ) ∙
𝒍
Längenänderung der Feder
Richtungsvektor von 𝑖 nach 𝑗
𝑭𝑺,𝒋,𝒊 = −𝑭𝑺,𝒊,𝒋
(3. Newtonsches Gesetz)
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
𝑭𝑺,𝒊,𝒋 = 𝒌𝑺 ∙ ( 𝒙𝒋 − 𝒙𝒊 − 𝒍𝟎 ) ∙
i
𝒙𝒋 − 𝒙𝒊
𝒙𝒋 − 𝒙𝒊
j
𝒍𝟎
𝑭𝑭𝑺,𝒊,𝒋
𝑺,𝒊,𝒋
i
𝑭𝑺,𝒋,𝒊
i
j
j
− 𝒙𝒙𝒊
𝒙𝒙𝒋𝒋 −
𝒊
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
• Dämpungskraft (Reibung): 𝑭 = −𝒌𝑫 ∙ 𝒗
• Dämpfungskraft 𝑭𝑫,𝒊,𝒋 auf Partikel 𝐢 durch Partikel 𝒋
über Feder 𝑺
𝑭𝐃,𝐢,𝒋 = 𝒌𝑫 ∙
𝒗𝒋 − 𝒗𝒊 ∗
𝒍
∙
𝒍
𝒍
𝒍
Relative Geschwindigkeit zwischen 𝐢 und 𝐣
Richtungsvektor von 𝐢 nach 𝐣
𝑭𝑫,𝒋,𝒊 = −𝑭𝑫,𝒊,𝒋
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
𝑭𝐃,𝐢,𝒋 = 𝒌𝑫 ∙
𝒗𝒋 − 𝒗𝒊 ∗
i
𝒙𝒋 − 𝒙𝒊
𝒙𝒋 − 𝒙𝒊
∙
𝒙𝒋 − 𝒙𝒊
𝒙𝒋 − 𝒙𝒊
j
𝑭𝐃,𝐢,𝒋
𝑭𝑫,𝒋,𝒊
𝒗𝒋
Deformable Bodies
Volker Jacht
computer graphics & visualization
Masse-Feder-System
• 𝑭𝒊 =
𝒋𝝐𝑵
𝑭𝑺,𝒊,𝒋 + 𝑭𝑫,𝒊,𝒋 + 𝑭𝒊,𝒆𝒙𝒕
• 𝐹𝑖,𝑒𝑥𝑡 = 𝐹𝑖,𝐺𝑟𝑎𝑣𝑖𝑡𝑎𝑡𝑖𝑜𝑛 + 𝐹𝑖,𝐿𝑢𝑓𝑡𝑟𝑒𝑖𝑏𝑢𝑛𝑔
+ 𝐹𝑖,𝐾𝑜𝑙𝑙𝑖𝑠𝑖𝑜𝑛 +…
• 𝐹𝑖 ist abhängig von 𝑥𝑖 und 𝑣𝑖
(und allen 𝑥𝑗 mit 𝑆𝑖,𝑗 )
• 𝑭𝒊 = 𝑭𝒊 (𝒙, 𝒗)
𝑭𝑺𝟏
𝑭𝒊
𝑭𝑮
Deformable Bodies
Volker Jacht
computer graphics & visualization
Inhalt
• Motivation
• Masse-Feder-Systeme
• Simulation
– Kräfte berechnen
– Differentialgleichung
– Numerische Lösungsverfahren
Deformable Bodies
Volker Jacht
computer graphics & visualization
Simulation
𝒙 = (𝒙𝟏 , 𝒙𝟐 , 𝒙𝟑 , … , 𝒙𝒏 )𝑻
𝒗 = (𝒗𝟏 , 𝒗𝟐 , 𝒗𝟑 , … , 𝒗𝒏 )𝑻
𝑭 𝒙, 𝒗 = (𝑭𝟏 , 𝑭𝟐 , 𝑭𝟑 , … , 𝑭𝒏 )𝑻
𝒎𝟏
𝒎𝟐
M=
…
𝒎𝒏
Mit 2. Newtonsches Gesetz (𝐹 = 𝑚 ∙ 𝑎) erhält man eine
Differentialgleichung 2. Ordnung:
𝒙 = 𝑴−𝟏 ∙ 𝑭 𝒙, 𝒙
Deformable Bodies
Volker Jacht
computer graphics & visualization
Inhalt
• Motivation
• Masse-Feder-Systeme
• Simulation
– Kräfte berechnen
– Differentialgleichung
– Numerische Lösungsverfahren
Deformable Bodies
Volker Jacht
computer graphics & visualization
Simulation: expliziter Euler
• Auswertung der Steigung am Anfang
des Zeitschritts
• 𝑥 𝑡0 + ∆𝑡 = 𝑥 𝑡0 + 𝑣 𝑡0 ∙ ∆𝑡
• 𝑣 𝑡0 + ∆𝑡 = 𝑣 𝑡0 +
𝑭 𝒙(𝒕𝟎 ),𝒗 𝒕𝟎
𝑴
∙ ∆𝑡
Genaue Lösung
• Je größer ∆𝑡,
umso größer der Fehler
Euler mit versch. ∆𝑡
Deformable Bodies
Volker Jacht
computer graphics & visualization
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 * ∆𝒕);
}
}
Deformable Bodies
Volker Jacht
computer graphics & visualization
Simulation: expliztier Euler Test
1. Setup 𝑲𝒔 und 𝑲𝑫 gering
2. Setup 𝐾𝑠 und 𝐾𝐷 mittel
3. Setup 𝐾𝑠 und 𝐾𝐷 hoch
Deformable Bodies
Volker Jacht
computer graphics & visualization
[DEMO]
Deformable Bodies
Volker Jacht
computer graphics & visualization
Simulation: explizier Euler Test
1. Setup 𝐾𝑠 und 𝐾𝐷 gering
2. Setup 𝑲𝒔 und 𝑲𝑫 mittel
3. Setup 𝐾𝑠 und 𝐾𝐷 hoch
Deformable Bodies
Volker Jacht
computer graphics & visualization
[DEMO]
Deformable Bodies
Volker Jacht
computer graphics & visualization
Simulation: explizier Euler Test
1. Setup 𝐾𝑠 und 𝐾𝐷 gering
2. Setup 𝐾𝑠 und 𝐾𝐷 mittel
3. Setup 𝑲𝒔 und 𝑲𝑫 hoch
Deformable Bodies
Volker Jacht
computer graphics & visualization
[DEMO]
Deformable Bodies
Volker Jacht
computer graphics & visualization
Simulation: Instabilität
Auf zum Neptun!
• ∆𝒕 = 𝟎, 𝟓
• ∆𝒕 = 𝟏, 𝟎
• ∆𝒕 = 𝟏
𝟏
𝟒
Deformable Bodies
Volker Jacht
computer graphics & visualization
Simulation: expliziter Euler
Fazit:
– 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?
Deformable Bodies
Volker Jacht
computer graphics & visualization
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
Deformable Bodies
Volker Jacht
computer graphics & visualization
Fragen?
Deformable Bodies
Volker Jacht
computer graphics & visualization
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.beuthhochschule.de/~stevie/mod+sim/node40.html
Deformable Bodies
Volker Jacht
computer graphics & visualization