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