Vật lý cơ thể cứng nhắc thực sự khá đơn giản trong khái niệm - đó là, các hành vi mà một động cơ đang cố gắng tạo ra không quá phức tạp. Đó có lẽ là lý do tại sao các thư viện bạn nhìn có vẻ khá đơn giản với bạn.
Thủ thuật là tạo ra một chiếc sim mạnh mẽ , ổn định và nhanh chóng , ngay cả khi có những thứ như lỗi dấu phẩy động và tốc độ khung hình thấp, biến đổi, khá khó khăn và thường bao gồm rất nhiều điều chỉnh và thay đổi. Làm phức tạp thêm vấn đề là thực tế là rất nhiều người cực kỳ thông minh đã nỗ lực anh hùng để tìm ra giải pháp tốt hơn, và đã đưa ra các thuật toán đẹp và mạnh mẽ nhưng khó hiểu đã mang lại cho lĩnh vực này danh tiếng về ma thuật đen.
Nói chung, một công cụ vật lý sẽ liên quan đến ba điều (thứ tự mà chúng thực hiện chúng trong vòng lặp bên trong khác nhau):
- Tích hợp (xấp xỉ các phương trình chuyển động của Newton),
- Phát hiện va chạm và
- Giải quyết ràng buộc (cập nhật vị trí và vận tốc để đáp ứng không xâm nhập hoặc các ràng buộc khác do người dùng chỉ định.)
Đối với hầu hết trong số này, có cả thuật toán đơn giản nhưng không chính xác và thuật toán phức tạp nhưng chính xác hơn. Để giúp bạn bắt đầu:
- Để tích hợp, hầu hết mọi người sử dụng Symplectic Euler hoặc Verlet (thực sự tương đương. Bạn có thể đọc về tích hợp số nếu bạn thích, nhưng có vẻ như sự đồng thuận là các phương pháp đặt hàng đầu tiên rẻ tiền là tốt.
- Bạn có thể tìm thấy tất cả các tham chiếu phát hiện va chạm mà bạn có thể muốn trên trang tài nguyên Kết xuất thời gian thực .
- Để giải quyết các ràng buộc, phương pháp của các xung liên tiếp là rất dễ hiểu. Erin Catto (tác giả của Box2D) thuyết trình tại GDC hàng năm - các slide được liên kết từ trang chính của Box2D . Các slide năm 2006 bao gồm các xung liên tiếp khá tốt. Bạn cũng có thể xem xét các phương thức fancier như Featherstone hoặc Gauss-Seidel dự kiến.
Có một giới thiệu tuyệt vời về các phương pháp đơn giản và những gì có thể sai trong các chương đầu của cuốn sách vừa xuất bản Trò chơi Vật lý Ngọc trai.