Я должен написать, что можно охарактеризовать как полную 3D-игру с нуля в этом семестре. До сих пор я программировал только 2D игры в свободное время, переход не кажется сложным, игра проста. Единственная проблема, которую я имею, - обнаружение столкновения. Единственное, что я мог найти, это AABB, ограничивающие сферы или рекомендации различных физических движков. Я должен запрограммировать подводную лодку, которая будет свободно перемещаться внутри пещерной системы, AFAIK. Я не могу использовать физические библиотеки, поэтому ни одно из вышеперечисленного не решает мою проблему.
До сих пор я использовал SAT для обнаружения столкновений. Существуют ли похожие, отличные алгоритмы, но созданные для 3D-столкновений? Я не говорю о октреях или других оптимизациях, я говорю о прямом обнаружении столкновений одного набора 3D-полигонов с другим набором 3D-полигонов. Я думал об использовании SAT дважды, проецируя сетку сверху и сбоку, но потом кажется, что даже трудно разделить трехмерное пространство на выпуклые формы. Кроме того, это кажется слишком сложным вычислением даже с октреями.
Как это делают профессионалы? Может ли кто-нибудь пролить свет?