Commit Graph

459 Commits

Author SHA1 Message Date
michael bao
6daadceddd geometry collection needs to turn on break events at the solver level if either notify breakings or notify global breakings is set to true - also made sure the flag gets set properly for removals and collisions
#rb cedric.caillaud, vincent.robert

[CL 29629911 by michael bao in ue5-main branch]
2023-11-09 22:54:29 -05:00
cedric caillaud
4b029f888c Fix rendering offsets with cluster unions
- This is caused by the  transform not being properly defined when receiving a ComponentAdded event
- Override ChildToParentUpdated method to update the rendering transform

#rb michael.bao, chris.caulfield, michael.lentine

[CL 29615742 by cedric caillaud in ue5-main branch]
2023-11-09 18:50:49 -05:00
titouan deslandes
2a57b8f063 Deprecated COPY_ON_WRITE_ATTRIBUTE and Indirect TManagedArray, removed CopyOnWriteAttributeList saving 200 bytes per GC.
Use the RestCollection to access those attributes instead.

#rb cedric.caillaud

[CL 29289224 by titouan deslandes in ue5-main branch]
2023-10-31 16:28:26 -04:00
michael forot
21de6da55b Call FlushNetDormancy only when some replicated property are changing to avoid replicating all GCs and preventing the repmovement to be replicated
#rb michael.bao

[CL 29272717 by michael forot in ue5-main branch]
2023-10-31 09:32:18 -04:00
chris caulfield
d0cb9a55f4 Geometry Collection - add OneWayInteractionLevel rather than IsOneWayInteraction to get more control over which particles behave like debris
#rb cedric.caillaud, michael.bao

[CL 29257116 by chris caulfield in ue5-main branch]
2023-10-30 19:23:20 -04:00
michael lentine
d3ed2bc54f Undo //Fortnite/Release-28.00/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/... changelist 29242678
#rb none

[CL 29256090 by michael lentine in ue5-main branch]
2023-10-30 18:49:35 -04:00
titouan deslandes
bad8f30386 Deprecated COPY_ON_WRITE_ATTRIBUTE and Indirect TManagedArray, removed CopyOnWriteAttributeList saving 200 bytes per GC.
Use the RestCollection to access those attributes instead.

#rb cedric.caillaud, vincent.robert, Benn.Gallagher

[CL 29246315 by titouan deslandes in ue5-main branch]
2023-10-30 15:57:51 -04:00
cedric caillaud
1bc32b81dd Geometry collection component : make sure physics material can be set while physics state has been created
#rb michael.bao, todd.eckert, jon.sourbeer

[CL 29238554 by cedric caillaud in ue5-main branch]
2023-10-30 13:14:08 -04:00
benn gallagher
83be2df6a6 Stop geometry collection components from spending time updating their body instance inherited from primitive component when updating transforms. The geometry collection component controls its own physics transforms internally and doesn't require the body instance.
#rb Michael.Bao

[CL 29224722 by benn gallagher in ue5-main branch]
2023-10-29 15:50:12 -04:00
todd eckert
59ac23d5d7 Fixed an issue where prefab's were using the wrong physical material
see https://jira.it.epicgames.com/browse/PLAY-19518 and https://jira.it.epicgames.com/browse/PLAY-16871

#juno
#rnx

[CL 29166273 by todd eckert in ue5-main branch]
2023-10-26 22:17:13 -04:00
cedric caillaud
1e3697780d Remove ensure about Nans iwhen getting the root transform until the proxy race condition is properly fixed
#rb sergio.gardeazabal, michael.lentine

[CL 29165791 by cedric caillaud in ue5-main branch]
2023-10-26 22:10:43 -04:00
cedric caillaud
903f61073b Add partial destruction decay system for moving buildings
When the building is moving , check at regular interval if any partially destroyed geometry collection has been broken for certain amount of time since the building is moving
If so, then release it
- Cache the dynamic state in the cluster union component to avoid calling IsSimulatingPhysics()
- Added a virtual function called whenever the physics state of the cluster union is set

#rb benn.gallagher, michael.lentinne, michael.bao, chris.caulfield

[CL 29121109 by cedric caillaud in ue5-main branch]
2023-10-26 00:18:08 -04:00
sergio gardeazabal
6e5f317e4a UClusterUnionComponent::SyncClusterUnionFromProxy optimizations
- Removed the need of maintain two sets to cache FExternalSpatialAccelerationPayload structures as components are added/removed
- Added a new constructor to FExternalSpatialAccelerationPayload so we can directly pass a TObjectKey and the chaos UniqueIdx, so we don't have to build them from scratch (which requires lock the scene to get the Particle idx and access the Global objects array to build the WeakObjtPtr).
- Wrapped TObjectKey in a wrapper we can use to store other elements we will use later, so we don't have to go back and forth between converting between ObjectKey and Raw ptr which requires access to the global objects array and is not cheap.
- Removed TSet the need to do TSet differences
- Added a new native event that when broadcasted in addition to the new bone ids that were added, it also passes an array of bone IDs removed. (So listeners don't have to calculate it on their own again).
- Splitted UGeometryCollectionComponent::SetPerParticleCollisionProfileName so its components can be called independently. There are cases where we need to call it with different profile name witching the same scope, so part of the method doesn't need to be executed again. To ensure all parts are executed as desired, a new transaction object was created that need to be passed to the new UGeometryCollectionComponent::SetParticleCollisionProfileName

#rb cedric.caillaud, michael.bao

[CL 29119882 by sergio gardeazabal in ue5-main branch]
2023-10-25 23:28:31 -04:00
emanuel masciarelli
f38272b967 Removing the usage of Engine headers inside of Chaos
#jira UE-198896
#rb benn.gallagher
#tests PIE, built HeadlessChaos

[CL 29095415 by emanuel masciarelli in ue5-main branch]
2023-10-25 14:00:37 -04:00
zach bethel
3c28e650c4 Removed scene render command pipe.
- Existing implementation has too many vectors for race conditions; will need a more targeted approach to optimize scene commands.
 - Cable component manually initializes resources on the Cable pipe instead of using CreateRenderThreadResources.
 - Removed async path for scene proxy render resource creation.

[CL 29090823 by zach bethel in ue5-main branch]
2023-10-25 11:46:51 -04:00
jeremy moore
f0e9080c6e Don't create render state for geometry collections using custom renderers
[CL 29072485 by jeremy moore in ue5-main branch]
2023-10-25 01:56:13 -04:00
markus boberg
67a7803832 Server crash on GC update RepData accessing uninitialized world.
#rb michael.bao, cedric.caillaud

[CL 29033457 by markus boberg in ue5-main branch]
2023-10-24 02:55:35 -04:00
emanuel masciarelli
6d073fde45 Adding the ability for Geometry Collections to specify the use of the collision geometry from the source Static Meshes on the game thread instead of the combined GC collision, as the GC collision can be more coarse for improved physics simulation performance.
The cvar p.GeometryCollection.ForceOverrideGCCollisionSetupForTraces can be set to 1 to force GC collision on everything if anything goes sideways.

#tests PIE
#rb cedric.caillaud

[CL 28973051 by emanuel masciarelli in ue5-main branch]
2023-10-20 14:00:50 -04:00
cedric caillaud
64081c4b6d Geometry collection optimization : tick geometry collection only when there's at least a piece decaying
- Tracks broken and decayed states in an internal structure
- Simplifies the FullDecay check
- Removal function remain mostly intact but are open for optimization after this change since we can now query the broken state directly instead of inferring it from other more expensive state checks

#rb benn.gallagher, michael.bao, vincent.robert

[CL 28934664 by cedric caillaud in ue5-main branch]
2023-10-19 17:24:23 -04:00
chris caulfield
efaf435dfe Chaos - GeometryCollections now use InitialOverlapDepenetrationVelocity from their BodyInstance during initialization
#rb michael.bao, cedric.caillaud

[CL 28924319 by chris caulfield in ue5-main branch]
2023-10-19 13:11:48 -04:00
cedric caillaud
2af9eb98aa Geometry collection optimization : add missing change from 28889155
#rb benn.gallagher, vincent.robert, michael.lentine

[CL 28895666 by cedric caillaud in ue5-main branch]
2023-10-18 18:44:31 -04:00
vincent robert
82cd7138bb Lazy initializer for Dynamic removals attributes
#rb cedric.caillaud

[CL 28876234 by vincent robert in ue5-main branch]
2023-10-18 10:07:37 -04:00
cedric caillaud
f1642e667c ClusterUnion: Fix rendering of GC when in a cluster union
Also fix an uninitialized variable

#rb michael.bao, michael.lentine, jon.sourbeer

[CL 28865263 by cedric caillaud in ue5-main branch]
2023-10-17 21:07:50 -04:00
cedric caillaud
eb82e13ba7 Geometry collection optimization : improve reuse of cached component space bounds
- changed ComponentSpaceBounds to be an Fbox
- CalcBounds now do not check for dynamic collection but when the dynamic collection is modified the component space bounds are invalidated
- invalidation happens in OnPostPhysicsState and when rest transforms are updated
- Cached IsRootBroken state

#rb benn.gallagher, vincent.robert, brice.criswell

[CL 28846696 by cedric caillaud in ue5-main branch]
2023-10-17 14:28:19 -04:00
cedric caillaud
0959ee791b Geometry collection : optimize computation of bounds when GC is unbroken
Also fix an issue with dynamic collection being always dirty after it was once
- Cache root space bounds
- Remove old LocalBounds member as it is a duplicate of the ComponentSpaceBounds
- Remove cvar option to use cached bounds ( now always using them )
- Set the dynamic collection clean when syncing from PT to GT ( and dirty it if any thing changed )

#rb benn.gallagher, michael.bao

[CL 28814378 by cedric caillaud in ue5-main branch]
2023-10-16 15:50:05 -04:00