Computer-Animation - the Institute for Computer Graphics and

Transcrição

Computer-Animation - the Institute for Computer Graphics and
Einleitung
Computer-Animation!
•  Animation = Veränderung der Darstellung über Zeit
–  Bewegung, aber auch Farbe, Transparenz, Textur...
•  Real-Time-Animation
–  Computerspiele, Flug-/Fahrsimulatoren
–  Datenanalyse in Echtzeit
•  Frame-By-Frame-Animation
–  Photorealismus, Cartoon (Fernsehen, Kino)
–  Spezielle Darstellung (Falschfarben, wiss. Daten)
Based on material by Michael Kalkusch, Francois Faure
[Hearn,Baker] Fig 13-3, p736
Beispiele
Tin Toy [Pixar 1988]
Video
Video
Jurassic Park [1993]
Toy Story [Pixar 1995]
Geri‘s Game [Pixar 1997]
Subdivision surfaces
[Hearn,Baker] Fig 13-3, p736
•  „Luxo Junior“
Key-Frame
•  TinToy
complex scene
•  Geris‘s Game
Subdivision surface
•  For the Birds
Feathers
[Hearn,Baker] Fig 13-2, p736
Luxo Junior [Pixar 1986]
First CG motion picutre
2
Geschichte der Animation
Video
Video
[Hearn,Baker] Fig 13-3, p736
1
Luxo Junior [Pixar 1986]
Tin Toy [Pixar 1988]
For the Birds [Pixar 2000]
Geri‘s Game [Pixar 1997]
Subdivision surfaces
Final Fantasy [2001] hair, subsurface scattering
Spider Man 2 [2004]
Shrek the Third [2007]
For the Birds [Pixar 2000]
3
Animierte Spielfilme
4
Real-time Animation
•  Double Buffering
•  Raster Animation
Video
•  Palette Animation
[imdb.com] „Avatar“
5
6
1
Raster Animation
Double Buffering
•  „Sprite“ = vordefinierte (kleine) Bitmap
•  Bei Darstellung via Graphikkarte
–  Enthält einen Bestandteil einer Animation (z.B. Figur, Körperteil)
–  Kann mit Blit (Bit bLock Transfer) schnell in den
Bildschirmspeicher geschrieben werden
–  Überdeckung (Tiefensimulation) durch Übermalen
–  Alpha-Maske erlaubt korrekte Konturen
–  Durchschalten von vordefinieren Animationsphasen in
aufeinanderfolgenden Bildern, oft zyklisch (zB Animated GIF)
–  Front-Buffer: Bild n ist sichtbar
–  Back-Buffer wird zum Zeichnen von Bildes n+1 verwendet
–  Wenn Bild n+1 fertig: Buffer tauschen
Front Buffer

7
8
Palette Animation
Bewegungs-Aliasing
•  Zyklisches Vertauschen von Farbeinträgen in einer
Farbtabelle
1
3
1
3
1
3
1
3
2
3
2
3
2
3
2
3
Bild
Farbtabelle
1
2
3
4
1
2
3
4
1
2
3
4
real
optisch
1
2
3
4
9
Bewegungs-Aliasing
real

10
Rückwärts rotierende Räder
optisch
[Hearn,Baker] Fig 13-22, p748
…real
…optisch
11
12
2
Key-Frame Animation
Animationsmethoden
• 
• 
• 
• 
• 
• 
Interpolation zwischen
•  Ausgangslage (Keyframe k)
•  Neuer Lage (Keyframe k+1)
Key Frame Interpolation
Kinematik
Motion Capture
Deformations
Morphing
Physics-based
•  Berechnen von „Inbetweens“
Einfügen eines Hilfspunktes (3)
•  Interpolation der Punkte
1, 2, 3  1´, 2´, 3´
[Hearn,Baker] Fig 13-8|9, p740
13
14
Nichtlineare Key-Frame Animation
Zeitliche Parametrisierung
Parametrisierung zwischen
2 Key-Frames:
•  Linear,
konstante Zwischenschritte
Vorher: Interpolation entlang
von Geraden
[Hearn,Baker] Fig 13-8|9, p740
•  x(t) = (1-t)*x(t1) + t * x(t2)
Jetzt: Interpolation mittels
nicht linearen Splines
t=
t1
i * (t2 – t1)
N
t2
[Hearn,Baker] Fig 13-13, p742
15
Beschleunigung
16
Beschleunigung 1/3
Parametrisierung zwischen 2 Key-Frames:
•  Linear
•  Nicht-Linear
Interpolation von t1  t2
Beschleunigung   Verzögerung
t1
t2
t1
t2
t1
t2
[Hearn,Baker] Fig 13-16, p744
17
18
3
Beschleunigung 2/3
Beschleunigung 3/3
Interpolation von t1  t2
Beschleunigung   Verzögerung
Interpolation von t1  t2
Beschleunigung   Verzögerung
[Hearn,Baker] Fig 13-17, p744
[Hearn,Baker] Fig 13-15, p743
19
20
Beschleunigung Vergleich
Kinematik
•  Auch „Dynamik“
•  Beschreibung einer Animation durch
Bewegungsparameter
Ease Out
–  Position, Geschwindigkeit, Beschleunigung
–  Ohne Angabe der Ursache der Bewegung
Ease In
•  Beispiel
–  Position + Geschwindigkeit eines Festkörpers ergibt
geradlinige Bewegung
Ease In-Out
21
Arten der Kinematik
22
Kinematik Animation von beweglichen Körpern
•  Benutzer erzeugt Koordinaten direkt
•  Zusammengesetzt aus
–  Keyframe Animation
–  Motion Capture
–  Glieder
–  Gelenke (joints)
•  Benutzer erzeugt Koordinaten indirekt
–  Vorwärtskinematik
•  Positionen beschrieben als Funktion der Zeit
–  Inverse Kinematik
Direkte Kinematik
Vorwärtstransformation
Gelenkwinkel
Kartesische
Koordinaten
Inverse Kinematik
Rückwärtstransformation
23
24
4
Gelenke
Freitheitsgrade
•  Gelenke beschränken die Bewegung der Glieder
•  Verwendet zur Erzeugung von Hierarchien von
Gliedern
•  Degrees-of-freedom (DOF)
•  Translation entlang Achse
–  X-Achse
–  Y-Achse
–  Z-Achse
 +3 Freiheitsgrade
•  Rotation um Achse
à 6 Freiheitsgrade
–  X-Achse
–  Y-Achse
–  Z-Achse
à +3 Freiheitsgrade
25
26
6 Freiheitsgrade – 6 DOF
•  Rotation um fester Achse
Freiheitsgrade
realer Objekte
–  Arm Sweep
–  Shoulder Swivel
–  Elbow Extension
 +3 Freiheitsgrade
•  Rotation um
beweglicher Achse
à 6 Freiheitsgrade
–  Pitch
~X-Achse
–  Roll
~Y-Achse
–  Yaw
~Z-Achse
à +3 Freiheitsgrade
27
Hierarchische Modellierung
28
Kinematischer Graph
Datenstruktur zu einem Gelenk
•  Eltern-Glied
•  Kind-Glied(er)
•  Transformation relativ zum Eltern-Glied
–  Gelenk = Ursprung des Kind-Koordinatensystems
•  Freiheitsgrade (Translation, Rotation)
Kinematischer Graph
•  Baum-Datenstruktur (Kinematik-Graph) beschreibt
die Struktur des Körpers
•  Glieder verkettet durch Transformationen
•  Lokale Objektkoordinaten für jedes Glied
•  State Vector = Werte aller Freiheitsgrade aller Knoten
im kinematischen Graphen
•  Animation = Pfad des State Vectors im State Space
29
30
5
Probleme der Vorwärtskinematik
Probleme der Vorwärtskinematik
Bestimmte Artefakte von Punktbasierten Animation werden gelöst
•  Externe Constraints werden nicht automatisch
berücksichtigt  inverse Kinematik
31
32
Kinematik bei menschl. Bewegungen
Posen-Optimierung
•  Invers / direkt / Kombination invers & direkt
•  Vermeiden unrealistischer Posen
•  Beispiel Gehen
– 
– 
– 
– 
Abwechselnde Support- und Swing-Phase
Beine sind koordiniert
Bewegung ist fast periodisch
Möglichst realistisch!
•  Schwerpunkt über den Füßen halten
•  Abwandlungen
–  Laufen
–  4 Beine, 8 Beine, …. 1000 Beine
33
34
Motion Capture (1/2)
Motion Capture (2/2)
•  Menschliche Bewegung per Vorwärtkinematik
•  Prinzip
•  Hardware
–  Magnetische Sensoren
–  Optische Aufzeichnung
–  Elektro-mechanische Sensoren
–  Reale Bewegungen aufzeichnen
–  Schauspieler oder Puppe
Tom
Hanks in Polar Express
http://wardomatic.blogspot.com/2004/12/polar-express-virtual-train-wreck_18.html
35
Electro-mechanical
http://www.metamotion.com/gypsy/gypsy-motion-capture-system-mocap.htm
Optical
http://www.naturalpoint.com/optitrack/products/motion-capture/
36
6
Inverse Kinematik
Anwendung von inverser Kinematik
•  Angabe von Anfangs- und Endpunkten
(Constraints)
•  System berechnet p, v, a für Inbetweens
•  Arbeitsweise in Praxis
•  Körper und Beine anhand von kinematischer
Einschränkungen bewegen
•  Entlang vorberechneter Pfade
–  Verwendung von Splines
–  Plazieren der Endglieder (Fuß, Hand, Kopf)
für Keyframes
–  Rest wird berechnet: Optimierung, Interpolation
37
38
Verformbare Modelle
Deformierungen
•  Skalierung
•  Original
–  Nur lokale affine Transformation
•  Spline-Oberflächen
–  Animation der Kontrollpunkte
•  Tarpering
•  Space-Warping
–  Globale Verformung
–  Free Form Deformation
•  Twisting
•  Artikulierte Objekte (Bones + Skin)
•  Gesichter
•  Bending
39
Deformierungen
• 
• 
• 
• 
• 
40
Beispiel
Analytische Transformation aller Oberflächenpunkte
Skalierung
(X,Y,Z) = (sxx, syy, szz)
Tapering
(X,Y,Z) = (r(z)x, r(z)y, z)
Twisting (X,Y,Z) = (x cosθ - y sinθ, x sinθ +y cosθ, z)
Bending
Gerippter Zylinder mit Twisting und Tapering
41
42
7
Anwendung der FFD
Free Form Deformation (FFD)
•  Tricubic Bezier-Patches
•  Beginne mit kubischen
Patches
•  Für jeden Punkt relative
Lage im Würfel
berechnen
•  Controlpunkte pijk definieren eine Raumdeformation
•  2D-Analogie
–  s,t,u
•  Bewegung der
Kontrollpunkte pijk
•  Berechnung der neuen
Position durch Formel
43
FFD-Beispiel
44
FFD-Beispiel: Nase
Original
45
FFD-Beispiel: Kinn
46
Character Skinning
•  Haut (BRep) angebracht an kinematischem Skelett
•  Bones = „Festkörper“ mit Koordinatensystem
•  Kontinuierliche Mesh-Deformation
47
48
8
49
50
51
52
Probleme von trivialen Methoden
Skinning-Idea
•  Verbinde jeden Vertex zum nächsten Bone
•  Selbstdurchdringung
•  Aufreisen der Oberfläche
•  Vertex wird mit n nächsten Bones verknüpft
•  Gewichtete Summe
•  Fragen
–  Welche Bones ?
–  Welche Gewichte?
53
54
9
Probleme
Ansatz von Mohr und Gleicher
1. Extreme
Deformationen
•  Einfügen zusätzlicher Knochen
2. Zuwenig
gestalterische
Kontrolle
•  Optimieren der Gewichte über ganze Bewegung,
basierend auf Benutzervorgaben
55
Deformation von artikulierten Strukturen
56
Deformation von artikulierten Strukturen
•  FFD-Patches werden am Skelett angebracht
•  Heuristische „Physik-Gesetze“, z.B. Muskulatur
57
58
Parametrische Deformation
Computer-unterstützte Animation
Änderung der Form anhängig von
•  Beschleunigung
•  Verzögerung
Model: Gummiball, Squashball
•  Curve morphing
–  Keyframes
–  Kurveninterpolation
–  Beschleunigungskontrolle
[Hearn,Baker] Fig 13-4, p737
•  Image morphing
– 
– 
– 
– 
Metamorphose von Form und Farbe
Ausgangsbild (source image)  Zielbild (target image)
Cross-dissolve
Warp
[Hearn,Baker] Fig 13-5, p737
59
60
10
Überblendung (cross-dissolve)
Morphing / Warping
•  Interpolieren von Farbe
•  Für jedes Pixel i, j vom Ausgangsbild ins Zielbild:
•  Umwandeln eines Objekts in ein anderes
Auto  Tiger
color(i,j) = (1-t)*source(i,j) + t*target(i,j)
•  Nachteil: Keine Interpolation der Form
[Hearn,Baker] Fig 13-12, p741
•  Form verändert sich mit
http://www.freecodesource.com/pages
/image-generators/morphing/example1.gif
61
Morphing
Morphing Techik:
(1)  Einfügen von Hilfspunkten
(2)  Zuordnen der Punkte
bei Model A und Model B
(3)  Interpolation und Verzerrung
(4)  Problem der Farb-Interpolation
62
Morphing-Prozess (1/2)
[Hearn,Baker] Fig 13-12, p741
•  Definieren eines Mapping source  target
•  Erzeugen von Bildpaaren
•  Überblenden der Paare
SOURCE IMAGE
TARGET IMAGE
[Hearn,Baker] Fig 13-10, p740
63
Morphing-Prozess (2/2)
64
Punkt-Warping
•  Mapping von Source  Target definieren
•  Bewegen der Kontrollpunkte
•  Anwenden der gewichteten Summe an jedem Punkt
http://www.owlnet.rice.edu/~elec539/Projects97/morphjrks/warp.html
65
66
11
Punkt-Warping
Linien-Warping
•  Linien als Kontroll-Primitive
•  Position relativ zu den Linien definieren
(a) Quellbild mit Kontrollpunkten.
(b) 50% transformiertes Bild mit Kon-
(c) Zielbild mit Kontrollpunkten.
•  Bewegung antrollpunkten.
einem Punkt =
gewichtete Summe der nächsten Kontrollpunkte
Abbildung 11: Anwendung von Point Warping mit Morphing-Parameter gleich 0(a), 0.5(b) und 1(c). Zusätzlich Anzeige
der Kontrollpunkte.
•  Alle
Punkte im Source-Image bewegen
Thaddeus Beier and Shawn Neely.
"Feature-based image metamorphosis".
In Computer Graphics (SIGGRAPH '92 Proceedings), volume 26, pages 35-42, July 1992.
67
68
Durch die Aufsummierung der Transformationen kann es dazu kommen, dass ein Pixel stärker als die
umliegenden Kontrollpunkte transformiert wird. Um das zu verhindern, muss die Transformation des Pixels
noch mit dem Gesamtgewicht der ihn beeinflussenden Kontrollpunkte normalisiert werden.
Um nun die Transformation des Pixels für den jeweiligen Frame zu berechnen, muss sie noch mit dem
Morphing-Parameter progress multipliziert werden.
3.4.2 Durchzuführende Implementierung
Berechnung der Punktgewichte Um ein realistischeres Warping zu erzielen, wird jeder Punkt im Ausgangsbzw. im Zielbild unterschiedlich gewichtet, wobei das Gewicht eines Punktes dem Abstand zum nähesten
Nachbarpunkt entspricht:
Mesh-Warping
Vorwärts- & Rückwärts-Warping
wi = min(dist(pi − pj ))
Punkte mit einem großen Gewicht beeinflussen daher Pixel innerhalb eines größeren Radius als Punkte mit
niedrigem Gewicht.
Die Klasse PointRelation enthält bereits die Member weight_origin_ und weight_target_,
die sie nur mehr korrekt befüllen müssen.
Die Punktgewichte müssen nur einmal beim Initialisieren der Point Warping Engine berechnet werden und
verändern sich während des Warpings nicht. Bitte beachten Sie, dass das Gewicht als Gleitkommazahl
definiert ist, die Länge eines Integer-Vektors aber wieder einen Integer ergibt.
Verwendetes Mapping & Supersampling Für die Berechnung des Warpings mit Point Warping verwenden wir Forward Mapping, das heißt, wir berechnen für jeden Pixel im Ausgangsbild eine neue Position im
transformierten
Da bei Forward (b)
Mapping
nicht alle Pixel
des
Zielbildes berechnet
werden,
verwenden
(a) QuellbildBild.
mit Mesh.
50% transformiertes
Bild mit
Mesh.
(c) Zielbild
mit Mesh.
wir Supersampling zur Vermeidung von Löchern oder unschönen Linien. Die Anzahl der Subpixel kann im
Konfigurationsfile
angegeben
werden
wird Meshs
im PointWarp-Konstruktor
gesetzt.
supersampling
•  Anwendung
Kontrolpunkte
eines
werden verändert
Abbildung
12:
von
Mesh und
Warping
mit
Morphing-Parameter
gleich
0(a), 0.5(b)
und 1(c). Zu-2
entspricht
dabei der
sätzlich
Anzeige
des Anzahl
Meshes.an Subpixel entlang einer Achse, pro Pixel gibt es daher supersampling
•  Vorwärts
–  Zuweisung jedes Pixels im Ausgangsbild auf ein Pixel im
Zielbild
–  Leere Pixel füllen
–  Interpolation
–  Super-sampling
•  Rückwärts
–  Finde für jeden Pixel im Zielbild den Ursprungspixel im
Ausgangsbild
•  Punkte im Inneren durch Interpolation
3.5 Mesh Warping (8 Punkte)
18
69
70
3.5.1 Grundlagen
Im Gegensatz zum Point Warping verwendet man beim Mesh Warping nicht einzelne Kontrollpunkte um
das Warping der Bilder zu beschreiben, sondern man legt ein Netz (Mesh) aus Linien über das Bild, das
die Transformation des Ursprungs- bzw. des Zielbilds definiert.
Dieses Netz wird ebenfalls durch Kontrollpunkte in den beiden Eingabebildern definiert, allerdings sind
diese Kontrollpunkte in Reihen und Spalten organisiert und werden mit Linien verbunden.
In jedem Schritt des Morphing-Prozesses muss aus den beiden Meshes ein Intermediate Mesh errechnet
werden, welches durch lineare Interpolation der Vertices (Kontrollpunkte) der beiden Meshes entsteht. Wie
schon beim Point Warping wird hierzu die Transformation jedes Punktpaares linear interpoliert und aus
den resultierenden Vertices ein neues Mesh konstruiert.
Physikalisch-basierte Animation
Um die einzelnen Vertices eines Meshs zu verbinden, verwenden wir Catmull-Rom-Splines, eine Form von
kubischen Splines. Ein Spline ist definiert als eine Funktion, die stückweise durch Polynome definiert ist:
Video – Cloth Simulation
•  Allgemeine Kräfte
S(t) = P (t), t ≤ t < t ,
1
0
1
–  Gravitation
S(t) = P2 (t), t1 ≤ t < t2 ,
–  Spring-based models
..
.
–  Constraints
S(t) = Pk (t), tk−1 ≤ t ≤ tk
Snow Particle System – Martin Schröttner @ EZG2006
Die Splines• sind
sehr einfach zu berechnen und verbinden jeweils 2 Vertices des Meshs. Ein SplinePartikelsysteme
Abschnitt wird durch 2 Eckpunkte und die Tangenten an diesen Eckpunkten definiert. Damit die Splines an
–  Rauch, Feuer, Regen, Nebel, etc.
den Eckpunkten zusammenpassen, muss sichergestellt sein, dass die selben Tangenten für die jeweiligen
Eckpunkte verwendet werden.
•  Kollisions-Detektion
3.5.2 Durchzuführende Implementierung
Berechnung des Intermediate Mesh Für die Berechnung des Intermediate Mesh werden die korrespondierenden Vertices im Mesh des Ursprungs- bzw. Zielbildes linear interpoliert:
Fire Particle System – Christian Kurz @ EZG2007
20
71
72
12
Kollisions-Erkennung & Reaktion
[imdb.com] Spider Man 3 (2007)
73
74
Kollisions-Erkennung & Reaktion
1)  Ball + Boden
2)  Physikalische Simulation
•  Elastizität des Balls
•  Dämpfung durch den Boden
•  Gravitation, vielleicht Wind ?
3)  Kollisions-Erkennung
4)  Veränderung des Systems
•  Neue Richtung der Kugel
•  Veränderung des Bodens?
[Hearn,Baker] Fig 13-18, p745
75
13