Commit Graph

109 Commits

Author SHA1 Message Date
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
3c0e88d76b Geometry collection : fix warning when cooking with strip on cook enabled ( non-nanite code path )
#rb none
#preflight 63e1c8f014326f9a4096c097

[CL 24045279 by cedric caillaud in ue5-main branch]
2023-02-07 00:30:09 -05:00
jimmy andrews
000eda2356 move geometry collection bone selected material out of the user-exposed materials array for new geometry collections
#rb cedric.caillaud
#preflight 63e131114d25c400b7119455

[CL 24040296 by jimmy andrews in ue5-main branch]
2023-02-06 18:02:08 -05:00
cedric caillaud
1a2086a540 Geometry collection : fix code to support removal of geometry, vertex and face groups when nott using nanite ( to properly support StripOnCook for ISMPool )
- Better support for bounds computation using transform bounding box attribute ( this code path can now use ISPC )
- make sure that using ISMPool is equivalent to having visible geometry in the TickComponent method

#rb benn.gallagher
#preflight 63dcc0fcc2257e56f4919a6a

[CL 24009697 by cedric caillaud in ue5-main branch]
2023-02-04 00:32:04 -05:00
cedric caillaud
bfe2716bf7 Chaos : fix SetEnableNanite to not call CreateNaniteData outisde of the editor builds
#rb none
#preflight none

[CL 23961645 by cedric caillaud in ue5-main branch]
2023-02-01 19:44:59 -05:00
cedric caillaud
113cf52b89 Chaos : fix function being only built for Editor
#rb trivial
#preflight none

[CL 23961598 by cedric caillaud in ue5-main branch]
2023-02-01 19:43:43 -05:00
cedric caillaud
e449c8aa62 Geometry Collection , add setter on EnableNanite UProperty
#rb trivial
#preflight none

[CL 23961546 by cedric caillaud in ue5-main branch]
2023-02-01 19:41:36 -05:00
jimmy andrews
829a30210c rework how UVs are accessed in geometry collection: make each UV layer a separate attribute, so it is impossible to have an inconsistent number of UVs per vertex, and we do not allocate so many small arrays. Provide a variety of helper functions to make the transition as easy as possible.
#rb cedric.caillaud
#rb brice.criswell
#preflight 63d074be976daa618cdcd957

[CL 23844522 by jimmy andrews in ue5-main branch]
2023-01-25 01:36:28 -05:00
cedric caillaud
123ee3f107 Geometry collection : when reseting a geometry collection from another, make sure to only recreate convex hulls if necessary
#rb none
#preflight 63cf34c2ef20a5272ddee37b

[CL 23826389 by cedric caillaud in ue5-main branch]
2023-01-23 21:44:00 -05:00
cedric caillaud
d4a7d1e29b Remove dataflow from cook builds
#rb brice.criswell
#preflight 6398e11935203bc7aa8a2f4f

[CL 23500216 by cedric caillaud in ue5-main branch]
2022-12-13 18:29:19 -05:00
cedric caillaud
c7fc9c517a geometry collection : only recreate asset simulation data when necessary ( only applies when in editor )
- 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]
2022-12-13 18:16:59 -05:00
cedric caillaud
b960e1ce31 geometry collection : fixed material consolidation and make sure instanced mesh array is properly generated when building a GC in dataflow
- 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]
2022-12-02 00:40:18 -05:00
cedric caillaud
4a17690360 Enable strip on cook to work without nanite enabled
#rb brice.criswell
#preflight 636962624d3c1d9d927d5c40

[CL 23025344 by cedric caillaud in ue5-main branch]
2022-11-08 04:24:06 -05:00
henrik karlsson
ed85af7728 Non unity/pch compile fixes
Cmdline: UnrealEditor Win64 debug -nodebuginfo -nolink -allcores -DisableUnity -CppStd=Cpp17 -allmodules -nopch

#rb none
#preflight skipped

[CL 22799084 by henrik karlsson in ue5-main branch]
2022-10-26 19:29:11 -04:00
cedric caillaud
dba9dd5ecb Chaos : Dataflow : add geometry collection asset specific nodes
#rb gustav.melich, brice.criswell
#preflight 6358159ce456a68082b43ba9

[CL 22798238 by cedric caillaud in ue5-main branch]
2022-10-26 19:04:47 -04:00
Jimmy Andrews
e648a4cb5e Improved user control and visibility into proximity and connection graph generation for fracture:
- Added a Proximity tool to Fracture Mode to visualize and change generation settings for GeometryCollection bone proximity.
 - Added more user controls for how proximity is generated, including a "Convex Hull distance" method for deciding contact, which should help include connections that were missed by the default proximity detection method.
 - Made proximity settings live on the GeometryCollection as (non-cooked) attributes, so proximity re-generates with the desired method after further fracturing/clustering.
 - Added an option to automatically convert the proximity graph to a pre-computed connection graph used by simulation.
 - Reduce redundant proximity calculations: Be more consistent in relying on FGeometryCollectionEdit to update proximity as needed, and call 'RequireProximity' instead of 'UpdateProximity' in cases where we expect a valid proximity may already be present.

#rb cedric.caillaud
#preflight 6356d21b0313c24974eea2f8

[CL 22735429 by Jimmy Andrews in ue5-main branch]
2022-10-24 16:24:39 -04:00
cedric caillaud
a59a81e2b9 Geometry collection : added support for ISMPools, it only works if an ISMPool actor is assigned to the GC instance
Limitations : Currently this requires the GC to be reset to recompute the list of instanciable meshes and their corresponding indices
Mitigation : this can be turned off using the following cvar : p.Chaos.GC.UseISMPool

#rb brice.criswell, Krzysztof.Narkowicz
#preflight 63519a8af92c325024c32137

[CL 22705192 by cedric caillaud in ue5-main branch]
2022-10-21 19:51:57 -04:00
marc audy
311f7464bf Updated ../Engine/Source/Runtime/... to inline gen.cpp files
Before:
3648 unity files
Total CPU Time: 47886.140625 s
Total time in Parallel executor: 498.81 seconds

After:
3548 unity files
Total CPU Time: 46643.828125 s
Total time in Parallel executor: 486.06 seconds

#jira
#preflight

[CL 22173263 by marc audy in ue5-main branch]
2022-09-24 13:57:58 -04:00
cedric caillaud
7c7730284f Chaos geometry collection : add asset side ability to use size specific data and apply propgate to instance when placing it in a level
#rb brice.criswell
#jira none
#preflight 6324b5f88131e92d65f2132d

[CL 22064938 by cedric caillaud in ue5-main branch]
2022-09-16 21:25:31 -04:00
cedric caillaud
b112fae3bd Chaos : Deprecate remove on fracture feature
- update headless chaos unit test

#jira none
#rb benn.gallagher, brice.criswell, chris.caulfield
#preflight 6322accc29254beccb14bbfe

[CL 22035762 by cedric caillaud in ue5-main branch]
2022-09-15 15:14:33 -04:00
cedric caillaud
9a1c2929e1 Chaos : fix cook warning related to selection material in geometry collection
- Make sure to remove reference to the selection material in the material array when cooking and saving

#rb brice.criswell, jimmy.andrews
#jira UE-161748
#preflight 630574cca45b007ea2925d8d

[CL 21572919 by cedric caillaud in ue5-main branch]
2022-08-25 17:14:44 -04:00
cedric caillaud
7cb43e2d16 Chaos : break and shock damage propapgation
- add per component and geo collection asset damage propagation data
- store damage propapagtion info at the proxy level ( sim parameters )
- refactor clustering code to properly account for procxy suim parameters
- add shock propagation model complementary to the break propagation model

#rb none
#jira none
#fyi brice.criswell
#preflight 63053a185a5d4e46243141d9

[CL 21520742 by cedric caillaud in ue5-main branch]
2022-08-23 17:17:36 -04:00
Jimmy Andrews
e9cefb6e41 prevent crash if nanite data is null on geometry collection object
#preflight 62fa681f153b17e74635fb4d

[CL 21388535 by Jimmy Andrews in ue5-main branch]
2022-08-15 12:44:23 -04:00
Jimmy Andrews
4b7243cb76 Changes to make transient / un-Saved properties work more logically for Geometry Collection data:
- make the ManagedArrayCollection 'Saved' flag control whether the whole property is saved, rather than just its data

- when transacting, save everything (ignore the Saved flag)

- also when loading, remove properties that were not in the map we loaded from

- stop manually removing some unsaved attributes, as the Saved flag should take care of that instead

- stop loading from the DDC (after already loading from the transaction history) for every undo/redo transaction

#preflight 62c75a60b3789302b1bb7d3e
#rb cedric.caillaud, brice.criswell, max.whitehead

[CL 21007351 by Jimmy Andrews in ue5-main branch]
2022-07-08 10:54:36 -04:00
Jimmy Andrews
0acb496b28 Add a Convex OverlapRemovalShrinkPercent variable to the geometry collection convex generation settings, to compute overlap removal on scaled-down convex hulls (without baking that scale into the hull).
#rb cedric.caillaud
#preflight 62b5d6470110bdb3314505b7
#robomerge EngineMerge

[CL 20810090 by Jimmy Andrews in ue5-main branch]
2022-06-24 11:44:32 -04:00