J'essaie de trouver une solution à ce problème. J'essaie de construire un maillage de navigation au format d'une grille de sommets verrouillés sur des coordonnées au sol x, y en forme de carrés pour un espace 3D. Mais j'ai du mal à essayer de trouver une façon de procéder.
J'ai essayé de regarder dans la bibliothèque de refonte. C'est une méthode assez robuste, mais elle ralentit apparemment avec des cartes plus grandes et un espace ouvert. Je ne sais pas non plus comment ils génèrent des sommets et des arêtes pour l'espace mondial avec la carte des hauteurs.
Ma prochaine pensée était de faire ce qu'Unreal Engine 3 faisait.
https://udn.epicgames.com/Three/NavigationMeshReference.html
Ce qui était d'utiliser des raycasts pour générer le maillage. Je n'arrivais pas à comprendre comment arrêter les diffusions.
Alors ... ma prochaine option était la boîte, peut-être une boîte moulée. Créez un volume subdivisé avec une taille qui est une puissance de 2. Alignez la boîte sur la grille et tirez des prismes rectangulaires vers le bas comme un rayon. S'il atterrit sur un morceau de géométrie qui fait partie du sol et que le rectangle n'est pas intersecté, laissez-y un carré. Et continuez jusqu'à ce que les limites du volume soient atteintes. Pour vérifier si les arêtes doivent être liées, je suppose que je pourrais vérifier pour voir si la pente entre deux paires de sommets est dans la pente praticable, les fusionner si c'est vrai.
Mes principaux problèmes sont ... cela ne semble pas être très optimal. Sans y penser, à l'estimation, le processus est O (N ^ 3) pour un niveau multicouche. Ce qui peut devenir assez méchant.
Et le dernier bit est pour créer automatiquement des groupes rectangulaires de ces carrés. Je ne sais pas trop comment faire ça. L'implémentation Unreal les sépare par pentes. Cependant, j'essaie de garder le format de la grille. Ce n'est donc pas tout à fait nécessaire. Le problème demeure sur la création de grandes tuiles rectangulaires pour diviser le processus de recherche de chemin en une base par tuile. Les tuiles ne peuvent être ni trop grandes, ni trop petites.
Les questions sont donc ...
Quelle serait une manière efficace de générer ce navmesh ceinturé? Et quelle serait une bonne façon de créer les tuiles?