- ISMPool subsystem creates the ISMPool actor and return it when asked for
- Fix root proxy mesh not being properly loaded before sent to the ISM Pool
- Fix visiblity of the geometry component being overriden if ISMPool is not being used
#rb benn.gallagher
#preflight 63d8cb6367116074a84abdd2
[CL 23934984 by cedric caillaud in ue5-main branch]
- move setting of notification and other parameters to properly be set on the PT when GT to PT happens opn the proxy
#rb michael.bao
#preflight 63d0537594644f3e8e433164
[CL 23844500 by cedric caillaud in ue5-main branch]
- also fixed issue where changing the SetNotifyX (break, crumbling, etc) on a geometry collection component wouldn't set the simulation parameter on the physics proxy.
#preflight 63c82b8f0225f00e142761e0
#rb cedric.caillaud
[CL 23804265 by michael bao in ue5-main branch]
- make sure we do properly reset the dirty flag on the dynamic collection when scene proxy is not set
- fix condition that could lead to run part of the Tick function too many time when the collection is not dirty
#rb benn.gallagher, vincent.robert
#preflight 63c77c7902024f93d89aa3fb
[CL 23757059 by cedric caillaud in ue5-main branch]
For large scenes, it may take multiple seconds (if not longer) for a geometry collection to show up in the external acceleration structure causing it to be ignored by movement sweep checks (and others). This is because the geometry collection relies on the internal -> external acceleration structure copy which may take awhile to complete. The single particle physics proxy (i.e. static meshes) will add itself manually to the external acceleration structure in FInitBodiesHelperBase::InitBodies via FChaosScene::AddActorsToScene_AssumesLocked.
#preflight 63bdbdadc45a2c81e01b5813
#rb vincent.robert
[CL 23634458 by michael bao in ue5-main branch]
- 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]