Vortrag im Seminar Computergraphik Computeranimation Vortrag im Seminar Computergraphik Alan Akbik
Zielsetzung Was ist Animation? Ein kurzer Einblick in ihre Entdeckung Überblick über die verschiedenen Arten der Computeranimation und Begriffsklärung Ein Beispiel zur Partikelanimation Methoden zur Umsetzung von Hierarchischer Bewegung
Struktur des Vortrags Entdeckung der Animation Zielsetzung/Motivation Starrkörperanimation Physikalische Simulation Partikelanimation Zusammengesetzte Strukturen / Hierarchische Bewegung Verhaltensgesteuerte Animation
Entdeckung der Animation (1) 1820: Peter Mark Roget veröffentlicht seinen Bericht ‚The Persistance of Vision with Regard to Moving Objects‘ Er stellt fest, dass das menschliche Auge ein Bild etwa 1/16 einer Sekunde lang in der Retina behält, auch wenn dieses Bild schon verschwunden ist Gezeigt durch das Thaumatrope, 1824 erfunden von John A. Paris
Thaumatrope
Entdeckung der Animation (2) Mit sehr schnell aufeinanderfolgenden, sich leicht verändernden Bildern kann der Eindruck von Bewegung gewonnen werden 1832: Phenakistoscope (Joseph Plateau) 1834: Zeotrope (William George Horner) Praxinoscope
Entdeckung der Animation (3) 1919 Max Fleischer - ‚Feline Follies‘
Pixar - Luxo Jr. Erster gerenderter Film - 1986
Struktur des Vortrags Starrkörperanimation Zielsetzung/Motivation Entdeckung der Animation Starrkörperanimation Physikalische Simulation Partikelanimation Zusammengesetzte Strukturen / Hierarchische Bewegung Verhaltensgesteuerte Animation
Starrkörperanimation Grundlegendste Art der Animation Umfasst Translation und Rotation Im Englischen: Rigid Body Animation Begriffsklärung Interpolation/Keyframing Explizites Skripten
Interpolation/Keyframing Einige Schlüsselframes werden angegeben, der Computer soll die dazwischenliegenden Frames interpolieren Lineare Interpolation oft nicht ausreichend
Alternativen zur linearen Interpolation B-Splines http://www.public.asu.edu/~ambar/cagd/bspline/ http://www.cs.technion.ac.il/~cs234325/Homepage/Applets/applets/bspline/GermanApplet.html Explizites Skripten
Struktur des Vortrags Physikalische Simulation Zielsetzung/Motivation Entdeckung der Animation Starrkörperanimation Physikalische Simulation Partikelanimation Zusammengesetzte Strukturen / Hierarchische Bewegung Verhaltensgesteuerte Animation
Physikalische Simulation Idee: Nutze Gesetze der Physik um realistische Bewegungen zu erzeugen Auf Objekte wirken zB Schwerkraft, Beschleunigung, Luftwiderstand Der Animator gibt für Objekte Masse, Startgeschwindigkeit, -beschleunigung, -richtung an Der Computer simuliert und animiert die daraus folgende Bewegung
Probleme Kontrolle nur über die Startwerte der Objekte Komplexe Systeme sehr schwer zu modellieren Problem der Inversen Dynamik
Struktur des Vortrags Partikelanimation Zielsetzung/Motivation Entdeckung der Animation Starrkörperanimation Physikalische Simulation Partikelanimation Zusammengesetzte Strukturen / Hierarchische Bewegung Verhaltensgesteuerte Animation
Partikelanimation Wird benutzt zum Erstellen von Effekten wie Explosionen Feuer Nebel Wasser(dampf) Sternenfenster
Was ist ein Partikel? Eine sehr kleine Primitive (e.g. ein Wassertropfen, ein Sandkorn, ein Funken...) Teil einer großen Menge von Partikeln Entlang eines vorgegebenen Skriptes randomisierte Bewegung (Ausrichtung, Lebensdauer u.s.w...)
Attribute eines Partikels Startposition Startrichtung und Startgeschwindigkeit Transparenz Form Lebensdauer
Durchzuführende Schritte pro Frame Partikel deren Lebensdauer abgelaufen ist werden entfernt Neue Partikel werden generiert Den neuen Partikeln werden individuelle (randomisierte) Werte gegeben Partikel werden bewegt (andere Werte wie Farbe oder Transparenz gegebenenfalls geändert) Partikel werden gerendert
Beispielprogramm In der Präsenation wurde an dieser Stelle das Programm „Fireworks“ gezeigt. Im Netz zu finden unter www.sulaco.co.za/opengl2.htm Auf den folgenden Seiten ein Blick auf den Quelltext des Programms
Typdefinition const EXPLOSION_SIZE = 0.8; type TParticle = Record X, Y, Z : glFloat; dX, dY, dZ : glFloat; R, G, B : glFloat; end; TFirework = Record Particle : Array[0..127] of TParticle; Trail : Array[0..15] of TParticle; StartTime : Integer; Duration : Integer; Style : Integer; X, Y : glFloat; dX, dY : glFloat;
Procedure SetupFirework // exploding particles for I :=0 to 127 do with Firework[N].Particle[I] do begin if Firework[N].Style < 2 then R := (random/6 +0.4)/10*EXPLOSION_SIZE else R := (random/10 -0.05)*EXPLOSION_SIZE; dX :=R*cos(I/10); dY :=R*sin(I/10); dZ :=R*cos(I/4); X :=dX; Y :=dY; Z :=dZ; if Clr = 0 then R :=random/3 + 0.7 else R :=random/3 + 0.4 if Clr = 1 then G :=random/3 + 0.7 else G :=random/3 + 0.4; if Clr = 2 then B :=random/3 + 0.7 else B :=random/3 + 0.4; end;
Struktur des Vortrags Zielsetzung/Motivation Entdeckung der Animation Starrkörperanimation Physikalische Simulation Partikelanimation Zusammengesetzte Strukturen / Hierarchische Bewegung Verhaltensgesteuerte Animation
Zusammengesetzte Strukturen / Hierarchische Bewegung Begriffsklärung: Articulated Structures Foward Kinematics Inverse Kinematics Motion Capturing
Articulated Structures (1) Objekte mit Gelenken Für die Animation eines solchen Objektes muss zunächst eine skelettartige Struktur modelliert werden
Articulated Structures (2) Eine Gelenkhierarchie muss festgelegt werden
Articulated Structures (3) Für jedes Gelenk müssen Freiheitsgrade festgelegt werden Es gibt 6 Freiheitsgrade: Bewegung entlang der X-Achse, Y-Achse, Z-Achse Roll: Rotation um X-Achse Pitch: Rotation um Y-Achse Yaw: Rotation um Z-Achse Freiheitsgrade erklären
Forward Kinematics (1)
Forward Kinematics (2)
Forward Kinematics (3)
Hierarchische Bewegung Forward Kinematics ist mit viel Aufwand verbunden Idee: Keyframing für Articulated Structures
Inverse Kinematics (1) Man gibt Keyframes des Objektes an Computer interpoliert dazwischenliegende Frames Interpolation bleibt dem Skelettbau und den Freiheitsgraden der Gelenke treu
Inverse Kinematics (2)
Inverse Kinematics (3) Selbst bei Strukturen mit wenigen Gelenken gibt es oft verschiedene Wege einen Zielpunkt zu erreichen
Inverse Kinematics (4) Kürzester Weg soll animiert werden Oftmals viele gleichwertige Lösungen Anzahl der Lösungen steigt exponential mit höherer Anzahl an Gelenken
Inverse Kinematics (5) Vorteile: Schlüsselframes genügen zum erzeugen einer animierten articulated Structure -> stark reduzierter Aufwand Nachteile: Bei komplexen Strukturen (viele Gelenke) Berechnung sehr aufwendig Entzieht künstlerische Freiheit
Motion Capturing (1) Einem Menschen (oder anderem Objekt mit Skelettstruktur) werden an für die benötigte Bewegung wichtigen Stellen Sensoren angebracht Der Mensch läuft diese Bewegung durch, während die Positionswerte der Sensoren aufgezeichnet werden Auf dieser Basis lassen sich natürliche Bewegungen im Computer rekonsturieren
Motion Capturing (2) Beispiel eines real-time Motion Capturings Man bemerke: Finger und Füße bleiben immer starr ausgerichtet
Motion Capturing (3) Vorteile: Menschliche Bewegungen mit vergleichsweise niedrigem Aufwand in hoher Qualtät Nachteile: Nur vorgefertigte Sequenzen
Struktur des Vortrags Verhaltensgesteuerte Animation Zielsetzung/Motivation Entdeckung der Animation Starrkörperanimation Physikalische Simulation Partikelanimation Zusammengesetzte Strukturen / Hierarchische Bewegung Verhaltensgesteuerte Animation
Verhaltensgesteuerte Animation Animierte Figuren bewegen sich entsprechend ihres festgelegten Verhaltenskodex‘ Sind nur über diesen zu steuern, ähneln also Agenten Nützlich für Computerspiele Nützlich zB für die Animation von Tierherden (König der Löwen)
Fragen