Tôi đang cố gắng tìm một giải pháp cho vấn đề này. Tôi đang cố gắng xây dựng một lưới điều hướng theo định dạng của một lưới các đỉnh được khóa thành x, y thả các tọa độ theo hình vuông cho không gian 3D. Nhưng tôi đang gặp vấn đề khi cố gắng tìm ra cách để giải quyết nó.
Tôi đã thử nhìn vào thư viện Recast. Đây là một phương pháp khá mạnh mẽ, nhưng dường như nó chậm lại với bản đồ lớn hơn và không gian mở. Tôi cũng không biết làm thế nào họ tạo ra các đỉnh và cạnh cho không gian thế giới với bản đồ chiều cao.
Suy nghĩ tiếp theo của tôi là làm những gì Unreal Engine 3 đã từng làm.
https://udn.epicgames.com/Three/NavulationMeshReference.html
Đó là sử dụng các sóng để tạo lưới. Tôi không thể tìm ra làm thế nào để các kênh phát sóng dừng lại.
Vì vậy, ... lựa chọn tiếp theo của tôi là hộp, có thể là hộp đúc. Tạo một thể tích được chia nhỏ với kích thước có công suất là 2. Căn chỉnh hộp vào lưới và bắn các lăng kính hình chữ nhật xuống dưới như một tia. Nếu nó nằm trên một mảnh hình học là một phần của mặt đất và hình chữ nhật không bị cắt nhau, hãy để một hình vuông ở đó. Và tiếp tục xuống cho đến khi đạt đến giới hạn của âm lượng. Để kiểm tra xem các cạnh có cần được liên kết hay không, tôi cho rằng tôi có thể kiểm tra xem độ dốc giữa hai cặp đỉnh có nằm trong độ dốc có thể đi bộ hay không, hợp nhất chúng nếu điều này là đúng.
Vấn đề chính của tôi là ... điều này dường như không được tối ưu. Không cần nghĩ về nó, khi ước tính quá trình là O (N ^ 3) cho mức độ nhiều lớp. Mà có thể nhận được khá khó chịu.
Và bit cuối cùng là để tự động tạo các nhóm hình chữ nhật của các hình vuông này. Tôi không hoàn toàn chắc chắn làm thế nào để làm điều này. Việc thực hiện Unreal ngăn cách chúng bằng các sườn dốc. Tuy nhiên, tôi đang cố gắng giữ định dạng lưới. Vì vậy, điều đó không hoàn toàn cần thiết. Vấn đề vẫn còn là việc tạo ra các ô hình chữ nhật lớn để phân chia quá trình tìm đường thành cơ sở trên mỗi ô. Gạch không thể quá lớn, cũng không quá nhỏ.
Vì vậy, các câu hỏi là ...
Điều gì sẽ là một cách hiệu quả để tạo ra navmesh dầm này? Và điều gì sẽ là một cách tốt để tạo ra gạch?