Commit Graph

30 Commits

Author SHA1 Message Date
Terence
94993901cd wip 2021-06-01 20:41:38 -04:00
Crozet Sébastien
c32da78f2a Split rigid-bodies and colliders into multiple components 2021-04-26 18:00:50 +02:00
Crozet Sébastien
7306821c46 Attenuate the warmstart impulse for CCD contacts.
CCD contacts result in very strong, instantaneous, impulses. So it is preferable to attenuate their contribution to subsequent timesteps to avoid overshooting.
2021-03-28 11:27:07 +02:00
Crozet Sébastien
8dab63bda1 Fix regression in the WASM version of the velocity solver. 2021-03-08 15:14:54 +01:00
Crozet Sébastien
152ada67ec Fix regression causing invalid contacts to be solved. 2021-03-07 17:34:54 +01:00
Crozet Sébastien
0e4393ba9e Reduce code duplication between the SIMD and non-SIMD contact solve and warmstart. 2021-03-07 17:15:32 +01:00
Crozet Sébastien
4cb1f5c692 Fix warning when targetting wasm. 2021-03-07 11:55:10 +01:00
Crozet Sébastien
bed47a82e7 Projection friction impulses on an implicit cone instead of a pyramidal approximation. 2021-03-07 11:44:19 +01:00
Emil Ernerfeldt
ede4f0f770 cleanup 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
4162aed2a0 Add params.velocity_based_erp_inv_dt() helper 2021-02-26 11:06:29 +01:00
Emil Ernerfeldt
21247a1236 Add restorative impulse in velocity solver 2021-02-26 11:06:29 +01:00
Crozet Sébastien
96ecb877e2 Implement dominance. 2021-02-24 13:26:51 +01:00
Crozet Sébastien
3cc2738e5f Fix warnings in the WASM build. 2021-02-23 16:47:48 +01:00
Crozet Sébastien
3fdb4cd6d3 Properly take the tangent_velocity into account in the velocity solver. 2021-02-23 15:47:24 +01:00
Crozet Sébastien
ad5c10672e Use contact ids instead of contact reordering in order to identify the impulse writeback location. 2021-02-22 17:52:03 +01:00
Emil Ernerfeldt
5e7eedc3fd Always apply the predictive contact term, even for bouncing contacts 2021-02-18 17:58:17 +01:00
Emil Ernerfeldt
f9e3d382d2 New contacts are bouncy, old are resting
If a contact is new (previous impluse = 0), then we treat it as bouncy (respecting restitution).
If the contact is old we treat it as resting.

Exceptions for restitutions <=0 and >= 1.
2021-02-18 15:41:46 +01:00
Crozet Sébastien
e45e5f109c Fix WASM build. 2021-01-23 13:11:00 +01:00
Crozet Sébastien
cf52e01308 Merge branch 'master' into split_geom
# Conflicts:
#	examples2d/sensor2.rs
#	examples3d/sensor3.rs
#	src/dynamics/integration_parameters.rs
#	src/dynamics/solver/parallel_island_solver.rs
#	src/dynamics/solver/velocity_constraint.rs
#	src/dynamics/solver/velocity_ground_constraint.rs
#	src_testbed/nphysics_backend.rs
#	src_testbed/physx_backend.rs
#	src_testbed/testbed.rs
2021-01-22 16:10:24 +01:00
Emil Ernerfeldt
95c6199a9a Remove IntegrationParameters::inv_dt and make dt pub 2021-01-22 13:32:18 +01:00
Crozet Sébastien
8f330b2a00 Rotation locking: apply filter only to the world inertia properties to fix the multi-collider case. 2021-01-21 14:58:40 +01:00
Crozet Sébastien
c28b14d31c Refactor the parallel solver code the same way we did with the non-parallel solver. 2021-01-04 17:59:56 +01:00
Crozet Sébastien
aa61fe65e3 Add support of 64-bits reals. 2021-01-04 15:14:25 +01:00
Crozet Sébastien
967145a949 Perform contact sorting in the narrow-phase directly. 2020-12-31 11:16:03 +01:00
Crozet Sébastien
43628c8846 Try using solver contacts again, but in a more cache-coherent way. 2020-12-30 17:30:07 +01:00
Crozet Sébastien
9bf1321f8f Outsource the contact manifold, SAT, and some shapes. 2020-12-29 11:31:00 +01:00
Crozet Sébastien
502be0245c Add restitution. 2020-11-03 11:22:30 +01:00
Sébastien Crozet
9622827dc6 Fix constraints resolution with non-identity relative collider position. 2020-09-01 14:02:59 +02:00
Sébastien Crozet
c286f44c4e Constraint solver: properly take non-zero center of masses into account. 2020-08-31 19:05:14 +02:00
Sébastien Crozet
754a48b7ff First public release of Rapier. 2020-08-25 22:10:25 +02:00