Skip to content

Edyn v1.2.0

Compare
Choose a tag to compare
@xissburg xissburg released this 18 Oct 00:41
· 210 commits to master since this release

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 field edyn::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! 🚀