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