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