¿Cómo funciona Navigation Mesh Path-Finding?


27

Quiero entender cómo funcionan las navmeshes, cómo implementarlas y por qué es mejor que otros tipos de sistemas de rutas.


Esto apareció en el curso de mis recorridos matutinos por Internet: aigamedev.com/open/reviews/alienswarm-node-graph Podría valer la pena leer :-)
coderanger

Este tutorial puede ser útil para los usuarios de Unity que se encuentran con esta publicación: binpress.com/tutorial/unity3d-ai-navmesh-navigation/119
MichaelHouse

Respuestas:


6

Es lo mismo que la búsqueda de ruta de puntos de ruta, solo que en lugar de puntos de ruta tiene polígonos de ruta y puede inferir algunas cosas sobre navimesh a partir de ella:

  • Los polígonos de paso son áreas donde las entidades pueden caminar con seguridad
    • otras áreas probablemente no deberían considerarse
    • los puntos de ruta deben dar un salto de fe al espacio entre ellos; ¿Recuerdas a los NPCs pegados en las paredes? Fue en lugares donde dos puntos de referencia no estaban conectados directamente.
  • Hay potencialmente menos nodos (porque los polígonos son biger)
    • Por lo tanto, lo más probable es que sea más rápido
    • Por lo tanto, tiene requisitos de memoria potencialmente menores
  • Es más realista (porque el área del polígono contiene en teoría una cantidad infinita de puntos)

2

Por lo general, se usan con algún tipo de algoritmo A * mejorado (tiene en cuenta los enlaces saltar o volar para encontrar rutas en 3D). De esa manera, no es realmente un sistema diferente que cualquier otra cosa, es más una forma de generar una red de búsqueda de ruta normal directamente desde un entorno o terreno de alta poli (bueno, relativamente hablando). Por alguna razón, los llamamos balizas aquí, pero la idea es la misma, algún tipo de proceso automatizado se ejecuta en cada mapa y produce un conjunto simple de conexiones que pueden hacer que A * se ejecute en ellos en un marco de tiempo razonable. Si intentas encontrar rutas con los datos subyacentes sin procesar, sería demasiado lento para un juego debido a la densidad de la malla.


¿No es este un gráfico de puntos de referencia, excepto hecho en una malla simplificada? Pensé que las navmeshes te permiten hacer rutas en el polígono.
Fuego

El gráfico simplificado le permite hacer rutas de larga distancia, el corto alcance generalmente se maneja de otra manera. Parece que el sistema de Valve usa los datos de malla para ambos, solo de diferentes maneras (enrutamiento de supernodo frente a restricciones locales).
coderanger

Un simple conjunto de conexiones no es un navmesh, ¿verdad? Pensé que se llamaba navmesh porque haces rutas en polígonos.
Fuego

No creo que la navegación local versus global sea relevante aquí.
Disparar el

1
Un conjunto de polígonos vecinos sigue siendo un gráfico al igual que un conjunto de puntos de referencia y puede hacer A * en él de la misma manera. La única diferencia es que una vez que sepa por qué polígonos se va a mover, dibuje las líneas de manera diferente.
coderanger

0

Hay muchas formas de hacerlo. A * y tal es una buena opción, pero carece de documentación. Podría hacer algo como colocar nodos casi aleatoriamente alrededor del mapa y verificar qué nodos pueden verse entre sí y construir una pequeña red de nodos. No es el más óptimo pero fácil de entender.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.