Зрештою, я думаю, що відповідь на ваше питання залежатиме від потреб вашої конкретної програми, оскільки не існує рішення, яке підходить одному розміру. Хоча в Інтернеті є чимало гідних ресурсів, ви заощадите собі багато часу та розчарувань, вибравши Крістер Еріксон « Виявлення зіткнення в реальному часі» Крістера Еріксона , в якому детально викладено найрізноманітніші методи та алгоритми, наприклад C ++ код.
Це допомогло мені зробити дитячі кроки, перш ніж стрибати в спробі побудувати грандіозну систему. Написання функції, щоб визначити, чи точка знаходиться в площині, то якщо точка знаходиться в трикутнику, якщо промінь є в трикутнику і т. Д. Потім переходимо до статичних випробувань різних опуклих твердих тіл: AABB vs. Triangle тощо. Часи, які здавались непрохідними (пробачте каламбур), спочатку стали менш грізними. Ось перелік хорошої кількості тестів із прикладом коду:
http://www.realtimerendering.com/intersections.html
Тим часом, оскільки я знаю, що не кожен може за власним бажанням виплатити 70-80 доларів за книгу, ось які умови ви можете розглянути:
- Просторова перегородка, октреси, квадрати, дерева BSP
- BIH Дерева
- Обмеження обсягів та обмеження ієрархій обмеження
- Дискретне проти безперервного виявлення зіткнень
- Роздільна теорема осі
- Алгоритм GJK