“ ระยะทางไกล” คืออะไรและมีประโยชน์อย่างไรกับการตรวจจับการชน


12

ฉันกำลังดูวิธีที่มีประสิทธิภาพสำหรับการตรวจจับการชนกันในฉากที่มีวัตถุทั้งแบบคงที่และไดนามิกเมื่อฉันเจอ "ฟิลด์ระยะทาง"

ฉันพยายามค้นหาและเข้าใจแนวคิดนี้ แต่ฉันสามารถค้นหาบทความที่เขียนด้วยภาษาที่ซับซ้อนมากเท่านั้น บางคนสามารถอธิบายด้วยคำพูดง่าย ๆ ว่าฟิลด์ระยะทางคืออะไรและสามารถใช้ในการตรวจจับการชนกันของข้อมูลได้อย่างไร


หมายถึงแผนที่ระยะทางใช่ไหม
LearnCocos2D

คำตอบ:


13

เขตข้อมูลระยะทาง ( หรือการแปลงระยะทางหรือแผนที่ระยะทาง ) เป็นโครงสร้าง gridded ที่แต่ละเซลล์ในตารางแสดงระยะทางที่สั้นที่สุดจากเซลล์นั้นไปยังเซลล์ที่มีคุณสมบัติอื่น ๆ ส่วนใหญ่มักจะ "ทรัพย์สินอื่น" เป็นเซลล์ประเภทเขตแดนเช่นผนังที่ผู้เล่นไม่สามารถผ่านหรือพื้นผิวของตาข่าย

ฟิลด์ระยะทางมีการบังคับใช้จำนวนมาก ตัวอย่างเช่นคุณอาจนึกภาพว่าพวกเขาจะใช้แนวทางการเคลื่อนที่อย่างไร (โดยการสร้างแผนที่ระยะทางไปยังวัตถุที่เป็นอันตรายหรือเป็นที่ต้องการและทำการตัดสินใจเกี่ยวกับการเคลื่อนไหวของน้ำหนัก)

อย่างไรก็ตามคุณถามถึงการชนกันโดยเฉพาะ ใช้เขตข้อมูลระยะทางที่จะดำเนินการตรวจสอบการชนระหว่างสองวัตถุที่เคลื่อนที่ได้อย่างรวดเร็วสามารถกลายเป็นค่อนข้างไม่มีประสิทธิภาพเช่นการสร้างเขตข้อมูลระยะทางที่สามารถกลายเป็นช้ามากเช่นขอบเขตของสนามที่เติบโตขึ้น (โดยเฉพาะอย่างยิ่งในแบบ 3 มิติแม้ว่าวิธีการสำหรับการปรับปรุงเวลาในการสร้างเป็นพื้นที่ของการวิจัย )

การชนกันของฟิลด์ระยะทางจึงใช้เพื่อตรวจจับการชนกันของวัตถุแบบไดนามิกเป็นหลัก บ่อยที่สุดที่ผมเคยเห็นนี้ทำเพื่อการตรวจสอบการปะทะกันของผ้า (หรือ deformable อื่น ๆ ) วัตถุอื่น ๆ ที่มีวัตถุแก้ไขในที่เกิดเหตุ

Crudely สามารถทำได้โดยใช้ฟิลด์ระยะทางที่ถูกเซ็นชื่อสำหรับวัตถุคงที่ซึ่งสัญญาณหนึ่ง (มักจะเป็นลบ) หมายถึงเซลล์ภายในตาข่ายและอีกสัญญาณหนึ่ง (เห็นได้ชัดมักจะเป็นบวก) หมายถึงเซลล์นอกตาข่าย อนุภาคของผ้าตาข่ายสามารถเปลี่ยนเป็นพื้นที่ท้องถิ่นของตาข่ายแบบคงที่และ "ก่อน" และ "หลังจาก" ตำแหน่งของอนุภาคในระหว่างขั้นตอนการจำลองผ้าที่กำหนดสามารถตรวจสอบกับสนามระยะทางเพื่อตรวจสอบว่ามีการเปลี่ยนแปลงสัญญาณ (และ จึงเกิดการชน) นี่คือวิธีการที่กล่าวถึงใน2003 นี้กระดาษในการจำลองผ้ายกตัวอย่างเช่น

โปรดทราบว่าฉันจะไม่แนะนำให้ใช้ฟิลด์ระยะทางเป็นวิธีตรวจจับการชนเพียงอย่างเดียวของคุณ พวกเขามีประสิทธิภาพพอสมควรสำหรับสิ่งที่พวกเขาทำได้ดี แต่พวกเขาไม่เก่งทุกอย่าง วิธีที่ดีที่สุดเพื่อให้ได้การตรวจจับการชนที่มีประสิทธิภาพมักใช้หลายวิธีตามลำดับชั้นพร้อมความแม่นยำที่เพิ่มขึ้นในขณะที่คุณสำรวจลำดับชั้น


5

เขตข้อมูลระยะทางคืออะไร

ในเรขาคณิตและคอมพิวเตอร์กราฟิกส์และยังใช้ในการประมวลผลภาพเขตข้อมูลระยะทาง (คำง่ายๆ) คือป้ายกำกับบนแต่ละเซลล์ (พิกเซลในการประมวลผลภาพ) ด้วยระยะห่างของวัตถุรูปเหลี่ยมที่ใกล้ที่สุดหรือพิกเซลที่มีคุณสมบัติพิเศษในการประมวลผลภาพ .

กล่าวอีกนัยหนึ่งคือป้ายกำกับสำหรับแต่ละเซลล์ที่มีค่าของวัตถุที่ใกล้ที่สุดพร้อมคุณสมบัติพิเศษที่กำหนดโดยแผนที่ วัตถุแตกต่างกันไปขึ้นอยู่กับแอปพลิเคชัน

ป้อนคำอธิบายรูปภาพที่นี่

ภาพด้านบนมีแผนที่ระยะทางสำหรับพิกเซลขอบเขต โปรดสังเกตว่าแต่ละพิกเซลมีระยะห่างจากขอบเขตพิกเซลที่ใกล้ที่สุด ระยะทางคำนวณโดยใช้ระยะทางแมนฮัตตัน

มีวิธีการคำนวณระยะทางที่แตกต่างกันวิธีการทั่วไป ได้แก่ :

มันใช้งานอย่างไรในการตรวจจับการชนกัน?

ด้วยการบำรุงรักษาแผนที่ระยะทางสำหรับวัตถุในฉากคุณสามารถตรวจสอบว่าวัตถุสองชิ้นกำลังชนกันตามระยะทางหรือไม่ น่าเสียดายที่การบำรุงรักษาแผนที่ดังกล่าวมีราคาแพง และสิ่งนี้มักใช้ในวัตถุที่ตัดกันตัวเองเช่นการจำลองด้วยผ้าแผนที่ทางไกลสามารถรักษาและปรับปรุงได้อย่างมีประสิทธิภาพมากขึ้นเนื่องจากลักษณะของวัตถุ


เหตุใดจึงสามารถทำได้ "มีประสิทธิภาพมากขึ้น" ในวัตถุที่ตัดกันด้วยตนเอง?
lucidbrot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.