Commit Graph

74 Commits

Author SHA1 Message Date
ryan schmidt
1db3f2bad8 ModelingComponents: pass visibility filter to SpatialCache query in ModelingSceneSnappingManager snap query, so that hidden objects are not included in the set of valid targets
#rb tyson.brochu
#jira UE-145161
#preflight 62278878671c913c051ec8c6
#rnx
#lockdown simon.tourangeau

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19305700 in //UE5/Release-5.0/... via CL 19306610
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19347211 by ryan schmidt in ue5-main branch]
2022-03-10 21:07:11 -05:00
lonnie li
8ed8a29e69 GeometryScript: Added CreateNewTexture2DAsset function
#rb semion.piskarev
#jira none
#preflight 62278b28e83598518f37e7b2

[CL 19309284 by lonnie li in ue5-main branch]
2022-03-08 15:11:38 -05:00
semion piskarev
36e35bdaac MeshModelingTools: Fix crash when hitting delete and marquee selecting at the same time in PolyEdit.
#rb Jimmy.Andrews
#rnx
#jira UE-143243
#preflight 6210193fad11de9431d2afa4


#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 19093207 via CL 19093826 via CL 19094601 via CL 19096102 via CL 19105343
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19146652 by semion piskarev in ue5-main branch]
2022-02-25 09:43:15 -05:00
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
ryan schmidt
2df20e1435 ModelingTools: fix issue in MeshSceneAdapter introduced by recent refactor. FActorChildMesh::MeshSpatial was being always initialized to nullptr, and only updated if the mesh was decomposed. Add code to catch this case in future, and a bit of header documentation explaining the connections between the various data structures.
#rb sebastien.lussier
#jira UE-142577
#preflight 620ab73d6e5d06a542a3e7fa
#rnx

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

[CL 18988058 by ryan schmidt in ue5-main branch]
2022-02-14 18:33:21 -05:00
ryan schmidt
f5d5ecc309 ModelingTools: fix LWC issues in scene snapping and AddPrimitiveTool. Convert MeshDebugDraw grid-drawing functions to use double instead of float, and update call sites.
#rb jimmy.andrews
#jira UE-142391
#preflight 620ab60d583261b0a665cdc2
#rnx

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

[CL 18988038 by ryan schmidt in ue5-main branch]
2022-02-14 18:32:46 -05:00
lonnie li
5d135d0aa8 ModelingTools: Fixed race condition when setting override render material on preview mesh in BakeTexture & BakeAll.
#rb jimmy.andrews
#rnx
#jira UE-142326
#preflight 62075a203a5afc57e3bbf75c
#lockdown aurel.cordonnier

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18980712 in //UE5/Release-5.0/... via CL 18980929 via CL 18981207
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18981374 by lonnie li in ue5-main branch]
2022-02-14 12:20:58 -05:00
ryan schmidt
c8374ef04e ModelingTools: fix static analysis issue
#rb jimmy.andrews
#jira none
#preflight 62072ff7ab22f3d80a6045e9
#rnx

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

[CL 18981368 by ryan schmidt in ue5-main branch]
2022-02-14 12:20:25 -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
ccde341d7d update FTransform3d to FTransformSRT3d
#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18952618 via CL 18953740 via CL 18954339
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18954439 by ryan schmidt in ue5-main branch]
2022-02-11 12:19:59 -05:00
ryan schmidt
4d673ed7f5 ApproximateActors: explicitly release any allocated MeshDescriptions on destruction of TStaticMeshSpatialWrapper in FMeshSceneAdapter. This reduces memory usage peaks in Approximate Actors generation (Merge Actors and HLOD).
#rb sebastien.lussier
#jira UE-141256
#preflight 62015db29144319e2013b9fe
#rnx

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

[CL 18893541 by ryan schmidt in ue5-main branch]
2022-02-07 16:33:45 -05:00
fred kimberley
7fbfaf57c8 Require explicit constructors/casts when converting between FVector, FVector3d, and FVector3f.
#jira UE-122078
#rb Andrew.Davidson, Colin.McGinley
#preflight standard build

#ROBOMERGE-AUTHOR: fred.kimberley
#ROBOMERGE-SOURCE: CL 18817999 in //UE5/Release-5.0/... via CL 18818012 via CL 18822871
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18824721 by fred kimberley in ue5-main branch]
2022-02-02 07:59:31 -05:00
andrew davidson
60a1fa84a7 Fix FVector2D variant casts - Plugins
Submitted on behalf of fred.kimberley
#rb andy.davidson
#preflight 61f86c4ca6632a34f35dfbca

#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 18800855 in //UE5/Release-5.0/... via CL 18802061 via CL 18802724
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18810177 by andrew davidson in ue5-main branch]
2022-02-01 12:08:54 -05:00
semion piskarev
e0d63c57d2 MeshModelingTools: Add SelectAll and InvertSelection actions to PolyEd.
#rb Lonnie.Li
#rnx
#jira none
#preflight 61f94857a6632a34f371a9b9

[CL 18808632 by semion piskarev in ue5-main branch]
2022-02-01 10:16:18 -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
lonnie li
4afd669dcb ModelingTools: Clear TargetWorld member during Shutdown of SingleSelectionMeshEditingTool and MultiSelectionMeshEditingTool
#rb ryan.schmidt michael.balzer
#rnx
#jira none
#preflight 61f435dd74510448a6865d14

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18777332 in //UE5/Release-5.0/... via CL 18780413 via CL 18780555
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18780558 by lonnie li in ue5-main branch]
2022-01-28 18:40:54 -05:00
lonnie li
e1c7ca927e Fix non-unity error in SingleSelectionMeshEditingTool & MultiSelectionMeshEditingTool
#rb trivial
#rnx
#jira none
#preflight 61f421f76b5aea38e5bd90fb

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18773159 in //UE5/Release-5.0/... via CL 18773298 via CL 18773779
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18773785 by lonnie li in ue5-main branch]
2022-01-28 12:44:22 -05:00
lonnie li
d041f2273b ModelingTools: Fix crash when reloading levels during an AutoLOD compute
#rb ryan.schmidt
#rnx
#jira UE-139485
#preflight 61f38478da54035207ecae9b

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18771194 in //UE5/Release-5.0/... via CL 18771204 via CL 18771302
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18771314 by lonnie li in ue5-main branch]
2022-01-28 10:18:10 -05:00
semion piskarev
5aa84b9176 MeshModelingTools: Fix triangle marquee select not working in TriEdit because it was querying group id from the mesh instead of topology.
#rb Rinat.Abdrashitov
#rnx
#jira none
#preflight 61f316a07a7f0d39ddbe7687

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18771076 in //UE5/Release-5.0/... via CL 18771094 via CL 18771273
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18771278 by semion piskarev in ue5-main branch]
2022-01-28 10:14:42 -05:00
mark lintott
4ab7eeb4d6 Non Unity Fixes
#jira none
[FYI] semion.piskarev
#rb trivial
#preflight 61f3d2697a7f0d39dddb8c52

#ROBOMERGE-AUTHOR: mark.lintott
#ROBOMERGE-SOURCE: CL 18769834 in //UE5/Release-5.0/... via CL 18769843 via CL 18769895
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18769896 by mark lintott in ue5-main branch]
2022-01-28 06:59:03 -05:00
semion piskarev
b1f4696320 MeshModelingTools: Add marquee face selection in PolyEdit. Fix minor bug where shift+clicking away from the mesh would clear selection.
#rb Matija.Kecman
#rnx
#jira none
#preflight 61f2f27c8255dba0d6b4ab52

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18761187 in //UE5/Release-5.0/... via CL 18761737 via CL 18763050
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18763416 by semion piskarev in ue5-main branch]
2022-01-27 17:09:13 -05:00
semion piskarev
2bc05afe97 MeshModelingTools: Move and rename UMeshSelectionMechanic, since it is currently UV Editor specific. Move and rename FDynamicMeshSelection since it is only used in UV Editor. Make the mechanic use FUVEditorUXSettings directly.
#rb Ryan.Schmidt
#rnx
#jira none
#preflight 61eae31dc557ec20018242f6

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18693459 in //UE5/Release-5.0/... via CL 18693623 via CL 18693716
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18693769 by semion piskarev in ue5-main branch]
2022-01-21 14:31:16 -05:00
semion piskarev
766a2fe2db MeshModelingTools: Fix height mechanic not falling back to line distance.
#rb Matija.Kecman
#rnx
#jira none
#preflight 61e9a570c92021e5359dacb2

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18678172 in //UE5/Release-5.0/... via CL 18678176 via CL 18678187
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v902-18672795)

[CL 18680330 by semion piskarev in ue5-main branch]
2022-01-20 15:44:14 -05:00
semion piskarev
0128d4c695 MeshModelingTools: Make CollectSurfacePathMechanic remove preview vertex if there isn't currently a valid one.
#rb Rinat.Abdrashitov
#rnx
#jira UE-118031
#preflight 61e0a3c5797757aace8bd7ff

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

[CL 18621720 by semion piskarev in ue5-main branch]
2022-01-14 14:28:47 -05:00
ryan schmidt
e61f1edc0c ModelingComponents: handle situation where StaticMesh SectionInfoMap is empty or partially populated in AssetUtils::GetStaticMeshLODAssetMaterials()
GeometryScript: explicitly clear SectionInfoMap in CopyMeshToStaticMesh() instead of clearing entries one at a time, which is wrong if only some sections are in the map
#rnx
#jira UE-138808
#preflight 61df651f9c1e5c90b61a54ad

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18597446 in //UE5/Release-5.0/... via CL 18597457 via CL 18597465
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18597480 by ryan schmidt in ue5-main branch]
2022-01-13 11:08:19 -05:00