- Reverted back set simulate physics to not remove all anchors and instead updated higher level code to do so at the cost of a conditional cast
#rb michael.bao
#jira UE-172346
#preflight 639a3a1bc16855964d257ac6
[CL 23520692 by cedric caillaud in ue5-main branch]
- avoid calling it over and over when components using the same asset are registered
- make creation of physics state faster
- make duplication of components faster
#rb brice.criswell
#preflight 63940c5fcf0e31f727516720
[CL 23499843 by cedric caillaud in ue5-main branch]
- Improved InitializeMaterials to be able to handle material list only made of external materials
- Added CollectionInstancedMeshFacade and update code using the attribute directly to use the facade instead
- Added new input / output to Geometry Collection Terminal node ( InstancedMeshes )
- Simplified FindOrAddAutoInstanceMesh methods
[FYI] jimmy.andrews
#rb none
#preflight 6389699c0e4613faeded4210
[CL 23370012 by cedric caillaud in ue5-main branch]
On local testing, average performance of the function went from 27ms to 11ms
- Changed UVs data layout in FGeometryCollectionConstantData to be an array of UVChannels instead of an array of vertices containing each multiple channels, this reduces allocations quite a lot
- Avoid memcpy by passing array by reference to BuildMeshSections
- Use batched parallelFor for copying bone colors and UVChannels
- Rewrite indices remap to be O(N + M) instead of O(N * M)
Most of the remaining cost is in copying the arrays now
Future work could include making a copy per thread ( but may have to keep allocation on the calling thread )
#rb jimmy.andrews, brice.criswell, Bryan Sefcik
#preflight 6387971f3377450900d27163
[CL 23340834 by cedric caillaud in ue5-main branch]
- Update code accessing the directa ttribute to use the facade
- Updated RemoveOnBreak dataflow node to use it too
#rb none
#preflight 637be8dae30d4388493b0d02
[CL 23229812 by cedric caillaud in ue5-main branch]
- Optimize managed array collection NumElement to only fetch once from the group map
- Make sure to skip IncrementSleepTimer and ImcrementBreakTimer method is GC is not broken yet
- Early out in RefreshEmbeddedGeometry if no examplar is present
- Optimize BuildGeometry to reduce cache missed when running too small batch across large number of threads ( 2.5 time perf boost )
#rb benn.gallagher
#preflight 637531c6953c19d43519551b
[CL 23166264 by cedric caillaud in ue5-main branch]
- Add a set clustered by transformed box
- Fix the set clustered functions to properly update the kinematic state of the parents
- Imporved the debug draw of connection graph to better see the node state when close
#rb none
#preflight 636dd14e953c19d435279592
[CL 23102242 by cedric caillaud in ue5-main branch]
* GeometryCollectionComponent.h - Most files are related to the removal of includes in this file. Removed 7 headers
- Moved GeometryCollectionDamagePropagationData in to its own file
- Changed COPY_ON_WRITE_ATTRIBUTE to be set in a way so implementations can be placed in cpp file.
- Moved some function implementations to cpp file
* Removed include in FieldSystemActor.h
* Removed include in FieldSystem.h
* Removed include in CommonUISettings.h
#preflight 636b325c376a9cd6a8818aae
#rb cedric.caillaud (for the actual changes, not additional includes and a couple include removals outside GeometryCollection)
[CL 23069399 by henrik karlsson in ue5-main branch]
- GetLocalBoudns
- GetDebugInfo : to get detailed info about the various collection and their arrays ( including estimated memory usage )
- SetAnchoredByIndex / SetAnchoredBybox now has a bAnchored boolean
#rb brice.criswell
#preflight
[CL 22958587 by cedric caillaud in ue5-main branch]
- Added a Proximity tool to Fracture Mode to visualize and change generation settings for GeometryCollection bone proximity.
- Added more user controls for how proximity is generated, including a "Convex Hull distance" method for deciding contact, which should help include connections that were missed by the default proximity detection method.
- Made proximity settings live on the GeometryCollection as (non-cooked) attributes, so proximity re-generates with the desired method after further fracturing/clustering.
- Added an option to automatically convert the proximity graph to a pre-computed connection graph used by simulation.
- Reduce redundant proximity calculations: Be more consistent in relying on FGeometryCollectionEdit to update proximity as needed, and call 'RequireProximity' instead of 'UpdateProximity' in cases where we expect a valid proximity may already be present.
#rb cedric.caillaud
#preflight 6356d21b0313c24974eea2f8
[CL 22735429 by Jimmy Andrews in ue5-main branch]
Limitations : Currently this requires the GC to be reset to recompute the list of instanciable meshes and their corresponding indices
Mitigation : this can be turned off using the following cvar : p.Chaos.GC.UseISMPool
#rb brice.criswell, Krzysztof.Narkowicz
#preflight 63519a8af92c325024c32137
[CL 22705192 by cedric caillaud in ue5-main branch]
- Make sure CLustersToRep is reset when the physics state is destroyed
- Initialize the Physics proxy ReplicationMode when we create the proxy instead of during InitializeComponent ( because Destroy/Create physics state can be called after it )
#rb brice.criswell, michael.forot
#preflight 6350d4f82337adbf42b08788
[CL 22670734 by cedric caillaud in ue5-main branch]
This fixes crashes related to GC replication where an island index inherited from a parent would remain set after the island has been removed
#rb chris.caulfield, brice.criswell, michael.forot
#preflight 6350824b8449f85a477815e4
[CL 22647574 by cedric caillaud in ue5-main branch]
- comment the disable of particles beyond the abandon level on the server
#rb trivial
#jira
#preflight none
[CL 22647208 by cedric caillaud in ue5-main branch]