Skip to main content

2024 | Buch

Einführung in die Computeranimation

Methoden, Algorithmen, Grundlagen

insite
SUCHEN

Über dieses Buch

​Das Buch ist das erste umfassende deutschsprachige Lehrbuch zur Computeranimation, das sich speziell an Studierende der Informatik und der Ingenieurwissenschaften richtet, die ihr Verständnis der mathematischen Grundlagen und Algorithmen dieses spannenden Gebiets vertiefen wollen.
Das Lehrbuch ist in vier Hauptteile gegliedert und deckt damit alle wichtigen Bereiche der Computeranimation ab: Animationssysteme, Objektanimation, Charakteranimation und Prozedurale Animation. Jeder Teil ist in weitere Kapitel unterteilt und bietet eine detaillierte Darstellung der Algorithmen und Methoden der Computeranimation mit ausführlichen Erklärungen.
Im ersten Teil werden die wichtigsten Konzepte von Animationssystemen wie Szenengraphen, Zeit und Game Loop erläutert. Im zweiten Teil geht es um die Animation und Steuerung von Objekten entlang von Kurven, die die Grundlage vieler Animationstechniken bilden. Im dritten Teil wird das Gebiet der Charakteranimation ausführlich behandelt. Kinematik und inverse Kinematik werden diskutiert, Skinning-Methoden vorgestellt und Motion-Capture und die Verarbeitung von Bewegungsdaten ausführlich beschrieben. Der letzte Teil des Buches beschäftigt sich mit der prozeduralen Animation und stellt verschiedene Algorithmen für physikalisch basierte Animation und Partikelsysteme vor.
Im gesamten Buch finden sich zahlreiche Beispiele und Illustrationen, die das Verständnis der behandelten Konzepte und Verfahren vertiefen. Am Ende jedes Kapitels finden sich Verweise auf historische und weiterführende Literatur, die zu weiterer Forschung anregen.
Ein wichtiger Teil des Buches sind die zahlreichen Übungen und Projekte, die helfen, das Gelernte zu vertiefen und selbst zu erproben.

Inhaltsverzeichnis

Frontmatter

Animationssysteme

Frontmatter
Kapitel 1. Hierarchien in Szenen
Zusammenfassung
Im 1. Teil des Buches stellen wir die wichtigsten Begriffe und Komponenten von Animationssystemen vor. Dies ist die Grundlage, um im weiteren Verlauf des Buches verschiedene Animationsmethoden zu erläutern. Wir starten in diesem 1. Kapitel mit dem Aufbau und der Funktionsweise eines einfachen Szenen-API. Da wir in diesem Buch weder OpenGL- noch DirectX-Aufrufe verwenden noch konkret in die Programmierung von Grafikkarten einsteigen wollen, verwenden wir eine eigene Low-Level-API, das nur aus wenigen elementaren Aufrufen besteht. Wir verwenden dabei eine Pseudoprogrammiersprache, die für Menschen mit Kenntnissen in Java oder C++ leicht interpretierbar sein sollte. Eine Übertragung der in diesem Kapitel vorgestellten Methoden auf ein konkretes Low-Level-API sollte dann auch nicht schwer fallen. Um komplexe Szenen zu erstellen, müssen mehrere 3D-Objekte im virtuellen Raum platziert werden. Wir werden dazu verschiedene Koordinatensysteme einführen und kennenlernen, wie die Koordinaten von Punkten in den jeweiligen Koordinatensystemen berechnet werden können. Um die Zusammenhänge zwischen den Koordinatensystemen besser zu verstehen, führen wir als Hilfsmittel Transformationshierarchien ein.
Stefan M. Grünvogel
Kapitel 2. Szenengraphen
Zusammenfassung
In diesem Kapitel befassen wir uns mit Szenengraphen, einer grundlegenden Datenstruktur, die in der Computeranimation verwendet wird. Sie spielt eine entscheidende Rolle bei der Organisation und Darstellung komplexer 3D-Szenen. Zunächst stellen wir die Kernkomponenten einer Szenengraphen-API vor, die Knoten. Es gibt verschiedene Arten von Knoten: Geometrieknoten, die geometrische Objekte speichern und verwalten, Knoten, die die Lage von 3D-Objekten zueinander definieren, und Gruppenknoten, die als Container für andere Knoten dienen und eine hierarchische Organisation der Szene ermöglichen. Wir diskutieren, wie ein und dieselbe Szene durch verschiedene Szenengraphen repräsentiert werden kann und wie sich diese Repräsentationen unterscheiden. Abschließend behandelt wir noch die Auswertung des Szenegraphen zur Darstellung der 3D-Szene.
Stefan M. Grünvogel
Kapitel 3. Animationssysteme
Zusammenfassung
Im Mittelpunkt dieses Kapitels steht die Betrachtung von Animationssystemen, die mit Hilfe einer Animations-API konkret umgesetzt werden. Grundbausteine der Animations-API sind Simulationsobjekte, die als abstrakte Beschreibung der Objekte eines komplexen Systems dienen. Jedes dieser Simulationsobjekte besitzt einen Zustand, der sich zeitabhängig oder im Austausch mit anderen Objekten ändern kann und zur Erzeugung von Animationen verwendet wird. Über Ein- und Ausgabekanäle können Simulationsobjekte Daten austauschen und so ein komplexes System erzeugen. Es werden Simulationsdiagramme als grafische Darstellung von 3D-Szenen von Animationssystemen vorgestellt, die helfen, komplexe Wechselwirkungen und Zusammenhänge zu visualisieren und zu verstehen. Da sich die Zustände der Simulationsobjekte im Laufe der Zeit ändern können, kann die Reihenfolge, in der die Zustände aktualisiert werden, Auswirkungen auf die Animation haben, wie wir am Ende dieses Kapitels sehen werden.
Stefan M Grünvogel
Kapitel 4. Zeit und Game Loop
Zusammenfassung
Die Zeit ist in der Computeranimation von entscheidender Bedeutung, da sie die Veränderungen der Animationsobjekte mitbestimmt. In diesem Kapitel befassen wir uns zu Beginn mit der Zeit und ihrer Darstellung im Computer. Animationssysteme können eine Zeitachse festlegen, die als Simulationszeit bezeichnet wird und schneller oder langsamer als die physikalische Zeit sein kann. Darüber hinaus können in Animationssystemen mehrere Zeitachsen definiert werden, um Objekte zu animieren. Wir zeigen, wie Zeittransformationen Beziehungen zwischen diesen verschiedenen Zeitachsen herstellen können. Außerdem führen wir das Konzept der Frames und andere in diesem Bereich häufig verwendete Begriffe ein und untersuchen „Game Loops“, die Techniken zur Aktualisierung des Zustands von Animationsobjekten darstellen. Wir werden verschiedene Implementierungen von Game Loops vergleichen.
Stefan M. Grünvogel

Objektanimation

Frontmatter
Kapitel 5. Bewegung im Raum
Zusammenfassung
Der 2. Teil des Buches befasst sich mit der Objektanimation, wobei der Schwerpunkt auf der Bewegung und Rotation von Objekten (z. B. Hubschraubern) entlang von Kurven liegt. Wir beginnen in diesem Kapitel mit einer Einführung in die notwendigen mathematischen Grundlagen, einschließlich des Konzepts der „Keyframe-Animation“, das seinen Ursprung im traditionellen Zeichentrickfilm hat und in der Computeranimation weit verbreitet ist. Wir diskutieren die Bewegung von Objekten entlang von Kurven und die mathematischen Grundlagen von Kurven. Zusätzlich zu den Objektpositionen während der Animation werden wir die Geschwindigkeit des Objekts entlang einer Kurve untersuchen und verschiedene Phänomene untersuchen, die Geschwindigkeitsänderungen beschreiben. Wenn sich ein Objekt entlang einer Kurve bewegt, ist es auch interessant, die zurückgelegte Wegstrecke zu bestimmen. Wir definieren dazu die Bogenlänge einer Kurve und stellen eine einfache numerische Näherungsmethode für den Wert der Bogenlänge vor.
Stefan M. Grünvogel
Kapitel 6. Interpolation und Bézier-Kurven
Zusammenfassung
Mit Hilfe einer Kurve kann die Bewegung eines Objekts definiert werden. Dazu wird festgelegt, zu welchem Zeitpunkt sich das zu animierende Objekt an welcher Stelle befinden soll. Dies ist die Aufgabe der Interpolation, die wir zu Beginn dieses Kapitels einführen und definieren. Um die Interpolationsaufgabe zu lösen und eine mathematische Beschreibung der Kurve zu erhalten, gibt es verschiedene Ansätze. Wir führen das Konzept der Gewichtsfunktionen als grundlegende Idee zur Lösung dieser Aufgabe ein. Dann konzentrieren wir uns auf Bézier-Kurven, eine spezielle Klasse von Kurven mit vorteilhaften Eigenschaften für praktische Anwendungen. Wir diskutieren diese Eigenschaften im Detail und zeigen auch, wie man komplexere Kurven durch die Kombination einfacher Bézier-Kurven erzeugen kann. Die Berechnung von Punkten auf einer Bézier-Kurve ist in der Computeranimation unerlässlich, und wir stellen verschiedene Methoden dafür vor und vergleichen sie.
Stefan M. Grünvogel
Kapitel 7. Steuerung von Zeit, Geschwindigkeit und Wegstrecke
Zusammenfassung
Zur Definition der Bewegung eines Objekts gehört mehr als nur die Angabe seiner Positionen entlang einer Kurve. Genauso wichtig ist es, das Tempo des Objekts entlang der Kurve einzubeziehen oder verschiedene Geschwindigkeiten festzulegen. Zeittransformationen sind dafür wertvolle Werkzeuge, um die Geschwindigkeit der Bewegung zu steuern. Um vorhandene Geschwindigkeitsänderungen einer Kurve auszugleichen, kann durch die Parametrisierung nach der Bogenlänge das Tempo auf einen konstanten Wert gebracht werden. Diese Technik wird in diesem Kapitel immer wieder verwendet. Wir untersuchen Aufgaben zur Temposteuerung, bei denen es um das Durchlaufens einer Kurve mit einem vorgegebenen Tempoverlauf geht. Wir stellen dazu das „Ease-in-ease-out-Prinzip“ vor, eine klassische Methode der Geschwindigkeitssteuerung, die ihre Wurzeln in der frühen Zeichentrickfilmproduktion hat. Außerdem befassen wir uns mit der Aufgabe der Steuerung der Wegstrecke, bei der es darum geht, die Bewegung so zu steuern, dass in einer vorgegebenen Zeit eine bestimmte Strecke zurückgelegt wird.
Stefan M. Grünvogel
Kapitel 8. Rotationen
Zusammenfassung
In der Animation ist die Beschreibung der Rotation eines Objekts genauso wichtig wie die Beschreibung seiner Position. Dieses Kapitel befasst sich mit Rotationen und stellt verschiedene Repräsentationen von Rotationen vor, die in der Computeranimation in unterschiedlichen Kontexten verwendet werden. Wir untersuchen die Vor- und Nachteile sowie die Anwendungen der einzelnen Repräsentationen. Wir beginnen mit der Einführung von Rotationsmatrizen und untersuchen ihre geometrischen Eigenschaften als Grundlage für Rotationen. Eine weitere praktische Darstellung, die axiale Rotation, verwendet eine Achse und einen Drehwinkel. Dies führt uns zur Diskussion von Euler-Winkeln, die häufig in der Computeranimation verwendet werden. Wir untersuchen aber auch die Grenzen von Euler-Winkeln, insbesondere das Gimbal-Lock-Problem und Interpolationsartefakte. Um diese Probleme anzugehen, führen wir die Repräsentation von Rotationen durch Quaternionen ein, die viele der oben genannten Probleme effektiv lösen. Vor allem die Interpolation von Quaternionen ist für die Computeranimation von großer Bedeutung und wird ausführlich besprochen.
Stefan M. Grünvogel

Charakteranimation

Frontmatter
Kapitel 9. Kinematik
Zusammenfassung
Im 3. Teil des Buches beschäftigen wir uns mit der Animation virtueller Charaktere. Dazu wird in diesem Kapitel zunächst der Aufbau virtueller Charaktere beschrieben. Grundlage ist das Skelett der Charaktere, das wir hier etwas allgemeiner betrachten und als kinematische Kette bezeichnen. Diese besteht aus Segmenten (analog zu Knochen) und Gelenken. Die Gelenke spielen eine wichtige Rolle für die Definition von kinematischen Ketten. Wir stellen daher verschiedene Arten von Gelenken dar, sowohl im menschlichen Skelett als auch in virtuellen Charakteren. Da sich die Skelette realer Lebewesen zum Teil stark unterscheiden können, führen wir entsprechende Begriffe zur Charakterisierung kinematischer Ketten ein. Für die Animation virtueller Charaktere ist eine Repräsentation der kinematischen Ketten in einem Animationssystem erforderlich. Wir beschreiben dies als Erweiterung unserer Animations-API, die in den vorherigen Kapiteln vorgestellt wurde. Für die Animation von kinematischen Ketten stehen uns mehrere Methoden zur Verfügung. Wir stellen die Animationen mit direkter und inverser Kinematik vor, die beide in gängigen Animationssystemen verwendet werden. Diese Methoden basieren auf grundlegenden mathematischen Kenntnissen und Konzepten, die ebenfalls in diesem Kapitel behandelt werden.
Stefan M. Grünvogel
Kapitel 10. Linear Blend Skinning
Zusammenfassung
Virtuelle Charaktere werden häufig mit Hilfe von Polygonnetzen dargestellt. In diesem Kapitel wird das Linear Blend Skinning vorgestellt, ein Verfahren, mit dem das Polygonnetz eines virtuellen Charakters animiert werden kann. Die Animation des Polygonnetzes basiert auf der Animation einer kinematischen Kette (des Skeletts) des virtuellen Charakters. Die Eckpunkte des Polygonnetzes werden dann mit Hilfe der animierten kinematischen Kette bewegt. Wir stellen zwei Verfahren vor, die zur Klasse des „Linear Blend Skinning“ gehören. Beim Rigid-Binding wird die Bewegung eines Eckpunktes des Polygonnetzes durch genau ein Gelenk beeinflusst, beim Smooth-Binding durch mehrere Gelenke. Wir zeigen, welche Vorteile die Verfahren haben, aber auch, welche (teilweise unvermeidbaren) Artefakte auftreten können.
Stefan M. Grünvogel
Kapitel 11. Blendshapes
Zusammenfassung
Das Gesicht eines virtuellen Charakters spielt eine wichtige Rolle bei der sprachlichen Kommunikation und dem Ausdruck von Emotionen. Für die Animation von Gesichtern werden hauptsächlich Blendshapes verwendet, die in diesem Kapitel vorgestellt werden. Die Idee dahinter ist, dass von einem Polygonnetz (z. B. dem Gesicht) verschiedene Versionen existieren, die dann für eine Animation gemischt werden. Wir werden dieses Mischen auf zweierlei Arten beschreiben, mit absoluten und mit Delta-Blendshape-Modellen. Beide Darstellungen können ineinander überführt werden. Wir diskutieren mögliche Herausforderungen und Lösungen, die im Zusammenhang mit diesem Animationsansatz verbunden sind.
Stefan M. Grünvogel
Kapitel 12. Motion Capture
Zusammenfassung
Motion Capture bezeichnet Verfahren, mit denen Bewegungen realer Objekte aufgezeichnet werden können. In diesem Kapitel geben wir einen Überblick und klassifizieren die verschiedenen Technologien, die zu diesem Zweck eingesetzt werden. Wir stellen den Produktionsprozess mit diesen Technologien vor und erläutern die einzelnen Schritte. Anschließend gehen wir auf eine spezielle Technologie ein, das optische markerbasierte Tracking, das in der Medienproduktion häufig eingesetzt wird. Dabei wird die Bewegung von Markern, die an einem Akteur angebracht sind, erfasst und aufgezeichnet. Wir erläutern die Funktionsweise und stellen ein einfaches Verfahren zur Bestimmung der Markerpositionen vor. Um die Bewegungsdaten der Marker in Animationsdaten für die virtuelle Charakteranimation umzuwandeln, sind weitere Verarbeitungsschritte notwendig, die wir ebenfalls näher erläutern. Schließlich müssen die erzeugten Bewegungsdaten in einem Dateiformat gespeichert werden. Wir betrachten dazu das weit verbreitete BVH-Dateiformat.
Stefan M. Grünvogel
Kapitel 13. Bearbeitung von Bewegungen
Zusammenfassung
Nach der Erstellung von Bewegungsdaten werden diese in der Regel auf verschiedene Weise verwendet, wobei für bestimmte Verwendungszwecke Anpassungen erforderlich sind. Dieses Kapitel behandelt diese Anpassungen. Es wird eine einheitliche Beschreibung der Bewegungsdaten eingeführt, die als Grundlage für die folgenden Verfahren dient. Eine der ersten Techniken ist die Kombination von Bewegungen, um komplexere Sequenzen zu erzeugen, z. B. durch Mischen oder Hintereinausführung von Bewegungen. Wenn sehr viele Bewegungen kombiniert werden müssen, kann dies mit Hilfe von Übergangsgraphen oder automatisiert mit Motion Graphen geschehen. Beide Verfahren werden vorgestellt und verglichen. Sobald virtuelle Charaktere mit virtuellen Objekten interagieren, müssen die vorhandenen Bewegungsdaten an die sich verändernde Umgebung angepasst werden. Dies wird durch Nebenbedingungen (Constraints) beschrieben, die die Bewegung erfüllen muss. Wir geben einen Überblick über die verschiedenen Arten von Constraints und stellen eine einfache Methode zur Lösung entsprechender Aufgaben vor. Das Motion Retargeting, bei dem Bewegungen von einem virtuellen Charakter auf einen anderen übertragen werden, wird im letzten Abschnitt diskutiert.
Stefan M. Grünvogel

Prozedurale Animation

Frontmatter
Kapitel 14. Physikalisch basierte Animation
Zusammenfassung
In diesem Kapitel erläutern wir zunächst den Begriff der prozeduralen Animation und wenden uns dann der physikalisch basierten Animation zu. Dazu erläutern wir zunächst die physikalischen Gesetze und Größen, die die Bewegung eines einzelnen Massepunktes beschreiben. Dabei können wir bereits viele physikalische Begriffe einführen, die wir im Weiteren verwenden werden. In einem zweiten Schritt erweitern wir diese Beschreibung auf ein System mit zwei Massepunkten, um schließlich Systeme mit beliebig vielen Massepunkten zu beschreiben. Um konkrete Bewegungen von Massepunkten zu beschreiben, werden physikalisch basierte Modelle erstellt, mit denen die gewünschte Animation erzeugt werden kann. Wir zeigen, wie Massepunkte und Kräfte in einer Animations-API implementiert werden können. Um die tatsächlichen Bewegungen der Massepunkte zu erzeugen, wird eine Simulation des Modells durchgeführt. Dazu müssen numerische Näherungslösungen von Differentialgleichungen berechnet werden. Wir stellen einfache numerische Lösungsverfahren vor und diskutieren deren Genauigkeit und Rechenaufwand.
Stefan M. Grünvogel
Kapitel 15. Partikelsysteme
Zusammenfassung
Partikelsysteme sind prozedurale Animationsmethoden, bei denen viele Objekte, die Partikel, gleichzeitig animiert werden. Durch das Zusammenspiel der vielen Partikel können komplexe Animationen entstehen. Anhand einer beispielhaften Implementierung erläutern wir den Aufbau eines Partikelsystems. Wir betrachten dazu Beispiele typischer Algorithmen. Zur Animation der Partikel wird der Zustand der Partikel zyklisch aktualisiert. Wir stellen ein Simulationsverfahren vor, das exemplarisch zeigt, wie dies in einem Partikelsystem realisiert werden kann. Als Alternative zu diesem Verfahren werden auch zustandslose Partikelsysteme kurz vorgestellt. Für die Verwaltung der oft sehr großen Anzahl von Partikeln in einem Partikelsystem sind geeignete Datenstrukturen nötig. Wir diskutieren dazu verschiedene Ansätze. Neben der Bewegung der Partikel trägt auch die Darstellung der Partikel entscheidend zum visuellen Ergebnis bei. Dazu werden verschiedene Darstellungsarten von Partikelsystemen erläutert.
Stefan M. Grünvogel
Backmatter
Metadaten
Titel
Einführung in die Computeranimation
verfasst von
Stefan M. Grünvogel
Copyright-Jahr
2024
Electronic ISBN
978-3-658-41989-9
Print ISBN
978-3-658-41988-2
DOI
https://doi.org/10.1007/978-3-658-41989-9

Neuer Inhalt