Tôi đã triển khai công cụ vật lý trò chơi 3D đơn giản. Tôi đã phát hiện va chạm khá tốt, bây giờ tôi đang cố gắng tìm ra phần phản ứng va chạm. Tôi đang sử dụng phương pháp dựa trên xung để tính vận tốc sau va chạm. Điều này hoạt động khá tốt, tuy nhiên, nó không hoàn toàn ngăn chặn các cơ thể tiếp tục thâm nhập. Vì vậy, tôi có thêm đoạn mã để giải quyết sự thâm nhập. Hiện tại, tôi chỉ di chuyển các cơ thể dọc theo tiếp xúc bình thường bằng một nửa độ sâu thâm nhập - cơ thể thứ nhất theo hướng tiếp xúc bình thường, cơ thể thứ hai theo hướng ngược lại.
Điều này là ok hầu hết thời gian, nhưng có một số tác dụng không mong muốn. Ví dụ, hãy tưởng tượng một hành lang hẹp và một vật thể di chuyển qua nó. Nếu đối tượng va vào một trong các bức tường của hành lang, độ phân giải thâm nhập sẽ di chuyển nó vào bức tường đối diện, sau đó trong khung tiếp theo quay lại bức tường đầu tiên và cứ thế. Hiệu ứng là đối tượng rung động rất nhanh giữa các bức tường không đẹp.
Vì vậy, câu hỏi của tôi là liệu có cách nào tốt hơn để giải quyết sự thâm nhập? Có lẽ không di chuyển các cơ thể, chỉ bằng cách nào đó điều chỉnh vận tốc của chúng (ngoài tính toán xung lực) để chúng ngừng di chuyển về phía nhau và sự xâm nhập sẽ tự giải quyết trong một vài khung hình tiếp theo. Tôi chỉ đoán ở đây. Có ý kiến gì không?