Tengo que escribir, lo que se puede resumir como un juego 3D completo desde cero este semestre. Hasta ahora solo he programado juegos 2D en mi tiempo libre, la transición no parece difícil, el juego es simple. El único problema que tengo es la detección de colisiones. Lo único que pude encontrar fue AABB, esferas limitantes o recomendaciones de varios motores de física. Tengo que programar un submarino que se moverá libremente dentro de un sistema de cuevas, AFAIK No puedo usar bibliotecas de física, por lo que nada de lo anterior resuelve mi problema.
Hasta ahora estaba usando SAT para mi detección de colisión. ¿Hay algún algoritmo similar, excelente, pero diseñado para colisión 3D? No estoy hablando de octrees u otras optimizaciones, estoy hablando de la detección de colisión directa de un conjunto de polígonos 3D con otro conjunto de polígonos 3D. Pensé en usar SAT dos veces, proyectar la malla desde la parte superior y lateral, pero luego parece tan difícil incluso dividir el espacio 3D en formas convexas. Además, eso parece demasiado cálculo incluso con octrees.
¿Cómo lo hacen los profesionales? ¿Podría alguien arrojar algo de luz?