Edyn v1.2.0
This version of Edyn
brings a completely new multi-threading model, which simplifies some annoying quirks of previous versions. Following is a list of relevant changes.
- Now using
EnTT
3.10.1 - New multi-threading architecture with three execution modes:
- Sequential: runs the simulation in the calling thread.
- Sequential multi-threaded: identical to the sequential mode except that it will conditionally parallelize certain steps.
- Asynchronous: offloads as much work as possible to background threads to make the call to
edyn::update
as lightweight as possible.
- External systems are now simply pre- and post-step callbacks, invoked before and after each physics step with fixed delta time in either execution mode.
- External entities and components must only be registered when running in asynchronous mode or in a networked simulation.
- Unnecessary to mark components as dirty. Changes are observed internally using
EnTT
signals. Similarly,edyn::refresh
has been removed. - Unnecessary to mark components as continuous. When running in asynchronous mode, components that change in the simulation worker are updated in the main registry.
- Cylinders and capsules can be created aligned with any of the 3 coordinate axes.
- Rag dolls can be made of either boxes, cylinders or capsules.
- Ability to ignore entities in a raycast.
edyn::rigidbody_def::update_inertia()
has been removed. Moment of inertia is calculated from mass and shape by default. Custom inertia can be assigned to the optional fieldedyn::rigidbody_def::inertia
.edyn::batch_rigidbodies
has been removed as it isn't necessary anymore because island workers have been replaced by the unified simulation worker.
More details can be found in the User Manual. Enjoy! 🚀