Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 9 » Computeranimation und Kollisionsdetektion
Computeranimation und Kollisionsdetektion
2013-02
Prüfer: Dr. Roberto Grosso
Beisitzer: Dipl.-Inf. Magdalena Prus
Die Atmosphäre während der Prüfung war angenehm. Der geforderte Stoff richtete sich strikt nach der Liste der relevanten Themen, die in der Vorlesung vorgestellt wurde. Diese Liste wurde von Dr. Grosso durchgegangen, wobei er anscheinend in jeder Prüfung andere Schwerpunkte setzt und eine andere Reihenfolge wählt, in der die Themen gefragt werden.
Q: Was ist hierarchische Kinematik?
- Hierarchischer Aufbau eines Skeletts.
- Man hat Links und Joints. Diese sind hierarchisch organisiert, wobei man eine Wurzel hat.
- Transformationen werden auf darunterliegende Links angewandt.
Q: Welche Arten von Gelenken haben wir besprochen?
- Drehgelenk (1 Freiheitsgrad), Teleskopgelenk (1 Freiheitsgrad), Kugelgelenk (3 Freiheitsgrade), Ebenengelenk (2 Freiheitsgrade)
Q: Man hat einen Roboterarm (3 Gelenke) und will den zu einem Punkt (2D) bewegen. Wie macht man das?
- Inverse Kinematik
- Winkel an den Gelenken sind die gesuchten Parameter
- Gleichungssystem aufstellen
- 3 Gelenke > 2 Koordinaten ⇒ Jacobi-Matrix nicht quadratisch
- Lösung: Rechte Pseudoinverse verwenden
Q: Wodurch kann man die Bewegung von Punktmassen beschreiben?
- Newton'sches Gravitationsgesetz
Q: Das ist eine DGL, die kann man mit Integrationsverfahren lösen. Was gibt es da für Verfahren?
- Einschritt-/Mehrschritt-
- explizit/implizit
Q: Ein Beispiel für ein implizites Verfahren?
- implizites Euler-Verfahren
Q: Was ist da besonders?
- y_{i+1} auf beiden Seiten der Gleichung
- Es muss somit ein Gleichungssystem gelöst werden
Q: Und bei expliziten Verfahren?
- y_{i+1} hängt nur von y_i ab
Q: Warum nimmt man dann implizite Verfahren überhaupt?
- Stabiler
- Für manche Probleme bessere Ergebnisse
Q: Was sind Mehrschritt-Verfahren?
- Nicht nur das letzte Ergebnis, sondern auch weiter zurückliegende Ergebnisse werden verwendet
Q: Wie beschreibt man ein Partikelsystem?
- Partikel = minimales Teilchen
- Eigenschaften: Position, Geschwindigkeit, Masse, Lebensdauer
Q: Man hat ja nicht nur ein Partikel, sondern mehrere. Wenn man damit Simulationen durchführen möchte, was muss man beachten?
- Partikel interagieren mit Umgebung
- Partikel interagieren nicht untereinander
Q: Man will die Partikel auch darstellen. Wie geht man vor?
- Partikel erzeugen
- Partikelinteraktion simulieren
- Partikel entfernen
- Partikel aktualisieren
- Szene rendern
Q: Man möchte einen Vulkanausbruch mit Partikeln darstellen, wie macht man das?
- Punkt P im Zentrum des Kraters
- Partikel zufällig gestreut um Mittelwert P erzeugen
- Geschwindigkeiten und andere Parameter auch mit Zufallsanteilen
Q: Ein Partikel trifft auf eine Wand. Was passiert?
- Partikel prallt ab
- Wie bei Reflexion
Q: Muss das immer so funktionieren oder kann der Geschwindigkeitsvektor auch anders aussehen?
- Reibung: Komponente in Richtung der Fläche schwächen
- Komponente in Richtung der Normale schwächen
- Dadurch: Anderer Geschwindigkeitsvektor
Q: Welche Bounding Volumes haben wir betrachtet und wie funktioniert die Kollisionsdetektion?
- AABB
- Kollisionsdetektion: Projektionen auf Achsen betrachten
- Berechnung: Minimale/Maximale Ausdehnung bezüglich Achsen
- Kugeln
- Kollisionsdetektion: Distanz zwischen Mittelpunkten mit Summe der Radien vergleichen
- Berechnung: Welzl-Algorithmus: Zwei Punkte definieren Kreis; Punkt, der außerhalb liegt, betrachten und Kreis erweitern; rekursiver Aufruf
- OBB
- Kollisionsdetektion: Projektionen auf 15 Achsen (3D) betrachten; Achsen der OBBs (6) + Kreuzprodukte der Achsen (9)
- Berechnung: Mit PCA
- k-DOPs
- Kollisionsdetektion: Projektionen auf fixe Normalen
- Berechnung wurde nicht gefragt
- Vorteile gegenüber AABBs: Bessere Annäherung der Geometrie
- Vorteile gegenüber OBBs: Weniger Tests nötig
Q: Man kann das Ganze auch hierarchisch organisieren, wie geht man da vor?
- Bounding Volume Hierarchy
- Bounding Volume von mehreren Objekten berechnen
- Enthält wiederum Bounding Volumes von Teilmengen, usw.
Q: Und was ist Space Partitioning?
- Aufteilung des Raumes (für jede Möglichkeit habe ich jeweils eine Zeichnung angefertigt)
- Uniform Grid
- Quadtree/Octree
- kd-Tree
- BSP-Tree
Q: Was sind Solid Leaf Trees?
- BSP-Tree, bei dem Halbräume durch Flächen eines Objekts getrennt werden
Q: Wie kann man damit erkennen, ob ein Punkt in einem Objekt ist?
- Baum traversieren und testen, ob Punkt in positivem oder negativem Halbraum
- Wenn Blatt „Empty“ ist ⇒ nicht im Objekt
- Wenn Blatt „Solid“ ist ⇒ im Objekt