Commit Graph

98 Commits

Author SHA1 Message Date
brett miller
af48a5573d ChaosCaching
-- Removed per observed controls for StartMode, CacheMode and moved to a single set of controls on the cache manager.
-- Cache takes name from observed component.
-- Placed CacheCollection automatically set to Kinematic, non-placed are Record
-- Random access start frame
-- Consistenty record all transforms in Actor space
-- Compatible with Sequencer control
-- Created Playback only CacheManager subclass
-- GeometryCollection recording abides component flags to record/playback breaking/collision/trailing events

#rb benn.gallagher
[FYI] brice.criswell


#ROBOMERGE-SOURCE: CL 16684501
#ROBOMERGE-BOT: (v835-16672529)

[CL 16684502 by brett miller in ue5-main branch]
2021-06-16 01:29:21 -04:00
brett miller
d0523f95e5 Fracture Mode Editor
-- correct behavior for shift and ctrl selection
-- Select Inverse abides ViewLevel

[FYI] brice.criswell


#ROBOMERGE-SOURCE: CL 16669650
#ROBOMERGE-BOT: (v834-16658389)

[CL 16669654 by brett miller in ue5-main branch]
2021-06-15 00:47:01 -04:00
graham wihlidal
67923137a7 More instance data memory and CPU optimizations, and general refactoring.
* Moved Nanite resource ID and hierarchy offset back to primitive data (indirection cost is largely noise these days, and memory savings is more important - GetInstanceData() fetches this data and stores in the pre-existing registers so all the callsites don't have to worry about it).
* Removed FNaniteInfo from FPrimitiveInfo (and the type itself) in favor of just having a 32bit per-instance hierarchy root offset. Hierarchy offset and runtime resource ID just sourced from primitive.
* Removed PrimitiveID from CPU instance data (GPU still needs it). This value was redundantly stored per-instance, and now the GPU Scene upload just blits it over from primitive when the instance data is uploaded.
* Added new virtual GetNaniteResourceInfo on FPrimitiveSceneProxy that retrieves the Nanite resource ID and hierarchy offset stored on a given primitive (needed now that FPrimitiveInstance doesn't cache a copy). The non-virtual FPrimitiveSceneProxy::IsNaniteMesh() helper is used to avoid this virtual function call for non-Nanite proxies.
* Removed deprecated and no longer referenced Nanite::FResources array on FNaniteGeometryCollectionSceneProxy
* Removed expensive per-instance checks() in a few spots
* Stubbed out upcoming per instance payload allocator offset
* Removed deprecated and never referenced non-GPUScene GetInstanceData uniform buffer path
* Significantly cleaned up and optimized a lot of ISM instance data retrieval, including avoiding unnecessary FRenderTransform <-> FMatrix conversions.
* Removed GetInstanceShaderValues API, it was inefficient and annoying to require retrieval of all parameters when often only one or two of them were ever used. In some cases even the origin was unused but .w was needed because of the per-instance random packing.
* Implemented explicit GetInstanceRandomID() accessor to fetch (under current packing) Origin.W without exposing this to the callsites
* Implemented public API for GetInstanceLightMapData(), since the internal version was only accessible by GetInstanceShaderValues()
* Renamed GetInstanceShaderCustomDataValues() -> GetInstanceCustomDataValues() for API consistency

#rb jason.nadro, krzysztof.narkowicz
[FYI] rune.stubbe, brian.karis


#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 16583156
#ROBOMERGE-BOT: (v828-16531559)
#ROBOMERGE-CONFLICT from-shelf

[CL 16583193 by graham wihlidal in ue5-main branch]
2021-06-07 23:55:28 -04:00
jimmy andrews
8a78138782 Add option to use full precision UVs on geometry collection scene proxy
#rb brett.miller, tyson.brochu, david.hill
#preflight 60b6645c5719ca0001388544

#ROBOMERGE-SOURCE: CL 16518423 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v826-16501804)

[CL 16518431 by jimmy andrews in ue5-main branch]
2021-06-01 14:20:47 -04:00
Brice Criswell
e79975ad6f Chaos : GeoemtryCollection (Integ from Main CL:16450371)
- Force Size Specific data to always have a single element.
#jira none
#rb Benn.Gallagher
#preflight 60aeaeebb44aa20001a82ea5

[CL 16476610 by Brice Criswell in ue5-main branch]
2021-05-26 17:46:30 -04:00
brett miller
9c13522d2c GeometryCollection
-- implemented deferred initialization using the existing SimulatePhysics property and SetSimulatePhysics blueprint function.
-- Cleaned out old caching code

#jira FROST-1065
#rb brice.criswell

#ROBOMERGE-SOURCE: CL 16461543 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v818-16446889)

[CL 16461679 by brett miller in ue5-main branch]
2021-05-25 22:01:05 -04:00
Brice Criswell
dd608a6141 Chaos : GeoemtryCollection (Integ from Main CL:16450371)
- Transfer defaults to size specific data
#jira UE-116415
#rb None
#fyi Benn.Gallagher
#preflight 60ad5700bb30900001cac176

[CL 16456707 by Brice Criswell in ue5-main branch]
2021-05-25 17:13:53 -04:00
Brice Criswell
05504fb252 Chaos : Geometry Collection : (Review Update)
Collision Attribute Restructuring.
-	Updated the size specific data to be the primary container for collision settings within the geometry collection.
-	Removed non size specific default parameters from the asset.
-	Added support for Capsule collisions.
#jira none
#rb Benn.Gallagher
#fyi Brett.Miller, Cedric.Caillaud
#okforgithup, public, internal
#preflight 60abfa1c88460e0001fbae77

[CL 16439958 by Brice Criswell in ue5-main branch]
2021-05-24 16:21:06 -04:00
Brice Criswell
139a4bed28 Chaos : Geometry Collection
Collision Attribute Restructuring.
-	Updated the size specific data to be the primary container for collision settings within the geometry collection.
-	Removed non size specific default parameters from the asset.
-	Added support for Capsule collisions.
#jira none
#rb Benn.Gallagher
#fyi Brett.Miller, Cedric.Caillaud
#okforgithup, public, internal
#preflight 60a91c321d78490001621e41

[CL 16429701 by Brice Criswell in ue5-main branch]
2021-05-22 12:07:31 -04:00
brett miller
41ab113ba1 Chaos Event Manager
-- Removed particle handle pointers from event payloads, as these are unsafe on the GT where they are often utilized.
-- Test proxy pointers when used on the game thread in case the proxy is pending destruction and is no longer valid.
-- Moved transform of particle handle -> transform group index for geometry collection event to PT where it is safe to reference the particle handle.

#jira UE-115834
#rb brice.criswell

[CL 16409919 by brett miller in ue5-main branch]
2021-05-20 16:50:29 -04:00
julien marchand
b4484ee0d0 Fix to allow accessing the specific BodyInstance when the InstancedStaticMeshComponent has an array of BodyInstance instead of retrieving the default one in the primitive component base class.
[at]jaco.vandyk
#jira Frost-2381
#rnx

#ROBOMERGE-SOURCE: CL 16370533 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v804-16311228)

[CL 16372550 by julien marchand in ue5-main branch]
2021-05-18 14:32:57 -04:00
peter knepley
e07885e125 GeometryCollection
-- Support for Nanite to GeometryCollection conversion
-- Support for multiple UV sets

#jira UE-114992
#rb jimmy.andrews
[FYI] brice.criswell

#ROBOMERGE-OWNER: peter.knepley
#ROBOMERGE-AUTHOR: brett.miller
#ROBOMERGE-SOURCE: CL 16363667 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v804-16311228)
#ROBOMERGE-CONFLICT from-shelf

[CL 16370251 by peter knepley in ue5-main branch]
2021-05-18 13:03:42 -04:00
brett miller
2a138e24bc UGeometryCollection
-- Wrapped GeometrySource in header tool directive to be stripped out of shipping game builds.

#jira UE-115272
#rb brice.criswell
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16248584 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v799-16237190)

[CL 16263785 by brett miller in ue5-main branch]
2021-05-10 23:54:01 -04:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
brett miller
3e4e8bd152 GeometryCollectionComponent
-- Added state machine logic and scene proxy callbacks for triggering when motion begins and ends.

#jira UETOP-1546
#rb graham.wihlidal
#lockdown nick.whiting

#ROBOMERGE-SOURCE: CL 16178376 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v792-16166999)

[CL 16178381 by brett miller in ue5-main branch]
2021-05-01 17:51:29 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
graham wihlidal
30b16a59f4 Do not skip InitDynamicData result if called from geometry collection initialization. Fixes corrupt rendering in TM-ChaosDestruction.
#rb trivial
[FYI] michal.lentine, brice.criswell
#lockdown nick.whiting
#jira UE-114231

#ROBOMERGE-SOURCE: CL 16107943 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16107947 by graham wihlidal in ue5-main branch]
2021-04-24 04:37:11 -04:00
graham wihlidal
ba3a7bf41e Rewrite of UGeometryCollection::InitDynamicData()
* Implemented thread safe object pool / free list allocator (FGeometryCollectionDynamicDataPool)
 * Added Chaos stats for total transforms and changed transforms
 * Removed TransformsAreEqual mechanism that caused full transform updates to occur unnecessarily for 2 subsequent frames, as the state wasn't stable until the previous 3 frames were stable. This was incredibly innefficient for GPUScene, etc..
 * InitDynamicData now returns the data allocation (which can be null if not dynamic or if no transforms have changed), users of this now check if it's available, and either skip or fall back to the static/rest path otherwise
 * Cleaned up some code paths by combining them with similar passes
 * Removed tons of allocations, including heavy allocations/memcopies of transform data, even on stable frames (which were immediately deallocated right after allocation and setup of the dynamic data)
 * Saves ~0.5 to 1.0ms of CPU time in heavy scenes
 * Saves ~0.5ms of GPU time doing far less GPUScene updates
 * Main optimization around this refactor is forthcoming in a followup CL (avoid calling MarkRenderTransformDirty in TickComponent).

#rb brett.miller, brice.criswell
#lockdown nick.whiting
[FYI] brian.karis, rune.stubbe
#jira UETOP-1088

#ROBOMERGE-SOURCE: CL 16059409 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)

[CL 16061411 by graham wihlidal in ue5-main branch]
2021-04-20 10:45:04 -04:00
Benn Gallagher
c7cced57cd Geometry Collection : Cache Attribute
- Strip geometry attributes from the collection when using the collection as a simulation viewer.
- Use the transferred bounds on the minimal asset for rendering bounds.
- Minor clean to expose user controllable cache only state to the GeometryCollectionObject


#jira UE-113611
#rb Brett.Miller
[FYI] Graham.Whlidal
#lockdown nick.whiting

#ROBOMERGE-OWNER: Benn.Gallagher
#ROBOMERGE-AUTHOR: brice.criswell
#ROBOMERGE-SOURCE: CL 16052869 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)
#ROBOMERGE-CONFLICT from-shelf

[CL 16060655 by Benn Gallagher in ue5-main branch]
2021-04-20 09:50:07 -04:00
brice criswell
e66c950529 Chaos : Geometry Collection
- Remove GUID support from the FManagedArrayCollection, its to slow and should be generated on-demand within editor operations.

#lockdown nick.whiting
#rb brett.miller
#jira UE-113296

#ROBOMERGE-SOURCE: CL 15986095 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v787-15839533)

[CL 15990052 by brice criswell in ue5-main branch]
2021-04-13 10:51:11 -04:00
brice criswell
46fdf49d6b Chaos : Secondary Particle Emission
-- Changed how particle to proxy mapping is implemented. Removed the map maintained on the solver. Each particle now maintains its own pointer to the associated proxy. Internal cluster particles are linked to multiple proxies (necessarily: they need this information to mark proxies dirty during the buffering process). Internal cluster particles have a set of proxy pointers that are used in situations that require it.

#jira none
[FYI] brett.miller
#rb brett.miller,benn.gallagher
#preflight 605e25c90944f600013b5281

#ROBOMERGE-OWNER: brice.criswell
#ROBOMERGE-AUTHOR: brice.criswell
#ROBOMERGE-SOURCE: CL 15843324 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
#ROBOMERGE-CONFLICT from-shelf

[CL 15843590 by brice criswell in ue5-main branch]
2021-03-26 21:45:20 -04:00
cedric caillaud
d8aed49cad Chaos Physics - add support for moving geometry collection
- account for component transform on a per frame basis
- updates kinematic particle accordingly
- add missing calls to the solver to support it

#rb brice.criswell, brett.miller
#jira none

[CL 15833163 by cedric caillaud in ue5-main branch]
2021-03-25 17:47:32 -04:00
brett miller
7b72956dac Fracture Mode
-- re-instated shift-b to toggle bone colors in fracture mode.

#jira UE-110753
#rb none

#ROBOMERGE-SOURCE: CL 15756406 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)

[CL 15767306 by brett miller in ue5-main branch]
2021-03-22 14:37:32 -04:00
brice criswell
ccd419269d Chaos : Destruction
Re-exposed the connection method enums to the GeometryCollectionObject.
#rb None
#jira None
#okforgethub public, internal
#preflight 605447dd168034000119dc7b

#ROBOMERGE-OWNER: brice.criswell
#ROBOMERGE-AUTHOR: brice.criswell
#ROBOMERGE-SOURCE: CL 15745578 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)
#ROBOMERGE-CONFLICT from-shelf

[CL 15750237 by brice criswell in ue5-main branch]
2021-03-19 15:28:38 -04:00
brett miller
167980ad12 GeometryCollectionComponent
-- wrapped PostEditChangeChainProperty in WITH_EDITOR to prevent build error for runtime.

#jira none
#rb none

#ROBOMERGE-SOURCE: CL 15745059 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)

[CL 15745060 by brett miller in ue5-main branch]
2021-03-18 23:55:49 -04:00