4
เราจะสร้าง Navigation Grid สำหรับโลก 3 มิติได้อย่างไร
ฉันพยายามค้นหาวิธีแก้ไขปัญหานี้ ฉันกำลังพยายามสร้างตาข่ายนำทางในรูปแบบของตารางของจุดยอดที่ล็อค x, y พิกัดพื้นในรูปสี่เหลี่ยมสำหรับพื้นที่ 3D แต่ฉันมีปัญหาในการพยายามหาวิธีที่จะไปเกี่ยวกับเรื่องนี้ ฉันลองดูที่ห้องสมุด Recast มันเป็นวิธีที่ค่อนข้างแข็งแกร่ง แต่เห็นได้ชัดว่าช้าลงด้วยแผนที่ขนาดใหญ่และพื้นที่เปิดโล่ง ฉันยังไม่รู้ว่าพวกมันสร้างจุดยอดและขอบสำหรับพื้นที่โลกด้วยแผนที่ความสูงได้อย่างไร ความคิดต่อไปของฉันคือการทำสิ่งที่ Unreal Engine 3 เคยทำ https://udn.epicgames.com/Three/NavigationMeshReference.html ซึ่งก็คือการใช้ raycasts เพื่อสร้างตาข่าย ฉันไม่สามารถหาวิธีที่จะให้ raycasts หยุด ดังนั้น ... ตัวเลือกถัดไปของฉันคือกล่อง สร้างปริมาตรย่อยที่มีขนาดเท่ากับกำลังของ 2 จัดแนวกล่องให้เข้ากับกริดและยิงปริซึมสี่เหลี่ยมลงด้านล่างเป็นรังสี ถ้ามันตกลงบนชิ้นส่วนของรูปทรงเรขาคณิตซึ่งเป็นส่วนหนึ่งของพื้นดินและสี่เหลี่ยมผืนผ้าไม่ได้ถูกตัดกันให้ปล่อยให้เป็นรูปสี่เหลี่ยมจัตุรัส และดำเนินการต่อไปจนกระทั่งถึงระดับเสียง ในการตรวจสอบว่าจำเป็นต้องทำการเชื่อมโยงขอบหรือไม่ฉันคิดว่าฉันสามารถตรวจสอบเพื่อดูว่าความชันระหว่างจุดยอดสองคู่อยู่ในความลาดชันที่เดินได้หรือไม่หากรวมให้เป็นจริง ปัญหาหลักของฉันคือ ... นี่ดูเหมือนจะไม่เหมาะสมที่สุด โดยไม่ต้องคิดเลยเมื่อกระบวนการประมาณ O (N ^ 3) สำหรับระดับหลายชั้น ซึ่งจะได้รับที่น่ารังเกียจสวย และบิตสุดท้ายสำหรับสร้างกลุ่มสี่เหลี่ยมของสี่เหลี่ยมเหล่านี้โดยอัตโนมัติ ฉันไม่แน่ใจทั้งหมดว่าจะทำอย่างไร การใช้งานที่ไม่จริงแยกพวกเขาด้วยความลาดชัน อย่างไรก็ตามฉันพยายามที่จะรักษารูปแบบกริด นั่นไม่จำเป็นเลย ปัญหายังคงอยู่ในการสร้างแผ่นสี่เหลี่ยมขนาดใหญ่เพื่อแบ่งเส้นทางการค้นหาเป็นแบบเรียงต่อแผ่น กระเบื้องต้องไม่ใหญ่เกินไปหรือเล็กเกินไป …