Commit Graph

161 Commits

Author SHA1 Message Date
cedric caillaud
035af94e52 Geometry collection : add a property to control at which level position and velocity are corrected for clusters
The smaller the number the more bandwidth will be saved by not sending the position and velocities to the client

#rb benn.gallgher, vincent.robert, michael.bao
#preflight 64371be51f33a0b34a417b7c

[CL 25020009 by cedric caillaud in ue5-main branch]
2023-04-12 20:46:15 -04:00
steven barnett
47da03070f Add UGeometryCollectionComponent::SetDamageThreshold so that we can call RecreatePhysicsState when damage threshold changes.
#preflight https://horde.devtools.epicgames.com/job/64371fa7f12d5de7058ea924
#rb cedric.caillaud

[CL 25019216 by steven barnett in ue5-main branch]
2023-04-12 19:46:27 -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
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
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
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
vincent robert
37b60655c2 Add MaxSimulatedLevel in Geometry Collection that allows not to create particles from the input level and the beyond.
#jira UE-176884
#rb cedric.caillaud
#preflight 64066b7b3206d45d2037fbf0

[CL 24534469 by vincent robert in ue5-main branch]
2023-03-06 19:44:34 -05:00
cedric caillaud
280dc6f9e0 Geometry collection : move rendering and nav updates from TickCOmponent to PostPhysicsUpdate
- also cache RootIndex in Geometry collection asset to avoid scanning through all the transforms each time to find it

#rb benn.gallagher, jimmy.andrews
#preflight 64017a41d249add4a224c288

[CL 24509670 by cedric caillaud in ue5-main branch]
2023-03-03 18:14:55 -05:00
michael bao
9ba4763739 add function to get body ID on the component given a raw GT particle
#rb cedric.caillaud
#preflight 64014005d249add4a20f46e5

[CL 24494806 by michael bao in ue5-main branch]
2023-03-02 21:57:29 -05:00
cedric caillaud
fb2a37ccd0 Attempt to fix cook warning related to event dispatcher in Geometry collection
- made the event dispatcher a transient property
- allocate the object using NewObject instead of CreateDefaultSubobject since it is a runtime only object

#rb benn.gallagher, Ben.Zeigler, dan.oconnor
#preflight 63fda3b2f43e53f6815c2b27

[CL 24454388 by cedric caillaud in ue5-main branch]
2023-02-28 18:22:56 -05:00
bryan sefcik
a325a91dd1 Updated the "AutoInstances" meshes to not add to the ISMPool until they are needed.
Deprecated the FSoftObjectPath "StaticMesh" property in FGeometryCollectionAutoInstanceMesh and replaced it with a TObjectPtr<UStaticMesh> Mesh property. This fixes an issue where asserts would fire because we were doing sync loads after the loadscreen.
These changes saved roughly 100MBs in our test level.

#jira
#rb cedric.caillaud
#preflight 63f846e9c35a14198085d30e

[CL 24406749 by bryan sefcik in ue5-main branch]
2023-02-24 15:00:49 -05:00
cedric caillaud
50efd38db8 Geometry collection: make removal random generated timer values consistent between client and server
- make bone colors unique per component based on number of bones
- remove dependency to PhysXUserdata

#rb none
#preflight 63f86cbcdd78dd50f6541cca

[CL 24406423 by cedric caillaud in ue5-main branch]
2023-02-24 14:43:53 -05:00
bryan sefcik
aa3b70f03b [Backout] - CL24251176
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL24248607
[FYI] bryan.sefcik
Original CL Desc
-----------------------------------------------------------------
Updated the static mesh property("RootProxy") in UGeometryCollection to be a FGeometryCollectionProxyMeshData which currently contains an array of static meshes.
Deprecated the old RootProxy property in UGeometryCollection. Old data will still work.

#rb cedric.caillaud
#preflight 63ed6ac996073a3e191d8b6d

[CL 24265247 by bryan sefcik in ue5-main branch]
2023-02-16 14:21:21 -05:00
jeremy moore
1cae9c2d97 Move all immutable geometry collection rendering data into the geometry collection asset.
This is built as part of geometry collection DDC contents.
Reworked scene proxy to use this data. Some big changes there:
* Tidied up hit proxy code so that all hit proxy clients use the same path.
* Removing of internal faces are now handled without an additional index buffer by always storing internal faces at the end of a section and providing different section descriptions for including internal faces.
* Dynamic geometry hiding in editor is now done by zeroing transforms instead of rebuilding the index buffer.
#rb cedric.caillaud
#preflight 63edc2e55c7bd278c11efe51

[CL 24261113 by jeremy moore in ue5-main branch]
2023-02-16 12:40:53 -05:00
bob tellez
dbae1e7125 [Backout] - CL24248607
[FYI] bryan.sefcik
Original CL Desc
-----------------------------------------------------------------
Updated the static mesh property("RootProxy") in UGeometryCollection to be a FGeometryCollectionProxyMeshData which currently contains an array of static meshes.
Deprecated the old RootProxy property in UGeometryCollection. Old data will still work.

#rb cedric.caillaud
#preflight 63ed6ac996073a3e191d8b6d

[CL 24253444 by bob tellez in ue5-main branch]
2023-02-16 04:18:45 -05:00
bryan sefcik
82d52d2117 Added missing file from GC change.
#preflight

[CL 24253389 by bryan sefcik in ue5-main branch]
2023-02-16 04:16:30 -05:00
jimmy andrews
92852cf5b1 rework how internal faces are tracked and assigned materials in geometry collections:
- add explicit tracking of internal surfaces in fracture geometry, and remove concept of 'internal-only' materials in odd-numbered slots.
- add tooling to set internal materials, and to set default internal materials to be assigned on fracture
- add option to preserve internal face data via odd material numbers in ToMesh tool + option to re-import these ToMesh outputs w/ internal material IDs set

#rb cedric.caillaud
#rb david.hill
#preflight 63e66867de74ffbae51e5dc7
#jira UE-165320

[CL 24136970 by jimmy andrews in ue5-main branch]
2023-02-11 12:37:57 -05:00
cedric caillaud
8774207879 geometry collection : expose IsRootBroken function to blueprints
#rb trivial
#preflight none

[CL 24114477 by cedric caillaud in ue5-main branch]
2023-02-09 22:48:15 -05:00