นี่คือเกมแฟลชที่มีมุมมองภาพสามมิติ ฉันจำเป็นต้องรู้วิธีการเรียงลำดับวัตถุเพื่อให้ไม่จำเป็นต้องตรวจสอบบัฟเฟอร์ z เมื่อวาด สิ่งนี้อาจดูง่าย แต่มีข้อ จำกัด อื่นฉากหนึ่งอาจมีวัตถุมากกว่า 10,000 รายการดังนั้นอัลกอริทึมจะต้องทำงานในเวลาน้อยกว่า O (n ^ 2) วัตถุทั้งหมดเป็นกล่องสี่เหลี่ยมและวัตถุ 3-4 ชิ้นเคลื่อนที่ในที่เกิดเหตุ วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?
UPDATE
ในแต่ละกระเบื้องมีเพียงวัตถุ (ฉันหมายถึงวัตถุไม่สามารถซ้อนทับกัน) และเราเข้าถึงทั้งแผนที่วัตถุและวัตถุมีตำแหน่งของตัวเอง
UPDATE2
ดูตัวเลขเหล่านี้:
ในวัตถุแรกสีน้ำเงินแรกควรวาดแล้วสีเขียวแล้วสีแดง ในขณะที่ในวินาทีที่คุณต้องวาดในลำดับย้อนกลับ คุณต้องวาดสีแดงก่อนแล้วจึงเป็นวัตถุสีเขียวและสีน้ำเงินในที่สุด อย่างที่คุณเห็นว่าไม่มีความแตกต่างในตำแหน่งของวัตถุสีน้ำเงินและสีแดงทั้งคู่มีระยะห่างที่แตกต่างจากกล้องและอื่น ๆ แต่เนื่องจากตำแหน่งสัมพัทธ์เป็นกล่องสีเขียวคุณต้องเปลี่ยนลำดับการวาดระหว่างสองภาพ นั่นคือสิ่งที่ทำให้ปัญหานี้เป็นระเบียบ
หมายเหตุ: เนื่องจากวัตถุทั้งหมดเป็นปริซึมสี่เหลี่ยมจึงสามารถพิสูจน์ได้ทางคณิตศาสตร์ว่ามีอย่างน้อยหนึ่งคำสั่งวาดเพื่อตอบสนองความต้องการของปัญหา