Вот моя проблема. Я создаю игру, и мне интересно, как это делать. У меня есть несколько примеров для анализа и поиска лучшего решения.
Я скажу это заранее, я не использую какую-либо стороннюю физическую библиотеку, но я собираюсь сделать это в доме. (поскольку это образовательный проект, у меня нет расписаний, и я хочу учиться)
У меня есть 2 типа сетки, для которых мне приходится совершать столкновения для:
1) Статические сетки (которые перемещаются по экрану, но не имеют ЛЮБОЙ анимации)
2) Консервированные /Boned Meshes (анимированные)
На самом деле у меня есть это решение (довольно хакерское: |)
Прежде всего, у меня есть тест против некоторого ограничивающего тома, который заключает в себе полный меш (капсула в моем случае), после:
1) Для статических сеток я делю их вручную в блоках (на моделере), и для каждого из этих блоков я использую тест сферы /AABB. (работает отлично, но его немного беспорядочно нарезать каждую сетку: P) (я попробовал автоматическую систему для разделения сетки через плоскости, но это дает плохие результаты:()
2) Для анимированного Mesh-ATM я деля по сетке во время выполнения на x блоков (где x - количество костей). Каждый блок содержит вершину, для которой эта кость является основным фактором. (Иногда работает, иногда дает очень плохие результаты.: |)
Обратите внимание, что разделение сетки выполняется во время загрузки, а не каждый раз (в противном случае оно будет работать как слайд-шоу: D)
И вот вопрос:
Какая самая разумная идея для использования в этих двух случаях? Любой материал для меня, чтобы изучить эти методы? (с некоторыми исходными кодами и объяснениями будет еще лучше (язык не важен, когда я понимаю алгоритм, реализация проста)) Можете ли вы аргументировать, почему это решение лучше других? Я слышал много разговоров о kd-tree, octree и т.д., Тогда как я понимаю их структуру, я пропускаю свою утилиту в сценарии обнаружения столкновений.
Спасибо большое за ответы!!!
EDIT: попытка найти пример K-Dop с некоторым объяснением в сети. Все еще ничего не нашли.:( Любые подсказки? Я заинтересован в том, КАК K-Dop может быть эффективно протестирован с другими типами ограничивающих томов и т.д.... но документация в сети кажется крайне недостаточной.: (