Tôi có một công cụ vật lý 2D cơ bản đang chạy. Nó khá giống một động cơ hạt, chỉ sử dụng các hình dạng cơ bản như AABB và vòng tròn, do đó không thể quay được. Tôi đã triển khai CCD có thể cung cấp TOI chính xác cho hai đối tượng chuyển động nhanh và mọi thứ đều hoạt động trơn tru.
Vấn đề của tôi bây giờ là tôi không thể tìm ra cách xác định liệu hai vật thể chuyển động nhanh thậm chí có nên được kiểm tra với nhau ngay từ đầu không. Tôi đang sử dụng một cây quad để phân vùng không gian và cho mỗi đối tượng chuyển động nhanh, tôi kiểm tra nó dựa vào các đối tượng trong mỗi ô mà nó đi qua. Điều này hoạt động tốt để xác định va chạm với hình học tĩnh, nhưng điều đó có nghĩa là bất kỳ đối tượng chuyển động nhanh nào khác có thể va chạm với nó, nhưng không có trong bất kỳ ô nào được kiểm tra, sẽ không bao giờ được xem xét.
Giải pháp duy nhất cho vấn đề này tôi có thể nghĩ đến là hoặc có các ô đủ lớn và bắt chéo ngón tay là đủ, hoặc thực hiện một số loại thuật toán vũ phu. Có một cách thích hợp để đối phó với điều này, có thể ai đó đã giải quyết vấn đề này một cách hiệu quả. Hoặc có thể có một cách tốt hơn để phân vùng không gian chiếm tài khoản này?
Đây là một sơ đồ:
"Khu vực ảnh hưởng" của đối tượng A và B, chúng nên được kiểm tra với nhau. Nhưng với cách tôi hiện đang kiểm tra va chạm không tính đến điều này. Một lần nữa, tôi có thể nghĩ ra một vài giải pháp cho vấn đề này như thực sự kiểm tra xem đường đi của các đối tượng có vượt qua một khi vận tốc của chúng cao hơn x, hoặc một cái gì đó, nhưng cảm giác đó giống như một vụ hack và đó là một mớ hỗn độn để thử và thực hiện.