FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Allgemeines

3d collision detection

3d collision detection 2009-01-31 22:55
Hannibal
Hi!

Habe mich in den letzten Tagen mal wieder mit OpenGL Programmierung (unter c/c++) auseinandergesetzt, und nun stehe ich vor einem Problem bei dem mir OpenGL nicht wirklich helfen kann:

Kollisionsabfragen
Ich möchte erkennen können auf welchen Polygon die Kamera zeigt. Und wohin genau auf diesem Polygon.

In der Theorie ist es wohl die Frage, ob und wo ein Strahl (Kamerablickrichtung) durch ein Dreieck im Dreidimensionalen Raum trifft.
Habe die letzten Tage mich selber daran versucht, bin allerdings bisher daran gescheitert. Ich kann nur erkennen, ob und wo ein Strahl durch ein Rechteck trifft. Und gute Tutorials habe ich leider nicht gefunden, entweder nutzen die ein eigenes Library oder übersteigen bei den Erklärungen meinen mathematischen Horizont.

Ich weiss ich könnte auch einfach ein Library dafür nehmen, ich würde allerdings auch gerne versuchen zu verstehen, wie so etwas funktioniert.

Kennt einer von euch vielleicht ein gutes Tutorial dafür? Oder hat so etwas sogar schonmal selber gemacht?

RE: 3d collision detection 2009-02-01 04:06
AA
google mal nach "pick ray"

RE: 3d collision detection 2009-02-01 15:28
Hannibal
Danke!

Schau ich mir mal an.
Ich selber habe inzwischen ein paper über den Möller-Trumbore "ray-triangle-intersection" Algorithmus gefunden und arbeite mich da gerade ein. Der C Source des Algorithmus ist nur eine Seite lang - da steige ich einigermaßen durch X-)

RE: 3d collision detection 2009-02-01 23:36
garou
Versuch', wenn du die Rechenzeit senken willst, vorher noch tests auf Hüllsphären, bevor du Dreieck für Dreieck testest.

RE: 3d collision detection 2009-02-02 02:13
Hannibal
Versuch', wenn du die Rechenzeit senken willst, vorher noch tests auf Hüllsphären, bevor du Dreieck für Dreieck testest.

Ich glaube, das werde ich dann machen, wenn es soweit ist. Finde es schon schwer genug das mit der Strahl-Polygon Kollision richtig hinzubekommen. (Ich hätte mal in M2M3/ALA besser aufpassen sollen…)
Bin aber schon weitergekommen - wenn ich fertig bin, kann ich meinen Sourcecode zu Verfügung stellen, falls jemand Interesse hat.

RE: 3d collision detection 2009-02-02 10:17
Fred
Ich hätte mal in M2M3/ALA besser aufpassen sollen…
Kannst ja auch CGB (bzw. die beiden Ersatzveranstaltungen) besuchen.

RE: 3d collision detection 2009-02-02 10:21
Hannibal
Ich glaube mir fehlen einfach einige Grundlagen - aber wenigstens habe ich jetzt einen Grund die zu lernen. Besser als zusammenhanglos Matrizen auszurechnen. Wenn einem eine Sache Spaß bringt, lernt man viel besser dabei.
CGB wollte ich aber eh mal reinschauen.