Kiểm tra từng mặt phẳng riêng lẻ của AABB so với AABB khác. Nếu một mặt phẳng cắt AABB của đối tượng khác, nhưng mặt phẳng đối diện của nó thì không, bạn biết rằng mặt phẳng đó có liên quan đến vụ va chạm. Nếu cả hai mặt đối diện giao nhau với AABB khác, thì đối tượng hoàn toàn nằm trong trục kia dọc theo trục đó và hướng va chạm không rõ ràng / không xác định.
Nói một cách thực tế, đây là những kiểm tra tương tự được sử dụng để xác định xem AABB có va chạm hay không, vì vậy bạn sẽ có thể xác định khuôn mặt nào va chạm khi bạn thực hiện kiểm tra va chạm AABB với ít chi phí bổ sung.
Nhìn vào ví dụ, chúng ta thấy rằng:
- Mặt phẳng yz + của mặt cầu giao nhau với lăng kính, nhưng yz- thì không. Hình cầu yz + va chạm. Theo cách tương tự, các lăng kính của va chạm.
- Cả lăng kính xy- và xy + đều nằm trong hình cầu xy- và xy +. Lăng kính hoàn toàn nằm trong phạm vi hình cầu theo hướng z; va chạm là mơ hồ.
- Cả lăng kính xz- và xz + đều nằm trong hình cầu xz- và xy +. Lăng kính hoàn toàn nằm trong phạm vi theo hướng y; va chạm là mơ hồ.
Vì vậy, trong ví dụ này, chúng tôi phát hiện sự va chạm giữa hình cầu yz + và lăng kính yz-.
Các quy tắc của tất cả các khuôn mặt phải rõ ràng (yz + có (1,0,0), yz- has (-1,0,0), xz- has (0, -1,0) ...) Nói chung, nếu một hình tứ giác có các đỉnh (a, b, c, d) theo thứ tự ngược chiều kim đồng hồ, sau đó bạn có thể tính toán bình thường với (ba) .cross (cb)
Lưu ý rằng vấn đề này không có khả năng xảy ra nhiều va chạm: tùy thuộc vào vị trí, bạn có thể có va chạm ở cả ba trục. Tôi nghĩ rằng 'sự mơ hồ' này là khá cố hữu, và cách bạn giải quyết nó thực sự tùy thuộc vào bạn. Bạn chỉ có thể lấy trung bình của các quy tắc cá nhân. Bạn có thể tìm thấy diện tích giao nhau trong mỗi mặt phẳng, sau đó chọn mức bình thường tương ứng với diện tích lớn nhất hoặc sử dụng các khu vực để tính trọng số trung bình của quy tắc. Bạn có thể tìm thấy độ sâu xâm nhập dọc theo mỗi trục và chọn mức bình thường tương ứng với sự xâm nhập nông nhất (hoặc sâu nhất). Vân vân.