The experimental system which implements a capsule-capsule collision algorithm.
It resolves capsule distance constraints.
The system supports friction (use PhysicalMaterial
to control the behavior).
Currently, algorithm implementation does not resolve the case for capsules segments intersection.
The system is responsible for resolving collisions between bodies, which provide points, and lines (unbounded).
The system supports friction (use PhysicalMaterial
to control the behavior) for both, i.e. body and a line can be translated.
The system implements a collision algorithm between points and TriField
.
The algorithm prevents from bodies stacking and since it's "volumetrical" can be a good competitor with continuous collision algorithms which are more costly.
The system supports friction (use PhysicalMaterial
to control the behavior).
The system is responsible for resolving edge length constraints, the most common constraint in PBD simulation. The constraint is defined in the following way
where
The system supports XPBD compliance and PBD stiffness.
The system is responsible for resolving the shape matching constraint. The method has many advantages:
- can be easily embedded withing PBD framework,
- can be used for simulation meshless objects,
- it is computationally cheap,
- can be used for simulation (quasi) rigid bodies.
Shape matching problem can be formulated using the following function
where weight
The goal is to find rotation
The system supports the linear deformation model.
The system is responsible for resolving triangle area (signed) constraints. Constraint enforces that triangle area is conserved during the simulation. The constraint function is defined in the following way
where
The system supports XPBD compliance and PBD stiffness.
The system is responsible for solving point-point connector constraints. The constraint is used for connecting two separate bodies. The constraint function is defined in a similar way as for edge length constraint (with zero rest length)
The system is responsible for maintaining the rest position. An applied constraint is hard, i.e. weight of constrained points is set to zero. Regarding the interaction, point position should be always preserved.
The system is responsible for position constraint regeneration.
The rest position of the constraints is calculated using given Transform
Note
Transform.rotation
is not supported.
The system is responsible for resolving bending constraints for angles made of three points
where
The system supports XPBD compliance and PBD stiffness.
Warning
Strong stiffness/compliance setting currently leads to simulation instabilities. Use the constraint with caution.
The system is responsible for maintaining the rest position. The constraint function is defined in the following way
where
The system supports XPBD compliance and PBD stiffness.
The system is used for interacting mouse pointer with the simulated object (currently rather for debugging purposes).
It supports translation and rotation of multiple points.
To grab a body use the left mouse click when dragging a body use the mouse scroll to rotate a body around the current mouse position.
For additional settings or debugging attach MouseInteractionConfiguration
for your World
.
The generic abstract system BoundingVolumeTreeSystem<T>
responsible for updating the NativeBoundingVolumeTree<AABB>
, where T
is IConvertableToAABB
.
Implementation of Bounding Volume Tree System for T
equals ExternalEdge
.
Implementation of Bounding Volume Tree System for T
equals Point
.
The system gathers the results of the NativeBoundingVolumeTree<AABB>
intersections.
The result of intersection is stored in a list of int2
structs.
Implementation of Bounding Volume Tree System for T
equals Triangle
.
The action-only system is responsible for updating bounds of the object. Bounds are used in collision algorithms scheduling.
The system is responsible for updating the Mesh
.
It syncs mesh vertices with simulation positions and updates the bounds.
The system is responsible for updating the EdgeMesh
LineRenderer
.
It syncs segments vertices with simulation positions.
The system updates the velocity
where
The system implements the first step of PBD algorighm.
It updates velocity
where