Fix crash when simulating a spring joint between two dynamic bodies.
Fix kinematic bodies not being affected by gravity after being switched back to dynamic.
Fix regression on contact force reporting from contact force events.
Fix kinematic character controller getting stuck against vertical walls.
Fix joint limits/motors occasionally not being applied properly when one of the attached
rigid-bodies is fixed.
Fix an issue where contacts would be completely ignored between two convex shapes.
Added
Many stability improvements were added as part of this release. To see illustrations of some of these
changes, see #625.
Add RigidBody::predict_position_using_velocity to predict the next position of the rigid-body
based only on its current velocity.
Add Collider::copy_from to copy most collider attributes to an existing collider.
Add RigidBody::copy_from to copy most rigid-body attributes to an existing rigid-body.
Add the BroadPhase trait and expect an implementor of this trait as input to PhysicsPipeline::step.
Implement a 2D block-solver as well as warmstarting. Significantly improves stacking capabilities. Generally reduces
the "pop" effect that can happen due to penetration corrections.
Add RigidBodyBuilder::soft_ccd_prediction and RigidBody::set_soft_ccd_prediction to enable soft-ccd: a form of
CCD based on predictive contacts. This is helpful for objects moving moderately fast. This form of CCD is generally
cheaper than the normal (time-dropping) CCD implemented so far. It is possible to combine both soft-ccd and
time-dropping ccd.
Add a ColliderBuilder::contact_skin, Collider::set_contact_skin, and Collider::contact_skin. This forces the
solver te maintain a gap between colliders with non-zero contact skin, as if they had a slight margin around them.
This helps performance and stability for thin objects (like triangle meshes).
Internal edges were reworked to avoid dropping contacts that would help with stability, and improve stability of
collisions between two triangle meshes. The TriMeshFlags::FIX_INTERNAL_EDGES and
HeightFieldFlags::FIX_INTERNAL_EDGES flags were added to enable internal edges handling.
Add IntegrationParameters::length_units to automatically adjust internal thresholds when the user relies on custom
length units (e.g. pixels in 2D).
Modified
Many shape-casting related functions/structs were renamed. Check out the CHANGELOG for parry 0.15.0 for
additional details.
Renamed BroadPhase to BroadPhaseMultiSap. The BroadPhase is now a trait that can be
implemented for providing a custom broad-phase to rapier. Equivalently, the DefaultBroadPhase type
alias can be used in place of BroadPhaseMultiSap.
The kinematic character controller autostepping is now disabled by default.
Add KinematicCharacterController::normal_nudge_factor used to help getting the character unstuck
due to rounding errors.
Rename TOI to ShapeCastHit.
Rename many fields from toi to time_of_impact.
The QueryPipeline::cast_shape method now takes a ShapeCastOptions instead of the max_toi
and stop_at_penetration parameters. This allows a couple of extra configurations, including the
ability to have the shape-cast target a specific distance instead of actual shape overlap.
Fix
Added
Many stability improvements were added as part of this release. To see illustrations of some of these changes, see #625.
RigidBody::predict_position_using_velocity
to predict the next position of the rigid-body based only on its current velocity.Collider::copy_from
to copy most collider attributes to an existing collider.RigidBody::copy_from
to copy most rigid-body attributes to an existing rigid-body.BroadPhase
trait and expect an implementor of this trait as input toPhysicsPipeline::step
.RigidBodyBuilder::soft_ccd_prediction
andRigidBody::set_soft_ccd_prediction
to enablesoft-ccd
: a form of CCD based on predictive contacts. This is helpful for objects moving moderately fast. This form of CCD is generally cheaper than the normal (time-dropping) CCD implemented so far. It is possible to combine both soft-ccd and time-dropping ccd.ColliderBuilder::contact_skin
,Collider::set_contact_skin
, andCollider::contact_skin
. This forces the solver te maintain a gap between colliders with non-zero contact skin, as if they had a slight margin around them. This helps performance and stability for thin objects (like triangle meshes).TriMeshFlags::FIX_INTERNAL_EDGES
andHeightFieldFlags::FIX_INTERNAL_EDGES
flags were added to enable internal edges handling.IntegrationParameters::length_units
to automatically adjust internal thresholds when the user relies on custom length units (e.g. pixels in 2D).Modified
Many shape-casting related functions/structs were renamed. Check out the CHANGELOG for parry 0.15.0 for additional details.
BroadPhase
toBroadPhaseMultiSap
. TheBroadPhase
is now a trait that can be implemented for providing a custom broad-phase to rapier. Equivalently, theDefaultBroadPhase
type alias can be used in place ofBroadPhaseMultiSap
.KinematicCharacterController::normal_nudge_factor
used to help getting the character unstuck due to rounding errors.TOI
toShapeCastHit
.toi
totime_of_impact
.QueryPipeline::cast_shape
method now takes aShapeCastOptions
instead of themax_toi
andstop_at_penetration
parameters. This allows a couple of extra configurations, including the ability to have the shape-cast target a specific distance instead of actual shape overlap.