ฉันพยายามหาวิธีใช้ต้นไม้ KD
ในหน้า 322 ของ "การตรวจจับการชนกันแบบเรียลไทม์" โดยEricson
ส่วนข้อความรวมอยู่ด้านล่างในกรณีที่หน้าตัวอย่างของหนังสือ Google ไม่อนุญาตให้คุณเห็นเวลาที่คุณคลิกที่ลิงก์
ส่วนที่เกี่ยวข้อง:
แนวคิดพื้นฐานที่อยู่เบื้องหลังการตัดกันของเรย์หรือส่วนของเส้นกำกับที่มีต้นไม้ kd นั้นตรงไปตรงมา บรรทัดถูกตัดกับระนาบการแยกของโหนดและคำนวณค่า t ของการตัดกัน หาก t อยู่ภายในช่วงของบรรทัด 0 <= t <= tmax เส้นเลาะเลียบไปตามระนาบและลูกทั้งสองของต้นไม้ลงมาซ้ำ ๆ ถ้าไม่เพียง แต่ด้านที่มีต้นกำเนิดของกลุ่มนั้นจะถูกเยี่ยมชมซ้ำ
ดังนั้นนี่คือสิ่งที่ฉันมี: ( เปิดภาพในแท็บใหม่หากคุณไม่เห็นตัวอักษร)
ต้นไม้ตรรกะ
ที่นี่แสงสีส้มกำลังผ่านฉาก 3 มิติ x แทนจุดตัดด้วยระนาบ จากซ้ายสุดฮิต:
- ด้านหน้าของลูกบาศก์ล้อมรอบฉาก
- ระนาบการแยก (1)
- ระนาบการแยก (2.2)
- ด้านขวาของลูกบาศก์ล้อมรอบฉาก
แต่นี่คือสิ่งที่จะเกิดขึ้นอย่างไร้เดียงสาตามคำอธิบายพื้นฐานของ Ericson ด้านบน:
- ทดสอบกับเครื่องบินแยก (1) เรย์ชนระนาบแยก (1) ดังนั้นลูกซ้ายและขวาของระนาบแยก (1) จึงรวมอยู่ในการทดสอบถัดไป
- ทดสอบกับเครื่องบินแยก (2.1) เรย์ยิงเครื่องบินลำนั้นออกไป (ไปทางขวา) ดังนั้นเด็กทั้งสองจึงรวมอยู่ในการทดสอบระดับถัดไป (สิ่งนี้ตอบโต้ได้ง่าย - ไม่ควรรวมเฉพาะโหนดด้านล่างในการทดสอบครั้งต่อไป)
บางคนสามารถอธิบายสิ่งที่เกิดขึ้นเมื่อแสงสีส้มผ่านฉากได้อย่างถูกต้อง?