Eu tenho que escrever, o que pode ser resumido como, um jogo 3D completo do zero neste semestre. Até agora, eu só programava jogos 2D no meu tempo livre, a transição não parece difícil, o jogo é simples. O único problema que tenho é a detecção de colisões. A única coisa que encontrei foi a AABB, esferas delimitadoras ou recomendações de vários mecanismos de física. Eu tenho que programar um submarino que se moverá livremente dentro de um sistema de cavernas; AFAIK não posso usar bibliotecas de física; portanto, nenhuma das opções acima resolve meu problema.
Até agora eu estava usando o SAT para minha detecção de colisão. Existem algoritmos excelentes e similares, mas criados para colisão 3D? Não estou falando de octrees ou outras otimizações; estou falando de detecção direta de colisão de um conjunto de polígonos 3D com outro conjunto de polígonos 3D. Pensei em usar o SAT duas vezes, projetar a malha da parte superior e lateral, mas parece tão difícil até dividir o espaço 3D em formas convexas. Também isso parece computação demais, mesmo com octrees.
Como os profissionais fazem isso? Alguém poderia lançar alguma luz.