Ich versuche eine Lösung für dieses Problem zu finden. Ich versuche, ein Navigationsnetz im Format eines Gitters von Eckpunkten zu erstellen, die an x, y-Bodenkoordinaten in Form von Quadraten für den 3D-Raum gebunden sind. Aber ich habe Probleme, einen Weg zu finden, um das zu erreichen.
Ich habe versucht, in die Recast-Bibliothek zu schauen. Es ist eine ziemlich robuste Methode, aber sie verlangsamt sich anscheinend mit größeren Karten und offenem Raum. Ich weiß auch nicht, wie sie mit der Höhenkarte Eckpunkte und Kanten für den Weltraum erzeugen.
Mein nächster Gedanke war, das zu tun, was Unreal Engine 3 früher getan hat.
https://udn.epicgames.com/Three/NavigationMeshReference.html
Welches Raycasts verwenden sollte, um das Netz zu erzeugen. Ich konnte nicht herausfinden, wie ich die Raycasts stoppen sollte.
Also ... meine nächste Option war Box, möglicherweise eine Box-Besetzung. Erstellen Sie ein unterteiltes Volumen mit einer Größe von 2. Richten Sie die Box am Raster aus und schießen Sie rechteckige Prismen als Strahl nach unten. Wenn es auf einem Stück Geometrie landet, das Teil des Bodens ist und das Rechteck nicht geschnitten wird, lassen Sie dort ein Quadrat. Und weiter nach unten, bis die Grenzen des Volumens erreicht sind. Um zu überprüfen, ob Kanten verknüpft werden müssen, könnte ich prüfen, ob die Steigung zwischen zwei Scheitelpunktpaaren innerhalb der begehbaren Steigung liegt, und sie zusammenführen, wenn dies zutrifft.
Meine Hauptprobleme sind ... das scheint nicht sehr optimal zu sein. Ohne darüber nachzudenken, ist der Prozess bei der Schätzung O (N ^ 3) für eine mehrschichtige Ebene. Was ziemlich böse werden kann.
Und das letzte Bit dient zum automatischen Erstellen rechteckiger Gruppen dieser Quadrate. Ich bin mir nicht ganz sicher, wie ich das machen soll. Die unwirkliche Implementierung trennt sie durch Steigungen. Ich versuche jedoch, das Rasterformat beizubehalten. Das ist also nicht unbedingt notwendig. Das Problem besteht weiterhin darin, große rechteckige Kacheln zu erstellen, um den Pfadfindungsprozess in eine Kachelbasis aufzuteilen. Die Fliesen dürfen weder zu groß noch zu klein sein.
Die Fragen sind also ...
Was wäre ein effizienter Weg, um dieses umgürtete Navmesh zu erzeugen? Und was wäre ein guter Weg, um die Fliesen zu erstellen?