Ziel dieses Kapitels ist es eine exakte Mesh-basierte Kollisionserkennung zu implementieren und Ihre Engine zu finalisieren.

GJK Algorithmus

Wikipedia - Gilbert–Johnson–Keerthi distance algorithm

Video: Casey Muratori - Implementing GJK - 2006

Video: Casey Muratori - Papers I have loved - 2016

Aufgaben

10.1: Erzeugen Sie sich ein Projekt basierend auf Kapitel 9. Sie können ebenfalls alle Ihre eigenen Anpassungen der vorherigen Kapitel mit übernehmen. Sie entscheiden nun selbst welche Funktionen Ihre Engine haben soll. Im Ordner von Kapitel 10 auf Github finden Sie Szenen und Modelle die Ihnen bei der folgenden Aufgabe helfen können.

10.2: Implementieren Sie den GJK Algorithmus in der Collider Klasse um eine exakte Mesh-basierte Kollisionserkennung konvexer Modelle zu realisieren.

  • Die TODO Anweisungen in der Collider Klasse können Ihnen helfen.
  • Das Laden der .obj Datei gibt es an anderer Stelle schon. Auch das Caching der Ressourcen. Kopieren Sie was Sie brauchen.
  • Ein guter Einstieg ist es damit zu beginnen den Radius aus der Punktmenge zu bestimmen. Dann sollte schonmal alles so weiter funktionieren wie bisher ohne dass Sie an diversen Stellen Anpassungen vornehmen müssen.
  • Beim Entwickeln Ihrer Hilfsmethode zur Bestimmung des nächsten Vertex können Sie zu Anfang auch auf die Kugel zurückgreifen. Die Implementierung ist trivial und Sie sollten sehen ob es funktioniert.

10.3: Überlegen Sie sich wie Sie den GJK Algorithmus anschaulich erklären können.

Diese Seite speichern:
Redvery Journal
Computergrafik-Effiziente-Algorithmen-10.trj
Seite speichern
Computergrafik-Effiziente-Algorithmen-10.trj
Redvery Journal ist ein modernes Dateiformat mit dem diese Seite incl. aller Bilder und Anhänge gespeichert und offline verwendet werden kann.

Die passende App dazu gibt es kostenlos unter www.redvery.com/journal
Speichern
Abbrechen