This page describes .
Gravity is represented as a vector. It affects every dynamic rigid-body taking part of the simulation. The gravity can be altered at each timestep . Learn more about per-rigid-body gravity modification in the dedicated section.
IntegrationParameters controls various aspects of the physics simulation, including the timestep length,
number of solver iterations, number of CCD substeps, etc. The default integration parameters are set to
achieve a good balance between performance and accuracy for games. They can be changed to make the simulation more
accurate at the expanse of a bit of performance. Lean more about each integration parameter in
the API docs.
IslandManager is responsible for tracking the set of dynamic rigid-bodies that are still moving
and these that are no longer moving (and can ignored by subsequent timesteps to avoid useless computations).
The island manager is automatically updated by
PhysicsPipeline::step and can be queried to retrieve
the list of all the rigid-bodies modified by the physics engine during the last timestep. This can be useful
to update the rendering of only the rigid-bodies that moved:
Learn more about sleeping rigid-bodies in the dedicated section.
PhysicsPipeline is responsible for tying everything together in order to run the physics simulation.
It will take care of updating every data-structures mentioned in this page (except the other pipelines), running the collision-detection,
running the force computation and integration, and running CCD resolution.
CollisionPipeline is similar to the
PhysicsPipeline except that it will only run collision-detection.
It won't perform any dynamics (force computation, integration, CCD, etc.) It is generally used instead of
PhysicsPipeline when one only needs collision-detection.
Running both the
CollisionPipeline and the
PhysicsPipeline is useless because the
QueryPipeline is responsible for efficiently running scene queries, e.g., ray-casting,
shape-casting (sweep tests), intersection tests, on all the colliders of the scene.
Learn more about scene queries with the
QueryPipeline in the dedicated page.
The CCD solver is responsible for the resolution of Continuous-Collision-Detection. By itself, this structure
doesn't expose any feature useful. So it should simply be passed to the
Learn more about CCD in the dedicated section.
The physics hooks are trait-objects implementing the
PhysicsHooks trait. They can be used to apply arbitrary
rules to ignore collision detection between some pairs of colliders. They can also be used to modify the contacts
processed by the constraints solver for computing forces.
Learn more about physics hooks in the dedicated section.
The event handlers are trait-objects implementing the
EventHandler trait. They can be used to get notified
when two non-sensor colliders start/stop having contacts, and when one sensor collider and one other collider
start/stop intersecting. Learn more about contact and intersection events in
the dedicated section.