430 likes | 566 Views
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
E N D
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 • Zielsetzung/Motivation • Entdeckung der Animation • 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
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)
Entdeckung der Animation (3) • 1919 Max Fleischer - ‚Feline Follies‘
Pixar - Luxo Jr. Erster gerenderter Film - 1986
Struktur des Vortrags • Zielsetzung/Motivation • Entdeckung der Animation • Starrkörperanimation • Physikalische Simulation • Partikelanimation • Zusammengesetzte Strukturen / Hierarchische Bewegung • Verhaltensgesteuerte Animation
Starrkörperanimation • Im Englischen: Rigid Body Animation • Begriffsklärung Interpolation/Keyframing • Explizites Skripten Grundlegendste Art der Animation Umfasst Translation und Rotation
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 • 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 • 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; end;
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
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 (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 • 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)