Physics Pipeline
All physics jobs (initializing simulation data, stepping, and exporting data to ECS) are executed inside PhysicsSystemGroup. It is a ComponentSystemGroup, and is a subgroup of FixedStepSimulationSystemGroup. Therefore, multiple physics steps can occur during one frame.
PhysicsSystemGroup consists of two other subgroups, each responsible for a single phase in physics step, and ExportPhysicsWorld system, which schedules jobs that convert physics simulation data to ECS data (LocalTransform and PhysicsVelocity).
Subgroups are:
| System group | Description |
|---|---|
PhysicsInitializeGroup |
Schedules the jobs that create physics simulation data from ECS data for the current simulation step. |
PhysicsSimulationGroup |
Schedules the jobs that execute physics simulation pipeline. |
PhysicsSimulationGroup is further divided into four other subgroups that are responsible for different stages of simulation, and between which it is possible to modify physics simulation data.
Those are:
| System group | Description |
|---|---|
PhysicsCreateBodyPairsGroup |
Schedules the jobs that find pairs of bodies whose AABB's overlap. |
PhysicsCreateContactsGroup |
Schedules the jobs that create contacts based on overlapping pairs. |
PhysicsCreateJacobiansGroup |
Schedules the jobs that create jacobians based on created contacts. |
PhysicsSolveAndIntegrateGroup |
Schedules the jobs that solve jacobians. |
The running order is illustrated in the image below:
