stringtranslate.com

Навигационная сетка

Навигационная сетка , или navmesh , представляет собой абстрактную структуру данных , используемую в приложениях искусственного интеллекта для помощи агентам в поиске пути через сложные пространства. Этот подход известен по крайней мере с середины 1980-х годов в робототехнике , где он назывался meadow map , [1] и был популярен в видеоиграх AI в 2000 году.

Описание

Навигационная сетка — это набор двумерных выпуклых многоугольников ( полигональная сетка ), которые определяют, какие области среды доступны для прохождения агентами. Другими словами, персонаж в игре может свободно перемещаться по этим областям, не встречая препятствий в виде деревьев, лавы или других препятствий, являющихся частью среды. Соседние многоугольники соединены друг с другом в графе .

Поиск пути внутри одного из этих полигонов может быть выполнен тривиально по прямой линии, поскольку полигон выпуклый и проходимый. Поиск пути между полигонами в сетке может быть выполнен с помощью одного из большого количества алгоритмов поиска графа , таких как A* . [2] Таким образом, агенты в навигационной сетке могут избегать вычислительно затратных проверок обнаружения столкновений с препятствиями, которые являются частью среды.

Представление проходимых областей в форме, подобной 2D, упрощает вычисления, которые в противном случае пришлось бы выполнять в «истинной» 3D-среде, однако в отличие от 2D-сетки оно допускает проходимую область, которая перекрывается сверху и снизу на разной высоте. [3] Полигоны различных размеров и форм в навигационных сетках могут представлять произвольные среды с большей точностью, чем обычные сетки. [4]

Создание

Навигационные сетки могут быть созданы вручную, автоматически или с помощью некоторой комбинации этих двух методов. В видеоиграх дизайнер уровней может вручную определить полигоны навигационной сетки в редакторе уровней . Такой подход может быть довольно трудоемким. [5] В качестве альтернативы можно создать приложение, которое принимает геометрию уровня в качестве входных данных и автоматически выводит навигационную сетку.

Обычно предполагается, что среда, представленная навигационной сеткой, статична – она не меняется со временем – и, таким образом, навигационная сетка может быть создана в автономном режиме и быть неизменяемой. Однако были проведены некоторые исследования онлайн-обновления навигационных сеток для динамических сред. [6]

История

В робототехнике использование связанных выпуклых многоугольников таким образом получило название «картографирование лугов» [1], введенное в обращение в техническом отчете Рональда С. Аркина за 1986 год . [7]

Навигационные сетки в искусственном интеллекте видеоигр обычно приписываются статье Грега Снука 2000 года «Упрощенное 3D-движение и поиск пути с использованием навигационных сеток» в Game Programming Gems . [8] В 2001 году Дж. М. П. ван Вейверен описал похожую структуру с выпуклыми и связанными 3D-полигонами, названную «Системой осведомлённости об области», используемую для ботов в Quake III Arena . [9]

Примечания

  1. ^ ab Tozour 2002, стр. 171.
  2. Снук 2000, стр. 294–295.
  3. Снук 2000, стр. 289.
  4. Бренд 2009, стр. 4.
  5. Бренд 2009, стр. 10.
  6. ^ ван Толль, Кук IV и Герертс, 2012.
  7. ^ Аркин 1986.
  8. ^ Голодец 2013.
  9. ^ ван Ваверен 2001, с. 24–46.

Ссылки

Внешние ссылки