Release v0.19.0
This commit is contained in:
committed by
Sébastien Crozet
parent
27f627902e
commit
af1ac9baa2
20
CHANGELOG.md
20
CHANGELOG.md
@@ -1,4 +1,4 @@
|
|||||||
## Unreleased
|
## v0.19.0 (05 May 2024)
|
||||||
|
|
||||||
### Fix
|
### Fix
|
||||||
|
|
||||||
@@ -8,14 +8,32 @@
|
|||||||
- Fix kinematic character controller getting stuck against vertical walls.
|
- Fix kinematic character controller getting stuck against vertical walls.
|
||||||
- Fix joint limits/motors occasionally not being applied properly when one of the attached
|
- Fix joint limits/motors occasionally not being applied properly when one of the attached
|
||||||
rigid-bodies is fixed.
|
rigid-bodies is fixed.
|
||||||
|
- Fix an issue where contacts would be completely ignored between two convex shapes.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
**Many stability improvements were added as part of this release. To see illustrations of some of these
|
||||||
|
changes, see [#625](https://github.com/dimforge/rapier/pull/625).**
|
||||||
|
|
||||||
- Add `RigidBody::predict_position_using_velocity` to predict the next position of the rigid-body
|
- Add `RigidBody::predict_position_using_velocity` to predict the next position of the rigid-body
|
||||||
based only on its current velocity.
|
based only on its current velocity.
|
||||||
- Add `Collider::copy_from` to copy most collider attributes to an existing collider.
|
- 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 `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`.
|
- 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
|
### Modified
|
||||||
|
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ resolver = "2"
|
|||||||
|
|
||||||
#kiss3d = { git = "https://github.com/sebcrozet/kiss3d" }
|
#kiss3d = { git = "https://github.com/sebcrozet/kiss3d" }
|
||||||
#nalgebra = { git = "https://github.com/dimforge/nalgebra", branch = "dev" }
|
#nalgebra = { git = "https://github.com/dimforge/nalgebra", branch = "dev" }
|
||||||
parry2d = { git = "https://github.com/dimforge/parry", branch = "master" }
|
#parry2d = { git = "https://github.com/dimforge/parry", branch = "master" }
|
||||||
parry3d = { git = "https://github.com/dimforge/parry", branch = "master" }
|
#parry3d = { git = "https://github.com/dimforge/parry", branch = "master" }
|
||||||
parry2d-f64 = { git = "https://github.com/dimforge/parry", branch = "master" }
|
#parry2d-f64 = { git = "https://github.com/dimforge/parry", branch = "master" }
|
||||||
parry3d-f64 = { git = "https://github.com/dimforge/parry", branch = "master" }
|
#parry3d-f64 = { git = "https://github.com/dimforge/parry", branch = "master" }
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
#debug = true
|
#debug = true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rapier2d-f64"
|
name = "rapier2d-f64"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||||
description = "2-dimensional physics engine in Rust."
|
description = "2-dimensional physics engine in Rust."
|
||||||
documentation = "https://docs.rs/rapier2d"
|
documentation = "https://docs.rs/rapier2d"
|
||||||
@@ -52,7 +52,7 @@ vec_map = { version = "0.8", optional = true }
|
|||||||
instant = { version = "0.1", features = ["now"], optional = true }
|
instant = { version = "0.1", features = ["now"], optional = true }
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
nalgebra = "0.32"
|
nalgebra = "0.32"
|
||||||
parry2d-f64 = "0.14.0"
|
parry2d-f64 = "0.15.0"
|
||||||
simba = "0.8"
|
simba = "0.8"
|
||||||
approx = "0.5"
|
approx = "0.5"
|
||||||
rayon = { version = "1", optional = true }
|
rayon = { version = "1", optional = true }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rapier2d"
|
name = "rapier2d"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||||
description = "2-dimensional physics engine in Rust."
|
description = "2-dimensional physics engine in Rust."
|
||||||
documentation = "https://docs.rs/rapier2d"
|
documentation = "https://docs.rs/rapier2d"
|
||||||
@@ -52,7 +52,7 @@ vec_map = { version = "0.8", optional = true }
|
|||||||
instant = { version = "0.1", features = ["now"], optional = true }
|
instant = { version = "0.1", features = ["now"], optional = true }
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
nalgebra = "0.32"
|
nalgebra = "0.32"
|
||||||
parry2d = "0.14.0"
|
parry2d = "0.15.0"
|
||||||
simba = "0.8"
|
simba = "0.8"
|
||||||
approx = "0.5"
|
approx = "0.5"
|
||||||
rayon = { version = "1", optional = true }
|
rayon = { version = "1", optional = true }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rapier3d-f64"
|
name = "rapier3d-f64"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||||
description = "3-dimensional physics engine in Rust."
|
description = "3-dimensional physics engine in Rust."
|
||||||
documentation = "https://docs.rs/rapier3d"
|
documentation = "https://docs.rs/rapier3d"
|
||||||
@@ -52,7 +52,7 @@ vec_map = { version = "0.8", optional = true }
|
|||||||
instant = { version = "0.1", features = ["now"], optional = true }
|
instant = { version = "0.1", features = ["now"], optional = true }
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
nalgebra = "0.32"
|
nalgebra = "0.32"
|
||||||
parry3d-f64 = "0.14.0"
|
parry3d-f64 = "0.15.0"
|
||||||
simba = "0.8"
|
simba = "0.8"
|
||||||
approx = "0.5"
|
approx = "0.5"
|
||||||
rayon = { version = "1", optional = true }
|
rayon = { version = "1", optional = true }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rapier3d"
|
name = "rapier3d"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||||
description = "3-dimensional physics engine in Rust."
|
description = "3-dimensional physics engine in Rust."
|
||||||
documentation = "https://docs.rs/rapier3d"
|
documentation = "https://docs.rs/rapier3d"
|
||||||
@@ -52,7 +52,7 @@ vec_map = { version = "0.8", optional = true }
|
|||||||
instant = { version = "0.1", features = ["now"], optional = true }
|
instant = { version = "0.1", features = ["now"], optional = true }
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
nalgebra = "0.32"
|
nalgebra = "0.32"
|
||||||
parry3d = "0.14.0"
|
parry3d = "0.15.0"
|
||||||
simba = "0.8"
|
simba = "0.8"
|
||||||
approx = "0.5"
|
approx = "0.5"
|
||||||
rayon = { version = "1", optional = true }
|
rayon = { version = "1", optional = true }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rapier_testbed2d-f64"
|
name = "rapier_testbed2d-f64"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||||
description = "Testbed for the Rapier 2-dimensional physics engine in Rust."
|
description = "Testbed for the Rapier 2-dimensional physics engine in Rust."
|
||||||
homepage = "http://rapier.org"
|
homepage = "http://rapier.org"
|
||||||
@@ -59,5 +59,5 @@ bevy = { version = "0.13", default-features = false, features = ["bevy_asset", "
|
|||||||
[dependencies.rapier]
|
[dependencies.rapier]
|
||||||
package = "rapier2d-f64"
|
package = "rapier2d-f64"
|
||||||
path = "../rapier2d-f64"
|
path = "../rapier2d-f64"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
features = ["serde-serialize", "debug-render", "profiler"]
|
features = ["serde-serialize", "debug-render", "profiler"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rapier_testbed2d"
|
name = "rapier_testbed2d"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||||
description = "Testbed for the Rapier 2-dimensional physics engine in Rust."
|
description = "Testbed for the Rapier 2-dimensional physics engine in Rust."
|
||||||
homepage = "http://rapier.org"
|
homepage = "http://rapier.org"
|
||||||
@@ -59,5 +59,5 @@ bevy = { version = "0.13", default-features = false, features = ["bevy_sprite",
|
|||||||
[dependencies.rapier]
|
[dependencies.rapier]
|
||||||
package = "rapier2d"
|
package = "rapier2d"
|
||||||
path = "../rapier2d"
|
path = "../rapier2d"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
features = ["serde-serialize", "debug-render", "profiler"]
|
features = ["serde-serialize", "debug-render", "profiler"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rapier_testbed3d-f64"
|
name = "rapier_testbed3d-f64"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||||
description = "Testbed for the Rapier 3-dimensional physics engine in Rust."
|
description = "Testbed for the Rapier 3-dimensional physics engine in Rust."
|
||||||
homepage = "http://rapier.org"
|
homepage = "http://rapier.org"
|
||||||
@@ -58,5 +58,5 @@ bevy = { version = "0.13", default-features = false, features = ["bevy_winit", "
|
|||||||
[dependencies.rapier]
|
[dependencies.rapier]
|
||||||
package = "rapier3d-f64"
|
package = "rapier3d-f64"
|
||||||
path = "../rapier3d-f64"
|
path = "../rapier3d-f64"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
features = ["serde-serialize", "debug-render", "profiler"]
|
features = ["serde-serialize", "debug-render", "profiler"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rapier_testbed3d"
|
name = "rapier_testbed3d"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
authors = ["Sébastien Crozet <developer@crozet.re>"]
|
||||||
description = "Testbed for the Rapier 3-dimensional physics engine in Rust."
|
description = "Testbed for the Rapier 3-dimensional physics engine in Rust."
|
||||||
homepage = "http://rapier.org"
|
homepage = "http://rapier.org"
|
||||||
@@ -62,5 +62,5 @@ bevy = { version = "0.13", default-features = false, features = ["bevy_winit", "
|
|||||||
[dependencies.rapier]
|
[dependencies.rapier]
|
||||||
package = "rapier3d"
|
package = "rapier3d"
|
||||||
path = "../rapier3d"
|
path = "../rapier3d"
|
||||||
version = "0.18.0"
|
version = "0.19.0"
|
||||||
features = ["serde-serialize", "debug-render", "profiler"]
|
features = ["serde-serialize", "debug-render", "profiler"]
|
||||||
|
|||||||
Reference in New Issue
Block a user