- This is behind a cvar (p.Chaos.GC.UseReplicationV2) ( off for now )
- Split replicated data in two : state and dynamic
- State data contains a bitArray of what's broken and an array of recently released pieces with matching breaking velocities
- Dynamic data contains tracked ( XR and VW ) dynamic pieces
- Reduced the precision for quantized breaking velocities
- Store rotation as euler to allow for quantized rotation in dynamic data
- Breaking velocities are removed as particles become disabled to save bandwidth for players joining later or coming into relevancy
- Tried to share as much code as possible between the old and new replication code paths
#rb markus.boberg, michael.bao, benn.gallagher
[CL 28059803 by cedric caillaud in ue5-main branch]
Relative Transform in Dynamic Collection are now in single precision. This change implicates an API change. The Managed Array of transforms being in public, and being changed make some backward compatibility breakage. This array shouldn't have be used much.
#rb cedric.caillaud
[CL 27942269 by vincent robert in ue5-main branch]
- Hide the array beghind an API that expose root transform and all transform tracking a dirty state
#rb benn.gallagher
[CL 27902559 by cedric caillaud in ue5-main branch]
- using the RestCollection immutable MassToLocal instead
- this save a 2x96 bytes per bone per geometry collection instance
#rb vincent.robert, benn.gallagher, brice.criswell
[CL 27777942 by cedric caillaud in ue5-main branch]
Also provide a TSet version of SetPerParticleCollisionProfileName to avoid converting TSet to arrays
#rb michael.bao
[CL 27734720 by cedric caillaud in ue5-main branch]
Store breadth first order indices for transform on the rest collection
#rb benn.gallagher, vincent.robert, brice.criswell
[FYI] jeremy.moore
[CL 27652487 by cedric caillaud in ue5-main branch]