Ich muss dieses Semester ein komplettes 3D-Spiel von Grund auf neu schreiben. Bisher habe ich in meiner Freizeit nur 2D-Spiele programmiert, der Übergang scheint nicht schwierig zu sein, das Spiel ist einfach. Das einzige Problem, das ich habe, ist die Kollisionserkennung. Das einzige, was ich finden konnte, war AABB, Grenzkugeln oder Empfehlungen verschiedener Physik-Engines. Ich muss ein U-Boot programmieren, das sich innerhalb eines Höhlensystems frei bewegen kann. AFAIK Ich kann keine Physikbibliotheken verwenden, daher löst keines der oben genannten Probleme mein Problem.
Bisher habe ich SAT für meine Kollisionserkennung verwendet. Gibt es ähnliche, großartige Algorithmen, die jedoch für 3D-Kollisionen entwickelt wurden? Ich spreche nicht von Oktrees oder anderen Optimierungen, sondern von der direkten Kollisionserkennung eines Satzes von 3D-Polygonen mit einem anderen Satz von 3D-Polygonen. Ich habe darüber nachgedacht, SAT zweimal zu verwenden, das Netz von oben und von der Seite zu projizieren, aber dann scheint es so schwierig zu sein, den 3D-Raum in konvexe Formen zu unterteilen. Auch das scheint selbst bei Oktrees viel zu viel Rechenaufwand zu sein.
Wie machen es Profis? Könnte jemand etwas Licht ins Dunkel bringen?