2016-01-08 6 views
-2

Вот сделка. Я работаю над алгоритмом/библиотекой, способной генерировать навигационную сетку практически в любой среде, где я могу получить координаты для контролируемого агента и/или для других агенты в пределах того же статические окружающая среда. Единственный вход, который у меня есть, - это набор точек, в которых был агент. (See the image here to hopefully understand what I mean)Создание navmesh (3D) из доступных точек

Я уже добрался до точки, где могу создавать навигаторы вручную и хорошо перемещаться по ним. Однако в более крупных средах, имея только координаты, скажем, контролируемого агента, очень трудоемко и требует много времени, чтобы вручную это сделать.

Использует для такого алгоритма/библиотеки для меня очевидны, но я положил много думал в это уже, так что я перечислю несколько вещей, которые я хотел бы выполнить:

  • Робототехника (сканирует среду, только получает расстояние от себя к точке, следовательно, получает координаты - нет необходимости в сложной обработке изображений/видео)
  • AI, который способен перемещаться по неизвестному и невидимому лабиринту (любой форме или размеру), исследуя его
  • Запись пройденных областей и создание ИИ для игр, которые не знают определенных мест, если они не были там

Теперь вы надеетесь увидеть, какие решения я ищу.

Я пробовал пару вещей, но не мог понять их. Одна из самых успешных вещей, которые я пробовал, дает диапазон каждой отдельной точке (создание круга), а затем ищет места с перекрывающимися кругами - вы, скорее всего, будете двигаться по этим областям. Проблемы с этим подходом начались с триангуляции областей. Полученная сетка может быть немного неточной, но она должна быть способна легко подключаться к существующим («обнаруженным») частям сетки (не все должно быть каким-то образом взаимосвязано, так как агенты могут исчезнуть и снова появиться, но в разумной близости подключиться сетка).

Дополнительная информация: Я работаю на C#, хотя решения в java, C++/C, объектных C, псевдокодах и т. Д. Одинаково приемлемы.

P.S. Меня вообще не интересуют ответы, такие как «просто использовать эту библиотеку» или «использовать этот другой язык/среду» и т. Д. ... Я хочу алгоритм. Заранее спасибо.

+1

Итак, если я понял ясно, вы ожидаете, что мы сможем генерировать целые алгоритмы для вас? Это не похоже на тему для SO. –

+0

Зачем вам не интересно использовать существующую библиотеку, чтобы исправить вашу проблему? Мне кажется, что вы не должны пытаться изобретать колесо, особенно для этой сложной системы –

ответ

0

Я могу помочь с поиском 2D-траектории. Вам нужно найти красный контур. Затем вы можете использовать диаграмму voronoi с красным контуром (а не с точками агентов). Удалите все края за красным контуром, а оставшиеся края можно использовать для перемещения фигуры кем-то/чем-то. Читайте об этом: http://www.cs.columbia.edu/~pblaer/projects/path_planner/.

 Смежные вопросы

  • Нет связанных вопросов^_^