sagt mir, wenn ich euch mit meiner Fragerei auf den Wecker gehe, aber ihr habt mir bisher so schön geholfen. Also, langsam versuche ich, mich in den Bereich Kollision einzuarbeiten. Dabei scheint mir die Erkennung meistens schwieriger zu sein als die Verarbeitung. Mir schwebt etwa ein dreiteiliges Verfahren vor:
1. Eingrenzen der Objekte, die überhaupt aufgrund der Position in Frage kommen.
2. Wenn welche in Frage kommen, Test mit bounding volumes auf gefährliche Nähe.
3. Wenn das bounding volume angeritzt wird, Test, ob und welches Polygon eine Kollision verursacht.
- Anschließend ggfs. Verarbeitung.
Frage 1: Zunächst interessiert mich nur der 1. Schritt. Man könnte hingehen und das Gelände in Zonen aufteilen; damit würde man eine Begrenzung erreichen. Man könnte aber auch hingehen und eine Kollisionsmap anlegen, so eine Art Mesh für Objekte, die im Wege stehen können. Wäre sicher ziemlich schnell, aber aufwendig. Beides ist auch nicht besonders intelligent. Gibt es da noch bessere Verfahren? Notwendig ist das Eingrenzen auf jeden Fall, da mein geplantes Projekt mit mehreren tausend Objekten arbeiten wird.
Frage 2: Wenn ich schon mal dabei bin. Was ist eigentlich, wenn sich die Kugel oder sonstwas mit hoher Geschwindigkeit bewegt und den Gegenstand durchfliegt, weil die Kollision zwischen zwei Rendertakten liegt? Gibt es dagegen Rezepte?
Registriert: Sa Mai 04, 2002 19:48 Beiträge: 3830 Wohnort: Tespe (nahe Hamburg)
@1: Ich denke am bequemsten ist es, wenn man mit bounding Spheres arbeitet, da es sich sehr leicht prüfen läßt, ob zwei Kugeln sich getroffen haben. Diese Sphere kann je nach Lösung recht großzügig angelegt sein und dient ausschließlich um zu prüfen, ob eine Kollision theoretisch zu Stande kommen könnte. Je nach gewünschter Komplexität könnte nun eine genaue Prüfung mittels verschiedener Boundings berechnet werden (Spheres, Boxes reichen meist aus), um festzustellen, ob tatsächlich eine Kollision stattgefunden hat. Ist auch dies der Fall kann man übergehen und zu einer genauen Prüfung vorzugehen an welchem Primitive eine Kollision eingetreten ist. In den meisten Fällen ist eine solch genaue Prüfung jedoch gar nicht nötig und man kann mittels der Boundings im zweiten Schritt bereits verschiedene Trefferzonen definieren. Auf diese Weise läßt sich recht einfach eine Kollision überprüfen. Eine Einteilung der Karte in Zonen mag vermutlich eher im Bereich einer KI interessant sein für eine Kollisionsprüfung halte ich es eindeutig zu übergewichtet.
@2: Bin nur auf dem Sprung, aber suche mal bei Google nach lighthouse 3d und collision und Du solltest dort einen Artikel finden, der sich genau dieser Problematik annimmt.
_________________ "Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."
Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.