25 Commits

Author SHA1 Message Date
jimmy andrews
fc05e6ece4 Attempt to make the Static Mesh -> Geometry Collection conversion more robust to missing normal/tangent information by forcing a recompute if either attribute is *entirely* invalid, even if the recompute flag is not set.
#rb rinat.abdrashitov

[CL 26055942 by jimmy andrews in 5.3 branch]
2023-06-16 12:11:53 -04: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
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
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
gustav melich
b613e05259 Dataflow:
- Added SelectionView window
- Bug fixes

#rb Brice.Criswell, Cedric.Caillaud
#preflight 63cf5b06ce73d97996dd47e1

[CL 23834208 by gustav melich in ue5-main branch]
2023-01-24 13:20:58 -05:00
christopher waters
7215f7d4ec Fully moving MaterialDomain to its own header.
#jira none
#preflight 639b4dc335203bc7aa695078

[CL 23531533 by christopher waters in ue5-main branch]
2022-12-15 16:01:51 -05:00
cedric caillaud
11c43eb8cc Fix crash when converting a geometry collectino to another one with missing InstancedMesh attribute on it
#rb trivial
#preflight none

[CL 23475380 by cedric caillaud in ue5-main branch]
2022-12-11 23:12:34 -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
brice criswell
1dc0cf0874 GeometryCollection : Facade API cleanup
#rb Cedric.Caillaud
#preflight 6376d4c0aa2fe2b05f6668e0

[CL 23194460 by brice criswell in ue5-main branch]
2022-11-18 10:22:38 -05:00
cedric caillaud
9fc08afba5 Optimize geaometry collection creation from geometry sources
- Only call reindexMaterial once
- Make sure reindexMaterial  skips validation when calling RemoveElements

#rb brice.criswell, jimmy.andrews
#preflight 63726910b6636838286b850d

[CL 23124875 by cedric caillaud in ue5-main branch]
2022-11-14 15:56:50 -05:00
jimmy andrews
9f0c852b12 make static mesh -> geometry collection conversion respect the static mesh build settings, so normals/tangents are computed with the same settings as used by the static mesh build, and are not recomputed if the build settings do not allow it
#preflight 636c55b0376a9cd6a8d3aeb0
#rb cedric.caillaud

[CL 23072026 by jimmy andrews in ue5-main branch]
2022-11-10 01:18:48 -05: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
henrik karlsson
b5b86c796c This change is a strategical submit for a coming change that removes lots of includes in headers that are included by many files. This change contains adding of includes in files that previously got those includes transitively from other inclkudes
#preflight 6355d4940313c24974b2107b
#rb none

[CL 22783162 by henrik karlsson in ue5-main branch]
2022-10-26 12:57:32 -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
Brice Criswell
016bf1e5be Chaos : Animated Kinematics on deformables
#rb none
#preflight 633f81bf62762f4a1b7a1e13

[CL 22391487 by Brice Criswell in ue5-main branch]
2022-10-06 21:52:53 -04:00
Brice Criswell
6a84bdf9b6 GeometryCollection - Skeleton Import
- Added utility function to import a skeleton into a FTransformCollection
#rb none
#fyi cedric.caillaud, jimmy.andrews
#preflight 632b2d0bd747fe52c8dc963f

[CL 22114552 by Brice Criswell in ue5-main branch]
2022-09-21 11:52:44 -04:00
Brice Criswell
40a2ff491e GeometryCollection : Introspection.
-Use virtual IsA to identify derived classes.
-Fixed typo in api.
#rb cedric.caillaud
#fyi jimmy.andrews
#preflight 632b26bfc7791417aa2ecc48

[CL 22113543 by Brice Criswell in ue5-main branch]
2022-09-21 11:19:57 -04:00
Brice Criswell
a9c8158731 GeometryCollection : AppendSkeletalMesh
Made GeometryCollection::AppendSkeletalMesh more generic so it can take just a FManagedArrayCollection.
- Added a static version of FGeometryCollection::UpdateBoundingBox
- Added a static version of FGeometryCollection::ReindexMaterials
- Added Interface for standard attribute creation
#rb none
#preflight 632500d18c3def91aab79974
#preflight 632508ba743614651496822c

[CL 22063294 by Brice Criswell in ue5-main branch]
2022-09-16 19:43:53 -04:00
Jimmy Andrews
4acfad1f33 add options on geometry collection creation
- make material duplication for internal materials optional
 - ask if user wants to split the mesh by connected component

+ implement the connected component split on the mesh description as part of the conversion, so we can do it before we've thrown out the mesh topology (geometry collection is a rendering rep that can't represent mesh topology; it splits at every UV seam and sharp edge)

#preflight 62fe8062f7404b55a3010ac6

[CL 21448521 by Jimmy Andrews in ue5-main branch]
2022-08-18 15:37:22 -04:00
Jimmy Andrews
d42b54726c fix duplicate materials on new/reset of a geometry collection
#rb trivial
#preflight 62f559e4fb0cb69a5a171751

[CL 21344203 by Jimmy Andrews in ue5-main branch]
2022-08-11 16:23:50 -04:00
cedric caillaud
d0e7989913 Chaos geometry collection : add support for static mesh buildScale parameter
#rb jimmy.andrews
#jira none
#preflight 62b5e2c0d82986248b661805

[CL 20810864 by cedric caillaud in ue5-main branch]
2022-06-24 12:28:07 -04:00
Jimmy Andrews
a0a2371b27 Refactor GeometryCollectionEngineConversion functions to optionally have core FGeometryCollection conversion called separately from material-related conversion that requires the UObject/Component
#rb Brice.Criswell
#preflight 62b4cf8eb822fb9c117bd548

[CL 20801937 by Jimmy Andrews in ue5-main branch]
2022-06-23 17:00:03 -04:00
cedric caillaud
391dc48340 Chaos geometry collection : fix import of external collision to ignore non implicit shapes
#rb none

#ROBOMERGE-AUTHOR: cedric.caillaud
#ROBOMERGE-SOURCE: CL 20529803 via CL 20529819 via CL 20529836
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v954-20466795)

[CL 20531702 by cedric caillaud in ue5-main branch]
2022-06-06 21:10:52 -04:00
cedric caillaud
7090a2cbbd Chaos destruction : import external collision data from create a geometry collection from other geometry collections
#rb none
#jira none
#preflight 629ac618c80cbaebe5f99388

[CL 20498618 by cedric caillaud in ue5-main branch]
2022-06-03 23:13:28 -04:00
Brice Criswell
ed37b71c02 GeometryCollection : Structure change
- Moved AppendStaticMesh and AppendSkeletalMesh to the Engine level
- Moved the Node implementation into GeometryCollectionNodes within the plugin.
#rb trivial
#preflight 6298120a216be32a7627a7e0

[CL 20464135 by Brice Criswell in ue5-main branch]
2022-06-01 21:41:57 -04:00