Kollisionserkennung und -behandlung: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:
}}
}}


==Definition (von [[Wolfgang Kowarschick|Kowarschick]])==
==Definition (von [[Christer Ericson|Ericson]]<ref>{{Quelle|Ericson (2004)}}</ref>)==
'''Collision detection''': <i>detecting if two (or more) objects are intersecting. More specifically, collision detection concerns the problems of determining if, when, and where two objects come into contact. “If” involves establishing a Boolean result, answering the question whether or not the objects intersect. “When” must additionally determine at what time during a movement collision occurred. “Where” establishes how the objects are coming into contact. Roughly, these three types of queries become increasingly more complex to answer in the order given. ... The terms <em>intersection detection</em> and <em>interference detection</em> are sometimes used synonymously with collision detection.</i>
 
'''Collision determination''': <i>Gathering information about when and where (in addition to the Boolean collision detection result) is sometimes labeled <em>collision determination</em>. </i>
 
===Static collision detection===
<i>'''Static collision detection''' involves detecting intersection between the objects, at discrete points in time, during their motion. At each such point in time the objects are treated as if they were stationary at their current positions with zero velocities.</i>
 
===Dynamic collision detection===
<i>'''Dynamic collision''' detection considers the full continuous motion of the objects over the given time interval. Dynamic collision tests can usually report the exact time of collision and the point(s) of first contact.</i>
 
'''Annotation''': <i>Static tests are (much) cheaper than dynamic tests, but the time steps between tests must be short so that the movement of the objects is less than the spatial extents of the objects. Otherwise, the objects may simply pass each other from one time step to the next without a collision being detected. This phenomenon is referred to as <em>[[Tunneln|tunneling]]</em>.</i>
 
==Definition (von [[Wolfgang Kowarschick|Kowarschick]]<ref name="mmprog">{{Quelle|Kowarschick (MMProg)}}</ref>)==
Unter [[Kollisionserkennung und -behandlung|Kollisionserkennung]] versteht man die [[Algorithmus|algorithmische]] Behandlung des Problems,
Unter [[Kollisionserkennung und -behandlung|Kollisionserkennung]] versteht man die [[Algorithmus|algorithmische]] Behandlung des Problems,
die [[Stoß (Physik)|Kollision]], d.h. das Berühren oder die Überlappung mehrerer zwei- oder dreidimensionaler geometrischer [[Objekt]]e
die [[Stoß (Physik)|Kollision]], d.h. das Berühren oder die Überlappung mehrerer zwei- oder dreidimensionaler geometrischer [[Objekt]]e
Zeile 18: Zeile 31:
Man unterscheidet zwei wesentliche Arten der Kollisionserkennung:
Man unterscheidet zwei wesentliche Arten der Kollisionserkennung:


===A-posteriori-Kollisionserkennung===
===A-posteriori-Kollisionserkennung und -behandlung===
Im Falle der [[Kollisionserkennung und -behandlung|A-posteriori-Kollisionserkennung]] (auch „diskrete Kollisionserkennung“) wird in jedem Zeitschritt
Im Falle der [[Kollisionserkennung und -behandlung|A-posteriori-Kollisionserkennung]] (auch „statische“ oder „diskrete Kollisionserkennung“) wird in jedem Zeitschritt
der Simulation einer Welt, in der bestimmte physikalische Regeln gelten, eine Liste von geometrischen Objektpaaren (oder -mengen) erstellt, die sich aktuell berühren oder überlappen.  
der Simulation einer Welt, in der bestimmte physikalische Regeln gelten, eine Liste von geometrischen Objektpaaren (oder -mengen) erstellt, die sich aktuell berühren oder überlappen.  
Auf diese Objekte wird nachträglich (a posteriori) die [[Kollisionserkennung und -behandlung|Kollisionsbehandlung]] (einschließlich der Auflösung von Überlappungen) angewendet.
Auf diese Objekte wird nachträglich (a posteriori) die [[Kollisionserkennung und -behandlung]] (einschließlich der Auflösung von Überlappungen) angewendet.


===A-priori-Kollisionserkennung===
===A-priori-Kollisionserkennung und -behandlung===
Im Falle der [[Kollisionserkennung und -behandlung|A-priori-Kollisionserkennung]] (auch „stetige Kollsionserkennung“) wird in jedem Zeitschritt
Im Falle der [[Kollisionserkennung und -behandlung|A-priori-Kollisionserkennung]] (auch „dynamische“ oder „stetige Kollisionserkennung“) wird in jedem Zeitschritt
der Simulation einer physikalischen Welt eine Liste von geometrischen Objektpaaren (oder -mengen) erstellt, die im nächsten Schritt kollidieren werden.  
der Simulation einer Welt, in der bestimmte physikalische Regeln gelten,
Auf diese Objekte wird im Voraus (a priori) die [[Kollisionserkennung  und -behandlung|Kollisionsbehandlung]] angewendet.
eine Liste von geometrischen Objektpaaren (oder -mengen) erstellt, die im nächsten Schritt kollidieren werden.  
Auf diese Objekte wird im Voraus (a priori) die [[Kollisionserkennung  und -behandlung]] angewendet.


==Anmerkungen==
==Anmerkungen==
Zeile 41: Zeile 55:


==Beispiele==
==Beispiele==
* [[Axis Aligned Bounding Box|Kollision zweier Bounding Boxes]]
* [[Kollision zweier Kugeln]]
* [[Kollision zweier Kugeln]]


==Quellen==
==Quellen==
<references/>
<references/>
#{{Quelle|Kowarschick (MMProg)}}


==Siehe auch==
==Siehe auch==
# {{Vgl|Stoß (Physik)|Stoß}}
*{{Vgl|Stoß (Physik)|Stoß}}
[[Kategorie:Spielephysik]]
[[Kategorie:Spielephysik]]

Aktuelle Version vom 22. November 2017, 17:09 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 3
(zu größeren Teilen überprüft)
Umfang: 2
(wichtige Fakten fehlen)
Quellenangaben: 1
(fehlen großteils)
Quellenarten: 5
(ausgezeichnet)
Konformität: 5
(ausgezeichnet)

Definition (von Ericson[1])

Collision detection: detecting if two (or more) objects are intersecting. More specifically, collision detection concerns the problems of determining if, when, and where two objects come into contact. “If” involves establishing a Boolean result, answering the question whether or not the objects intersect. “When” must additionally determine at what time during a movement collision occurred. “Where” establishes how the objects are coming into contact. Roughly, these three types of queries become increasingly more complex to answer in the order given. ... The terms intersection detection and interference detection are sometimes used synonymously with collision detection.

Collision determination: Gathering information about when and where (in addition to the Boolean collision detection result) is sometimes labeled collision determination.

Static collision detection

Static collision detection involves detecting intersection between the objects, at discrete points in time, during their motion. At each such point in time the objects are treated as if they were stationary at their current positions with zero velocities.

Dynamic collision detection

Dynamic collision detection considers the full continuous motion of the objects over the given time interval. Dynamic collision tests can usually report the exact time of collision and the point(s) of first contact.

Annotation: Static tests are (much) cheaper than dynamic tests, but the time steps between tests must be short so that the movement of the objects is less than the spatial extents of the objects. Otherwise, the objects may simply pass each other from one time step to the next without a collision being detected. This phenomenon is referred to as tunneling.

Definition (von Kowarschick[2])

Unter Kollisionserkennung versteht man die algorithmische Behandlung des Problems, die Kollision, d.h. das Berühren oder die Überlappung mehrerer zwei- oder dreidimensionaler geometrischer Objekte bei der Simulation physikalischer Welten zu erkennen.

Die Kollisionsbehandlung findet im Anschluss an die Kollisionserkennung statt und hat die Aufgabe, die sich aus der Kollision ergebenden Änderungen von Geschwindigkeit, Richtung, Drehung, Form, Aussehen etc. an den beteiligten Objekten vorzunehmen.

Man unterscheidet zwei wesentliche Arten der Kollisionserkennung:

A-posteriori-Kollisionserkennung und -behandlung

Im Falle der A-posteriori-Kollisionserkennung (auch „statische“ oder „diskrete Kollisionserkennung“) wird in jedem Zeitschritt der Simulation einer Welt, in der bestimmte physikalische Regeln gelten, eine Liste von geometrischen Objektpaaren (oder -mengen) erstellt, die sich aktuell berühren oder überlappen. Auf diese Objekte wird nachträglich (a posteriori) die Kollisionserkennung und -behandlung (einschließlich der Auflösung von Überlappungen) angewendet.

A-priori-Kollisionserkennung und -behandlung

Im Falle der A-priori-Kollisionserkennung (auch „dynamische“ oder „stetige Kollisionserkennung“) wird in jedem Zeitschritt der Simulation einer Welt, in der bestimmte physikalische Regeln gelten, eine Liste von geometrischen Objektpaaren (oder -mengen) erstellt, die im nächsten Schritt kollidieren werden. Auf diese Objekte wird im Voraus (a priori) die Kollisionserkennung und -behandlung angewendet.

Anmerkungen

Typische Einsatzgebiete der Kollisionserkennung und -behandlung sind beispielsweise:

Die Nachteile der A-posteriori-Kollisionserkennung sind:

  • Tunneln (tunneling): Zwei Objekte können einander durchdringen, wenn sie weder zum Zeipunkt $t_i$ noch zum Zeitpunkt $t_{i+1}$ kollidieren, wohl aber zwischen diesen beiden Zeitpunkten. (Beispiel)
  • Überlappung (penetration): Zwei Objekte, die sich zum Zeitpunkt $t_i$ nicht berühren, berühren sich zum Zeitpunkt $t_{i+1}$ nicht nur, sondern überlappen sich. Dies kann bei der anschließenden Kollisionsbehandlung zur Folge haben, dass die beiden Kollisionspartner aneinander hängen bleiben, obwohl dies physikalisch nicht korrekt ist. (Beispiel)

Diese Nachteile versucht die A-priori-Kollisionserkennung auf Kosten von Performanzeinbußen zu vermeiden.

Beispiele

Quellen

  1. Ericson (2004): Christer Ericson; Real-Time Collision Detection; Auflage: 1; Verlag: CRC Press; ISBN: 978-1558607323, 1558607323; 2004; Quellengüte: 5 (Buch)
  2. Kowarschick (WebProg): Wolfgang Kowarschick; Vorlesung „Web-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2024; Quellengüte: 3 (Vorlesung)

Siehe auch