Hallo
Ich möchte Bounding Boxen zur Kollisionsabfrage verwenden.
Ich habe hier im Forum irgendwo gelesen, dass man für jeden Raum nur eine Bounding Box verwenden muss. Also seh ich es richtig wenn sich eine Box völlig in einer anderen befindet, gibt es keine Kollision? Also geben bloß die "Wände' eine Kollision?
Und noch was: Wenn ich Bounding Boxen erstellen, bewegen die sich bei glrotate/gltranslate mit?
Das kommt auch auf die Art deiner Kollisionsabfrage drauf an, ob du auch überprüfst, ob sich etwas vollständig innerhalb der Box befindet.
Schneller sind ohnehin Bounding Spheres, die zumeist ebenfalls ausreichen - bei denen muss man sich auch nicht um die Orientierung kümmern.
Kugeln sind zu Darstellung eines Spielers nicht so gut geeignet, weil man dann zur Wand des gleichen Abstand hat wie noch oben oder unten. Das ist aber nicht der Fall und wirkt daher unnatürlich. Bounding Boxen sind praktisch nicht langsamer. Der einzige Zusatz ist, daß die zu prüfenden Entfernung nicht konstant wie bei einer Kugel ist, sondern von der Ausrichtung der Ebene abhängt.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich kenn mich mit dem Thema überhaupt nicht aus aber was mich interessieren würde: Könnte man da nicht "Bouding Cylinders" nehmen? Da kann man den Radius schön eng machen und nach oben und unten kann man größere Abstände nehmen. Oder was spricht da dagegen?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Zylinder ginge von der Form her auch. Ich bezweifele allerdings, daß die Umsetzung einfacher ist. Außerdem gibt's ja auch noch andere Figuren außer Menschen, und da könnte eine Bounding Box flexibler sein. Tatsäclich wird beides benutzt: UT verwendet Zylinder, Quake verwendet Bounding Boxen.
@Kugeln schlecht
Stimmt, als alleiniger Kollisionstest sind sie suboptimal. Normalerweise hat man aber auch noch eine "allgemeine" Kollision in petto, sodass für den schnellen Ausschluss, ob diese überhaupt notwendig ist, bzw. für den Frustumtest von sehr vielen Objekten Bounding Spheres IMHO besser geeignet sind.
Open Inventor z.B. stellt gleich verschiedene Tests zur Verfügung
Bounding Shere -> Bounding Box oder Bounding Cylinder -> Kollision mit vereinfachtem Mesh -> exakte Kollision, was für ein einfaches Spiel aber Overkill ist.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Dieser Artikel auf Gamasutra (kostenlose Registrierung erforderlich) erklärt die Thematik eigentlich recht gut. Der "Mangel" an komplexen Artikeln zu diesem Thema stammt wohl daher, dass es auf diesem Gebiet ganz einfach nicht viel zu erklären gibt. Ne Bounding Box zu erstellen ist verdammt einfach (da man ja die Vertexdaten hat), und zu prüfen ob ne Box mit ner anderen Box kollidiert ist auch recht einfach. Bei AABBs wirds dann ein wenig schwerer.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.