1 / 31

Collision Detection

Collision Detection. Collision Detection. Jedes Objekt im Spiel kann mit einem anderen kollidieren  viel zu tun 100 Objekte  100.000 Checks  Nur die Objekte checken, die „wahrscheinlich“ kollidieren 1. Coarse Collision Detection (Grobe Kollisionserkennung)

piper
Download Presentation

Collision Detection

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Collision Detection

  2. Collision Detection • Jedes Objekt im Spiel kann mit einem anderen kollidieren  viel zu tun • 100 Objekte  100.000 Checks •  Nur die Objekte checken, die „wahrscheinlich“ kollidieren 1. CoarseCollisionDetection (Grobe Kollisionserkennung) 2. Fine CollisionDetection (Feine Kollisionserkennung)

  3. Coarse CollisionDetection(Grobe Kollisionserkennung) • Eine Liste mit notwendigen Checks erstellen • So groß wie nötig, so klein wie möglich • 2 Herangehensweisen: BoundingVolumes und Spatial Data Structures

  4. Bounding Volume • Ein Gebiet im Raum, der ein Objekt enthält • der Einfachheit halber meistens Sphäre oder Box

  5. Bounding Volume Hierarchies (BVH) • Wenn sich die Bounding Volumes von zwei Objekten berühren oder überlappen, wird eine „Fine Collision Detection“ durchgeführt • Vorteil: Drastische Erhöhung der Geschwindigkeit • Nachteil: Es müssen immer noch alle Objekte gecheckt werden •  Lösung: Bounding Volume Hierarches

  6. Bounding Volume Hierarchies • Eine Bounding Volume Hierarchy enthält alle Bounding Volumes ihrer Objekte in einer Baumstruktur • Jedes Objekt hat seine eigene Bounding Volume ganz unten im Baum • Die BoundingVolumes der einzelnen Objekte sind mit Parent Nodes iverbnuden, von welchen jeder seine eigene Bounding Volume besitzt

  7. Bounding Volume Hierarchies • Wenn die Bounding Volumes von zwei Knoten im Baum sich nicht berühren, dann können keine Objekte, die von diesen beiden Knoten abstammen, sich berühren • Durch negatives Testen von zwei Bounding Volumes, die hoch in der Hierarchie stehen, können, ersparen wir uns das Checken all der Objekte, die von den beiden Knoten abstammen. • Ein Algorithmus generiert eine Liste aller Objekte, die sich berühren könnten

  8. Bottom-up • Für einzelne Paare wird ein Parent Node erstellt, welcher die das Objektpaar in der Liste ersetzt. • Das geht so weiter, bis die Liste nur noch aus einem Knoten besteht.

  9. Top-down • Die Objekte in der Liste werden immer wieder in zwei Gruppen aufgeteilt, bis jede Gruppe und Untergruppe nur noch zwei Objekte enthält.

  10. Insertion • Die einzig sinnvolle Methode, da sie die Hierarchie anpassen kann, ohne sie neu bauen zu müssen! • Bei jedem Knoten wird das Child selektiert, das am besten zum zuzufügenden Objekt passt. • Ein Ast kann durch einen Parent Node ersetzt werden, der zwei Objekte enthält.

  11. Die 3 Methoden • Jede der 3 Methoden hat viele Variationen. • Die Bottom-up-Methode sucht nah aneinanderliegende Objekte, um sie zu gruppieren • Die Top-down-Methode versucht Gruppen aufzuteilen • Die Insertion-Methode muss das Child im Baum wählen, welches am Besten für ein Objekt geeignet ist • Optimale Ergebnisse erfordern viel Fine-Tuning und Experimentieren

  12. Sub-Object Hierarchies • Manche Objekte haben seltsame, unregelmäßige Formen. • Es ist schwierig, gut passende Bounding Volumes für diese Objekte zu schaffen. • Deswegen ist es möglich, multiple Bounding Volumes für ein Objekt zu nutzen, die in einer Hierarchie arrangiert werden. • Dadurch können wir weiterhin simple Checks für simple Bounding Volumes bei einem komplizierten Objekt durchführen.

  13. Spatial Data Structures • Eine Bounding Volume HierarchiefasstObjektezusammen, abhängig von ihrerrelativen Position und Größe • WennsicheinObjektbewegt, verändertsichauch die Hierarchie. • Eine Spatial Data Structure istgebunden an die Welt, sieverändertihreStrukturnicht. • Das KonstruiereneinersolchenStrukturistsomitwesentlicheinfacher.

  14. Spatial Data Structures • OftmalswirdeineKombination von beidenTechnikenbenutzt. • Auchwennkeine Bounding Volume Hierarchies benutztwird, werdentrotzdemgerne Bounding Volumes um jedesObjektbenutzt.

  15. Binary Space Partition Tree (BSP) • Ein Binary Space Partition Tree verhältsich so ähnlichwieeine Bounding Volume Hierarchy. • AnstattBoundung Volumes benutztjederKnotenim BSP eineFläche (Plane), welchealleGebieteimRaum in zweiaufteilt. Jede Plane hat zweiKindknoten, einerfürjedeSeite der Plane.

  16. Binary Space Partition Tree • Objekte auf der einenSeitewerdenzumeinenKindknotenhinzugefügt, Objekte auf der anderenzumanderenKindknoten. • Objekte, die dieFlächekreuzen, werdenzubeidenKindknotenhinzugefügt

  17. Binary Space Partition Tree • Die einzigenKollsionen, die auftretenkönnen, sind die zwischenObjekten am gleichen Zweig imBaum. • Wenndieser Zweig mehralseinObjektenthält, werdenallePaarkombinationenzum Fine Collision Detector gesendet

  18. Oct-Trees & Quad-Trees • Ähnlichwie Binary Space Partiotioning und Bounding Volume Hierarchies • Quad-Trees werdenfür 2-dimensionale Umgebungen (oder 3-dimensionale, beidenen die meistenObjekte auf demBodenagieren) benutzt, Oct-Trees für 3-dimensionale Umgebungen

  19. Oct-Trees & Quad-Trees • Ein Quad-Tree bestehtausmehrerenKnoten, jedermit 4 Descendents • EinKnotenteilt den Raum in 4 Areale auf, die sich an einemPunktkreuzen • Ansonstenähnlich der BSP/BVH

  20. Grids • Ein Grid istein Array von Räumen, in denensichverschiedeneObjektebefindenkönnen. • DiesmalkeineBaumdatenstruktur, die Position kanndirektbestimmtwerden

  21. Grids • WennjedeZellealleObjekteenthält, die diejeweiligeZellestreifen, kann die Liste der möglichenKollisionensehreinfacherstelltwerden: • 2 Objektekönnennurdannkollidieren, wennsie die gleicheZelleim Grid streifen • EswerdenalleZellenbeachtet, welchemehrals 1 Objektenthalten

  22. Grids • FüreinObjekt, das so großwieeineZelleist, müssen maximal 4 von möglichen 8 Zellengechecktwerden. • EinObjekt, das 4-mal so großtwieeineZelleist, müssen 16 von möglichen 24 Zellengechecktwerden, usw. • FürsehrgroßeObjekteeineUnmenge an Aufwand! • Lösung: Multi-Resolution Map

  23. Multi-Resolution Maps • Eine Multi-Resolution Map isteineGruppeaus Grids mitzunehmendenZellgrößen • Objektewerdennurzueinem der Grids hinzugefügt, je nachdemwiegroß das Objektist • Jedes Grid hat eineZellgröße die 4-mal so großistals die des vorherigen Grids

  24. Multi-Resolution Maps • Der Algorithmuskreiertfürjedes Grid einemöglicheKollisionzwischenjedenObjekten in der gleichenoder in benachbartenZellen (maximal 3) • Zusätzlichwird das ObjektmitallenObjekten in allenZellen in den Grids mit den größerenZellengecheckt

  25. Contact Generation

  26. BerührungennachPrioritäten • WennwirKontaktegenerierenkönnen, die in dieserListehöhersind, könnenwir die Kontakteweiteruntenignorieren • Am wichtigstensind Point-Face und Edge-Edge-Kontakte

  27. Contact Data

  28. Primitive CollisionAlgorithms • EinAlgorithmussuchtnachKontakten und generiert Structures mitKontaktdaten • Algorithmenkönnengarkeinen, einenodermehrereKontaktezurückgeben, die z. B. als Array ausgegebenwerdenkönnen

  29. Kontaktbedingungen • Sphäre-Sphäre: Die EntfernungihrerMittelpunkteistkleinerals die SummeihrerRadien • Sphäre-Fläche: Die EntfernungvomMittelpunkt der SphärezurFlächeistkleinerals der Sphärenradius • Box-Fläche: (kannmehralseinKontakthaben): Einerodermehrere Vertices der Box liegen hinter der Fläche

  30. Fazit • Wirhabennur an der Oberfläche der Thematikgekratzt • Die Physik-Engine einesprofessionellen Spiels istwesentlichkomplexer • Collision Detection und Contact Generation nehmenvielZeit in Anspruch • VielOptimierungsarbeit und Experimentierennotwendig, bisoptimaleErgebnisseerzieltwerden

  31. Vielen Dank!

More Related