Commit Graph

153 Commits

Author SHA1 Message Date
ryan schmidt
7c983b8d45 GeometryCore: clean up issues that block non-LWC builds
#rb david.hill
#preflight 620ff48d53204823ae859ccb

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19064974 via CL 19076437 via CL 19077315 via CL 19078956
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19122734 by ryan schmidt in ue5-main branch]
2022-02-24 15:01:41 -05:00
semion piskarev
75e604f6a8 MeshModelingTools: Added comments clarifying things related to FDynamicMesh3, particularly role of per-vertex attributes.
#rb Ryan.Schmidt, Jimmy.Andrews
#jira none
#preflight 62164be40f71e491ccfc2d3c

[CL 19091339 by semion piskarev in ue5-main branch]
2022-02-23 10:09:22 -05:00
ryan schmidt
d948840611 GeometryCore: improve thread utililization in parallel continuation Marching Cubes
#rb david.hill, jimmy.andrews
#jira UE-142582
#preflight 620bd75e615db7478d33eaf1
#rnx
#lockdown aurel.cordonnier

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19058443 in //UE5/Release-5.0/... via CL 19074160
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19076422 by ryan schmidt in ue5-main branch]
2022-02-22 13:45:48 -05:00
steve robb
1cdce38e89 Fix for mismatched deprecation macros.
#rb julien.marchand
#jira UE-140368
#preflight 620bd18c475fb819ddc57c82
#lockdown julien.marchand

#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 18999801 in //UE5/Release-5.0/... via CL 19000202 via CL 19000472
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 19001966 by steve robb in ue5-main branch]
2022-02-15 15:11:48 -05:00
steve robb
a8c1e02c4e Use a union-based representation for types which want to treat its members as both individual named fields and as an array, to avoid strict aliasing issues.
#jira UE-140368
#preflight 6201d6b1e9567e66732291b2
#rb jeff.newquist
#lockdown julien.marchand

#ROBOMERGE-AUTHOR: steve.robb
#ROBOMERGE-SOURCE: CL 18995739 in //UE5/Release-5.0/... via CL 18996215 via CL 18996642
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 19001153 by steve robb in ue5-main branch]
2022-02-15 14:42:20 -05:00
ryan schmidt
b4814d732d ApproximateActors: reduce memory footprint by using compressed or lower-resolution LOD0 meshes
- add FStaticMeshLODResourcesAdapter in MeshConversions module, wrapper that presents StaticMesh LODResources mesh (ie Section buffers) with an API compatible with GeometryCore mesh templates
- add TMeshWrapperAdapterd in GeometryCore, this is a shim for getting any template-API-compatible mesh into a FTriangleMeshAdapterd specifically (required to call some non-template mesh processing functions)

- add support for using StaticMesh LODResources meshes in FMeshSceneAdapter instead of source meshes, controlled by build options flag
- add FMeshSceneAdapter build options flags specifying whether UV/Normal queries are required (default true)
  - when not required, the loaded MeshDescriptions and created DynamicMeshes are packed into FColliderMesh which has a smaller memory footprint, allowing the larger meshes to be freed

- to support above, the SpatialWrappers in MeshSceneAdapter.cpp have been refactored extensively
  - added FCompressedMeshSpatialWrapper which Builds from a temporary FDynamicMesh3 into a FColliderMesh, supports all the same options as FDynamicMeshSpatialWrapper (so a drop-in replacement with less memory usage, but no UV/Normal queries)
  - added FBaseMeshSpatialWrapper, base class for existing FDynamicMeshSpatialWrapper and new FCompressedMeshSpatialWrapper that has shared config settings (can more more here in the future)
  - added FStaticMeshLODResourcesMeshSurfaceAdapter, similar toFMeshDescriptionTriangleMeshSurfaceAdapter, a mesh adapter that filters out any geo that doesn't have a Surface-domain material
  - refactored TStaticMeshSpatialWrapper into TStaticMeshSpatialWrapperBase and subclasses FStaticMeshSourceDataSpatialWrapper and FStaticMeshRenderDataSpatialWrapper, for source mesh vs render mesh
  - added FCompressedStaticMeshSpatialWrapper, variant of FStaticMeshSourceDataSpatialWrapper that stores to a FColliderMesh and releases the source MeshDescription
  - SpatialWrapperFactory() now has logic to build from render mesh vs source mesh vs compressed source mesh
  - moved initial SpatialWrapper construction from AddActors() phase to Build() phase, because now it depends on build settings

- add EMeshDataSourceLODPolicy to IGeometryProcessing::FOptions, with LOD0 Source and LOD0 RenderMesh options
- ApproximateActorsImpl now provides/handles this policy setting, and configures FMeshSceneAdapter to not need UV/Normal queries (not required in this context)
- add bUseRenderLODMeshes option in FMeshApproximationSettings to expose render vs source mesh control at user level

#rb sebastien.lussier, rinat.abdrashitov
#jira UE-141256
#preflight 6206db44054c2e38c473be5d
#rnx

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18963126 in //UE5/Release-5.0/... via CL 18963829 via CL 18964587
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18964607 by ryan schmidt in ue5-main branch]
2022-02-11 18:11:49 -05:00
ryan schmidt
d70294ddfa GeometryCore: do not hold onto intermediate grid in two-pass computations in TImplicitMorphology. The first-pass grid is not used in the second pass, and having both grids allocated simultaneously results in significantly more peak memory allocated during large-grid computations (possibly resulting in OOMs)
#rb david.hill
#rnx
#jira UE-141256
#preflight 62015087384d6a94e8d1f1d4
#lockdown aurel.cordonnier

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18887855 in //UE5/Release-5.0/... via CL 18887872 via CL 18887998
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18888039 by ryan schmidt in ue5-main branch]
2022-02-07 13:03:15 -05:00
michael balzer
826fff9aa7 GeometryCore: Fix compilation error in TDynamicVector
#jira UE-141559
#preflight 61fdb3c9e65336d14554a6d4, 61fdb595cc13ffbd10f484c1
#rb trivial
#lockdown aurel.cordonnier

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18879758 in //UE5/Release-5.0/... via CL 18879764 via CL 18879799
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18884827 by michael balzer in ue5-main branch]
2022-02-07 09:07:19 -05:00
michael balzer
e8c5a8d3b0 GeometryCore: Fix legacy serialization of TDynamicVector<> for LWC data types using double and bulk serialization
#jira UE-141220
#preflight 61fc73c2af01d3caef2aecf8, 61fc73ee5e1fd46228526912
#lockdown aurel.cordonnier
#rb lonnie.li

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18866726 in //UE5/Release-5.0/... via CL 18866736 via CL 18869232
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18869339 by michael balzer in ue5-main branch]
2022-02-04 14:10:42 -05:00
tyson brochu
746ba571d7 Change inequality direction in a check. VertexBoneWeights should have size equal to the number of vertices in the parent mesh *after* compacting, so this will be less than or equal to the size of the compact map, not geq. Includes a unit test for verification.
#jira none
#rnx
#rb rinat.abdrashitov
#preflight 61fd7583b145346c9e8adc2a

[CL 18869206 by tyson brochu in ue5-main branch]
2022-02-04 14:07:49 -05:00
ryan schmidt
1c3ffffff7 Add missing include
#rb aurel.cordonnier
#rnx
#jira UE-141140
#preflight 61fc26b00a50c2606f244b15
#lockdown aurel.cordonnier

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18849508 in //UE5/Release-5.0/... via CL 18849607 via CL 18849970
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18850017 by ryan schmidt in ue5-main branch]
2022-02-03 15:47:19 -05:00
ryan schmidt
172058c824 GeometryCore:
- add FColliderMeshProjectionTarget to allow a FColliderMesh to be used as a projection target
- remove dead code from TDenseGrid3
- add TBlockedDenseGrid3, variant of TDenseGrid3 that lazy-allocates sub-blocks of a dense grid, to reduce memory usage in sparse/narrow-band situations on large uniform grids
- replace usage of TDenseGrid3 in FMarchingCubes with TBlockedDenseGrid3, to reduce memory footprint on large meshing problems
#rb David.Hill, Jimmy.Andrews
#jira UE-141151
#preflight 61fc0007176256ec4f744c4
#lockdown Aurel.Cordonnier

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18846016 in //UE5/Release-5.0/... via CL 18846053 via CL 18846421
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18846468 by ryan schmidt in ue5-main branch]
2022-02-03 13:52:20 -05:00
jimmy andrews
bd5cc87c87 fix crash in sparse octree on growing FDynamicFlagArray by exactly the GrowChunkSize
also fix crash in sparse octree FDynamicFlagArray if Set(Idx, false) where Idx > current Max

#jira UE-141047
#rnx
#preflight 61faf2a0033a864b77dc49a4
#rb rinat.abdrashitov

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18842872 in //UE5/Release-5.0/... via CL 18842881 via CL 18843057
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18843069 by jimmy andrews in ue5-main branch]
2022-02-03 10:14:59 -05:00
ryan schmidt
6ad26b69f0 rename UE::Geometry::TTransform3 to TTransformSRT3, update references
#rb none
#rnx
#jira UE-139757
#preflight 61f572d9e52a8a4a910990f1

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18784197 in //UE5/Release-5.0/... via CL 18784203 via CL 18784222
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18784226 by ryan schmidt in ue5-main branch]
2022-01-29 14:37:53 -05:00
jimmy andrews
8cefe39c38 fix crash in trianglemesh.cpp pointordering if there are no points to sort at the end
#rb cedric.caillaud
#rb rinat.abdrashitov
#rnx
#preflight 61f302811f12674afbc14975

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18768348 in //UE5/Release-5.0/... via CL 18768349 via CL 18768402
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18768407 by jimmy andrews in ue5-main branch]
2022-01-28 00:27:35 -05:00
michael balzer
5d1b51983b GeometryCore: Fix incorrect fix for mesh validation
#preflight none

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18737919 in //UE5/Release-5.0/... via CL 18738334 via CL 18739359
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18739956 by michael balzer in ue5-main branch]
2022-01-26 13:54:16 -05:00
michael balzer
258c2c8253 GeometryCore: Disable CheckValidity before/after visualization
#preflight 61f01ee9fd5285142b1a30f2

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18723574 in //UE5/Release-5.0/... via CL 18723597 via CL 18723720
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18723756 by michael balzer in ue5-main branch]
2022-01-25 11:43:58 -05:00
semion piskarev
80f86dd481 MeshModelingTools: Fix normals not being transferred to overlays in Remesh and Simplify when discarding attributes at start. Fix CompactCopy to properly copy vertex normals/uvs.
#rb Ryan.Schmidt
#rnx
#jira UE-139241
#preflight 61e1eb164b4bd12cbee7bb0a

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18629628 in //UE5/Release-5.0/... via CL 18629633 via CL 18629637
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18629639 by semion piskarev in ue5-main branch]
2022-01-16 10:42:36 -05:00
tyson brochu
eab2726ba2 Path Extrude Tool: support a single-segment path
#jira UE-138980
#rnx
#rb semion.piskarev
#preflight 61e1b31b076be0fc4e17bbc6

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18619742 in //UE5/Release-5.0/... via CL 18620226 via CL 18620677
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18620970 by tyson brochu in ue5-main branch]
2022-01-14 13:58:37 -05:00
ryan schmidt
b1793b0c57 GeometryScript: fix issue with CompactMaterialIDs where if material ID set is modified but still compact, compacted material list was incorrect
ModelingComponents: add some more return values to ::CompactAttributeValues() to help to identify above case
#rnx
#jira UE-138808
#preflight 61e083cf797757aace87333e

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18613584 in //UE5/Release-5.0/... via CL 18613615 via CL 18613626
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18613631 by ryan schmidt in ue5-main branch]
2022-01-13 21:33:38 -05:00
michael balzer
905399abd3 GeometryCore: Fix crash in TMeshWindingNumberGrid for zero cell size
#preflight 61de32b86a076ddb53d362b4

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18588632 in //UE5/Release-5.0/... via CL 18588644 via CL 18588662
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18588680 by michael balzer in ue5-main branch]
2022-01-12 15:20:20 -05:00
matija kecman
dbb5f10b2d GeometryCore: Make top and front of steps generated by StairGenerator have different polygroup face ids
This slightly improves the UX when inserting edge loops because the retriangulation option works in a more intuitive way when face groups are planar

#rb lonnie.li rinat.abdrashitov tyson.brochu
#rnx
#jira none
#preflight 61deb3ba202484edfb4f4c9a

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18582670 in //UE5/Release-5.0/... via CL 18582673 via CL 18582678
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18582687 by matija kecman in ue5-main branch]
2022-01-12 06:14:22 -05:00
tyson brochu
967261a396 Path extrude tool: add support for open curves in PolygonEdgeMeshGenerator
#jira UE-138665
#rnx
#rb rinat.abdrashitov semion.piskarev
#preflight 61dc756a676009ad46407407

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18562400 in //UE5/Release-5.0/... via CL 18562412
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18562432 by tyson brochu in ue5-release-engine-test branch]
2022-01-10 13:21:53 -05:00
matija kecman
88813c4ec3 MeshModelingToolset: Some minor comment/code cleanup
#rnx
#rb rinat.abdrashitov
#jira none
#preflight 61d8770e81634832b01dafad

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18558515 in //UE5/Release-5.0/... via CL 18558517
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18558526 by matija kecman in ue5-release-engine-test branch]
2022-01-10 07:51:15 -05:00
lonnie li
dcbe99a51b ModelingTools: Fix BakeVertex alpha channel preview.
#rb michael.balzer
#rnx
#jira none
#preflight 61d5c21a5d522c9b4090cdb9

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18523161 in //UE5/Release-5.0/... via CL 18523181
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18523207 by lonnie li in ue5-release-engine-test branch]
2022-01-05 14:40:23 -05:00