Commit Graph

314 Commits

Author SHA1 Message Date
michael bao
d2cb47a721 don't rely on bFirstUpdate in geometry collection replication to determine whether or not to replicate a cluster - use the particle leve instead since that's what we're actually checking for
- using bFirstUpdate is unreliable when GC's are added into cluster unions since cluster unions will disable replication immediately

#rb cedric.caillaud
#preflight 6430a10db4329f6f1a4de7b8

[CL 24974076 by michael bao in ue5-main branch]
2023-04-08 15:05:08 -04:00
cedric caillaud
53e296d985 Geometry collection : fix replication where client may try to remove a particle that still has a grand parent
#rb benn.gallagher, michael.bao, steven.barnett
#preflight 642f5cb8b306e98c633f2bc3

[CL 24962043 by cedric caillaud in ue5-main branch]
2023-04-06 22:46:53 -04:00
jeremy moore
e861e8645f Add support for ISMPool reverse culling flag. This allows us to potentially create two ISM components for left and right handedness if needed.
Add free list for ISMPool ISM component slots so that we can recycle them when the number of instances for a component becomes zero.
#preflight 642f0942427eda562650ef0b

[CL 24957562 by jeremy moore in ue5-main branch]
2023-04-06 17:29:18 -04:00
michael bao
4fe9bbd4f6 properly call FClusterUnionManager::HandleDeferredClusterUnionUpdateProperties after ReleaseClusterParticles call without relying on it getting to the next breaking model
#rb benn.gallagher
#preflight 642ef21d4c3ccbbdf17ea341

[CL 24957034 by michael bao in ue5-main branch]
2023-04-06 17:08:38 -04:00
vincent robert
b424a2a60a Client Crash UGeometryCollectionComponent
#preflight 642d9e7d4d26bcd1eb0e81b6
#rb cedric.caillaud

[CL 24936641 by vincent robert in ue5-main branch]
2023-04-05 17:03:03 -04:00
cedric caillaud
f125045cb1 Geometry collection : add blueprint functions to get initial and current transform of the root node of the collection
[FYI] logan.harvell, Cody.Haskell
#rb none
#preflight 642cee708f078cc703c8d8e9

[CL 24924259 by cedric caillaud in ue5-main branch]
2023-04-05 02:09:40 -04:00
jeremy moore
5a74598a34 Better parameterization of ISM pool components.
Still work to do for recycling components that are empty.
#preflight 642b52164d26bcd1eb357be2

[CL 24906566 by jeremy moore in ue5-main branch]
2023-04-03 23:33:01 -04:00
cedric caillaud
4d062378e6 Geometry collection : add time scalar for removal ( cvar )
#rb none
#preflight none

[CL 24905952 by cedric caillaud in ue5-main branch]
2023-04-03 22:31:08 -04:00
jeremy moore
815fa2643c Add support for setting custom renderer class on geom collection asset or component.
Deprecate oldd ISMPool setting so that it uses UGeometryCollectionISMPoolRenderer which has old behavior.
#preflight 642a3f33c6769c60822ad366
#preflight 642ab6c1d6069e71b17521e7

[CL 24892140 by jeremy moore in ue5-main branch]
2023-04-03 10:06:24 -04:00
jeremy moore
13505f9e4e Fix root component not visually updating with Geometry Collection ISMPool renderer.
#preflight 6427404a50546ea336d2f5d0

[CL 24884458 by jeremy moore in ue5-main branch]
2023-04-01 02:38:44 -04:00
jeremy moore
9114575fd0 Add back bAutoAssignISMPool to GeometryComponent.
#preflight 64271d5438075fa13f5bff61

[CL 24876940 by jeremy moore in ue5-main branch]
2023-03-31 15:30:41 -04:00
jeremy moore
4f424c08a5 Move geometry collection ISM Pool management code into custom renderer object.
Allows us to have different rendering strategies for geometry collection.
#preflight 64260c6b9621ba9cb46bf178

[CL 24868103 by jeremy moore in ue5-main branch]
2023-03-31 02:58:27 -04:00
sebastien lussier
ca273183ff World Partition - HLOD: Added UGeometryCollectionComponent HLOD support
* Added CreateProxyComponents() method which creates static mesh component(s) from the collection proxy meshes
* Override IsHLODRelevant()
#rb jeanfrancois.dube
#preflight skip

[CL 24820137 by sebastien lussier in ue5-main branch]
2023-03-28 11:45:57 -04:00
cedric caillaud
33825d2516 Geometry collection : fix issue where exploded vectors would remain in the collection uninitialized after executing a dataflow causing global matrices to have NaNs translations and potentially causing bounds computation to generate bogus results
- Implemented the inherited Reset method overrides for FTransformCOllection and FGeometryCollection
- Fixed a bug when resizing a birtarray based managed array
- Geometry collection asset ResetFrom method now calls Reset on the FGeometryCollection object
- Added an optional check for Nans for global matrices

#rb jeremy.moore, brice.criswell
#preflight 64223c8bc42c7fd1cbb77c34

[CL 24814607 by cedric caillaud in ue5-main branch]
2023-03-27 23:42:56 -04:00
cedric caillaud
d26d360663 Add support for custom primitive data for geomtetry collection
#rb jeremy.moore
#preflight 6421e051c42c7fd1cb99a33d

[CL 24811720 by cedric caillaud in ue5-main branch]
2023-03-27 18:52:40 -04:00
kenzo terelst
857a7c0207 - Use ISMComponent events on instance removed and index reallocated in the ISMPool to handle both ISM & HISM reordering on remove instances (Remove vs SwapRemove differences)
- Re-enable HISM by default for GeometryCollection proxy and leaf rendering

#rnx
#rb Cedric.Caillaud
#preflight 6419ff1e42618c85c40b6975

[CL 24740869 by kenzo terelst in ue5-main branch]
2023-03-21 17:54:35 -04:00
cedric caillaud
e9335d64b4 Fix issue where updaterep data is called with a callback and the physics proxy is null
- make sure UpdateRepData checks for the physics proxy  being valid

#rb trivial
#preflight 6418920442618c85c49728a8

[CL 24724501 by cedric caillaud in ue5-main branch]
2023-03-20 17:35:49 -04:00
robomerge
33685af739 Geometry collection : fix issue where removal may not work properly
- Reorganize the UpdateRemovalIfNeeded method in a way that avoid the optimizer to break the runtime logic and stop the non-scale case logic block from running properly
  this seems to be coming from the condition around 1.0-GetDecay() been optimized out to get rid of the subtraction but it's not clear exactly why that fails yet
- Fixed a static analysis warning where compoaring the same variable in an ensure

#rb benn.gallagher, vincent.robert
#preflight 6414920d1c44ff98b972f41f

[CL 24702027 by robomerge in ue5-main branch]
2023-03-18 01:39:50 -04:00
cedric caillaud
a6feae4762 Geometry collection : ISM Pool warning because of the mesh group has not been created yet by the GC
[FYI] chris.caulfield
#rb none
#preflight none

[CL 24679081 by cedric caillaud in ue5-main branch]
2023-03-16 16:49:47 -04:00
cedric caillaud
bd0029a344 geometry collection : fix scale on removal not using the scale matrix properly ( was causing a crash because of resulting optimizations )
- make sure to handle the case where inner radius attriute has been stripped out

#rb benn.gallagher
#preflight 64122eea290c6e5d778a2864

[CL 24665410 by cedric caillaud in ue5-main branch]
2023-03-15 19:45:00 -04:00
cedric caillaud
1d819cbbb9 Fix issues with regenerating geometry collection using the destruction builder script
- Fixed broken rendering in thumbnail after re-exporting a geometry collection a different layout / number of transforms
- Loaded components ( including the one in blueprints ) are now properly updated when the geometry collection asset is updated
- Fixed the thumbnail renderer crashing after re-exporting an asset and opening its editor
- Added check for size of arrays passed to the geometry group based bounds calculation

#rb none
#preflight 64115af170639dfc94a497b5

[CL 24656950 by cedric caillaud in ue5-main branch]
2023-03-15 12:59:39 -04:00
michael bao
d32777373c introduce a new FPhysicsObjectId alias to add some type clarity to the various functions on the IPhysicsComponent that deal with this id
[FYI] cedric.caillaud
#preflight 640f527f28026468d94594f8

[CL 24621833 by michael bao in ue5-main branch]
2023-03-13 17:11:51 -04:00
cedric caillaud
411a3d5a09 Geometry collection : optimize scale on remove feature
- Add oiptions on the GC asset to disable scale on remove, saving transform computation
- Remove the "UniformScale" attribute on the dynamic collection ( saving a FTransform per piece per compoinent )
- Move update of transform from decay from CalculateGlobalMatrices to the post physics update callback
- Make better use of the collection decay facade throughout the remove on sleep and remove on break code

#rb brice.criswell, benn.gallagher, matt.breindel
#preflight 640a9b767e654e2e655b335a

[CL 24601490 by cedric caillaud in ue5-main branch]
2023-03-10 20:05:11 -05:00
jeremy moore
4af0cb0770 Added ISM pool debug component.
Currently allows ISM selection and some debug bounds/stats.
#preflight 64090c8ca92b27de3c553c5c

[CL 24571870 by jeremy moore in ue5-main branch]
2023-03-09 00:00:20 -05:00
jeremy moore
644ac38dc2 GeometryCollection object can store custom instance data to pass to instances spawned in ISM pools.
Also add a per component custom data which, if present, is added to all ISM pool instances that the component generates.
#preflight 6409444bcf5fe1e28c0e065c

[CL 24571716 by jeremy moore in ue5-main branch]
2023-03-08 23:38:52 -05:00