ฉันอ่าน infos เกี่ยวกับการจำลองทางฟิสิกส์และพบวิธีแก้ปัญหาที่เป็นไปได้ มันทำงานได้โดยแบ่งฟิสิกส์แต่ละขั้นเป็นสามขั้นตอน:
1. ขั้นตอนก่อนหน้า:
แต่ละขั้นตอนฟิสิกส์หน้าต่างสร้างการแปลงสี่สองสำหรับแต่ละด้านของการเชื่อมต่อ:
- การแปลงอินพุตที่แปลงตำแหน่งของวัตถุความเร็ว (และขนาดและน้ำหนักที่เป็นไปได้) ลงในระบบพิกัดปลายทางและ
- การแปลงผลลัพธ์ที่แปลงกำลังให้กลับเข้าสู่ระบบดั้งเดิมของวัตถุ
(หน้าต่างแบบคงที่จะต้องทำสิ่งนี้เพียงครั้งเดียวเท่านั้น)
นอกจากนี้วัตถุในแต่ละระบบพิกัดจะแบ่งออกเป็นสามกลุ่ม:
การจัดกลุ่มฟิสิกส์ http://content.wuala.com/contents/Tamschi/Stack%20Exchange/WindowGrouping.png
วัตถุที่อยู่ด้านหน้าของหน้าต่าง (สีเขียว)
วัตถุจะถูกนับรวมในกลุ่มนี้ด้วยหากมีการตัดระนาบหน้าต่างหรือมีแนวโน้มว่าจะข้ามวัตถุจากด้านหลังหน้าต่าง (ไม่แสดง)
วัตถุที่ตัดหน้าต่างหรือมีแนวโน้มว่าจะตัดกันในขั้นตอนฟิสิกส์ (สีส้ม)
วัตถุที่อยู่ด้านหลังหน้าต่าง (สีน้ำเงิน) หากวัตถุบินไปทางด้านหลังของหน้าต่างวัตถุนั้นจะยังคงถูกทำเครื่องหมายเป็นสมาชิกของกลุ่มที่สาม
การจัดกลุ่มสามารถทำให้ง่ายขึ้นถ้าหน้าต่างอยู่ที่ขอบของการจำลอง
2. ขั้นตอนหลัก:
ส่วนใหญ่จะคำนวณทางฟิสิกส์ตามปกติโดยมีข้อยกเว้นเล็กน้อย:
วัตถุจากกลุ่มที่สองไม่เคยชนกับวัตถุจากกลุ่มที่สามและในทางกลับกัน
การแปลงอินพุตของหน้าต่างถูกใช้กับวัตถุจากกลุ่มที่สองและผลลัพธ์จะถูกประเมินเทียบกับวัตถุด้านหน้าและตัดกันจากระบบปลายทาง แรงที่เกิดขึ้นจะถูกแปลงโดยใช้การแปลงผลลัพธ์และนำไปใช้กับวัตถุดั้งเดิม
(หากวัตถุถูกกระทบระหว่างการคำนวณวัตถุนั้นจะต้องถูกจัดกลุ่มใหม่!)
3. ขั้นตอนหลัง:
หากวัตถุจากกลุ่มที่สองข้ามหน้าต่างวัตถุนั้นจะถูกย้ายไปยังระบบปลายทางโดยใช้การแปลงอินพุต
ความคิดเพิ่มเติม:
หากการแปลงถูกเก็บรักษาไว้หลังจากการคำนวณทางฟิสิกส์พวกมันสามารถใช้เพื่อเร่งการเรนเดอร์และเพื่อการคำนวณ AI ที่ง่ายขึ้น การจัดกลุ่มสามารถใช้เพื่อลบคลิปเครื่องบินออกจากกระบวนการแสดงผล
ข้อเสียของการแก้ปัญหานี้คือต้องเพิ่มหน้าต่างเข้าไปในเครื่องมือฟิสิกส์โดยตรง