1
ฉันจะสร้างเขตข้อมูลระยะทางที่ลงนาม (2D) แบบเรียลไทม์ได้อย่างรวดเร็วได้อย่างไร
ในคำถามก่อนหน้านี้มีข้อเสนอแนะว่าฟิลด์ระยะทางที่ลงนามแล้วสามารถทำการคำนวณล่วงหน้าโหลดตอนรันไทม์แล้วใช้จากนั้น ด้วยเหตุผลที่ฉันจะอธิบายในตอนท้ายของคำถามนี้ (สำหรับผู้ที่สนใจ) ฉันต้องสร้างฟิลด์ระยะทางแบบเรียลไทม์ มีเอกสารบางส่วนสำหรับวิธีการที่แตกต่างกันซึ่งควรจะทำงานได้ในสภาพแวดล้อมแบบเรียลไทม์เช่นวิธีการแปลง Chamfer distance และ Voronoi ไดอะแกรมการประมาณตามการแปลง (ตามที่เสนอในงานนำเสนอโดย Pixeljunk Shooter dev guy ) แต่ ฉัน (และอาจเป็นที่คาดเดาของคนอื่น ๆ ) มีช่วงเวลาที่ยากมากจริง ๆ ทำให้พวกเขาใช้เพราะพวกเขามักจะยาวส่วนใหญ่ป่องกับคณิตศาสตร์และอัลกอริทึมไม่มากในการอธิบายของพวกเขา อัลกอริทึมใดที่คุณจะแนะนำสำหรับการสร้างเขตข้อมูลระยะไกลแบบเรียลไทม์ (อยู่ในเกณฑ์ดีของ GPU) โดยเฉพาะอย่างยิ่งเมื่อพิจารณาถึงคุณภาพของเขตข้อมูลระยะทาง เนื่องจากฉันกำลังมองหาคำอธิบาย / บทแนะนำที่เกิดขึ้นจริงซึ่งตรงข้ามกับลิงก์ไปยังกระดาษหรือสไลด์อื่นคำถามนี้จะได้รับรางวัลเมื่อมันมีสิทธิ์สำหรับหนึ่ง :-) นี่คือเหตุผลที่ฉันต้องทำในเวลาจริง: หากคุณต้องคำนวณ SDF เหล่านี้ล่วงหน้าสำหรับสภาพแวดล้อมแบบ 2D ขนาดใหญ่ (คิดว่าเป็นแผนที่แบบ Terraria ขนาดใหญ่) นี่หมายความว่าคุณยอมรับค่าใช้จ่ายที่ค่อนข้างใหญ่ในพื้นที่เก็บข้อมูล (และเวลาในการสร้างแผนที่) อัลกอริทึมที่ซับซ้อนซึ่งเร็วพอสำหรับการสร้าง SDF แบบเรียลไทม์ ตัวอย่างเช่นแผนที่ขนาดค่อนข้างเล็กที่มี 1,000 * 256 …