Commit Graph

63 Commits

Author SHA1 Message Date
semion piskarev
8c3bb7ea9a MeshModelingTools: Allow user to set specific extrude distance in PolyEd.
#rb Rinat.Abdrashitov, Jimmy.Andrews
#jira none
#preflight 622b6e420a614dcb0cfb8e0d

[CL 19355551 by semion piskarev in ue5-main branch]
2022-03-11 11:01:04 -05:00
semion piskarev
8f0169fb91 MeshModelingTools: CubeGrid improvements.
- Fix bugs with how the tool deals with materials.
- Make UV's always stay aligned in the same orientation.
- Make UV's be contiguous when performing multiple steps with the same selection.
- Make sides maintain same groups with repeated steps of the same selection.
- Add support for scaling UV's.
- Add support for focus hotkey.
Also change how frame is chosen when subtracting to avoid some weird flipping logic.

#rb Matija.Kecman, Lonnie.Li
#jira none
#preflight 622b58e032749f363c82087b

[CL 19353955 by semion piskarev in ue5-main branch]
2022-03-11 09:28:29 -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
ryan schmidt
250bc3a820 Re-add a few symbol exports that were lost in UE5 branching.
#rb tyson.brochu
#preflight 62211dad4e07145cce561fd4
#jira none
#rnx

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 19252433 in //UE5/Release-5.0/... via CL 19252680
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v924-19243027)

[CL 19263458 by ryan schmidt in ue5-main branch]
2022-03-04 03:42:23 -05:00
semion piskarev
b3d2f4c811 MeshModelingTools: Fix infinite loop crash in CubeGrid tool when cell size is set to 0.
#rb Rinat.Abdrashitov
#rnx
#jira UE-144218
#preflight 621e30cab20446f11c615210

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 19199179 in //UE5/Release-5.0/... via CL 19200495
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19214872 by semion piskarev in ue5-main branch]
2022-03-01 21:06:13 -05:00
semion piskarev
50dc6daa40 MeshModelingTools: Add a little helper struct to convert lists/sets of eids into stable identifiers and back.
#rb Jimmy.Andrews, Ryan.Schmidt
#jira UE-143789
#preflight 621cef98037be0078ca30b2c

[CL 19175025 by semion piskarev in ue5-main branch]
2022-02-28 11:35:13 -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
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
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
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
semion piskarev
04dbf52cb8 MeshModelingTools: Reorder selection filter in PolyEd to have vertices before faces.
#rb Rinat.Abdrashitov
#rnx
#jira
#preflight 61f316c4801201ab386c4556

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

[CL 18771419 by semion piskarev in ue5-main branch]
2022-01-28 10:23:09 -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
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
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
michael balzer
0d3cc77878 MeshModelingToolset: Minor change to tooltip in PolyGroup layer properties
#rb trivial
#preflight trivial

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18620870 in //UE5/Release-5.0/... via CL 18621114 via CL 18621262
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18621332 by michael balzer in ue5-main branch]
2022-01-14 14:14:20 -05:00
nathan mitchell
d817f21d71 Modeling Tools: Provide support for the IMeshDescriptionProvider to provide "empty" MeshDescriptions, for cases where such instances are desired such as changing topology. This change creates extendable infrastructure parallel to the existing MeshDescription provider implementations so clients of the empty MeshDescription instances do not need localized specialization based on ToolTarget subclasses.
This change addresses the errors found with applying certain modeling tools to skeletal meshes due to the old code not using the appropriately setup MeshDescription for skeletal meshes.

#rb Ryan.Schmidt
#rnx
#jira UE-138420
#preflight 61d8dbc4430de36baa5fd904

#ROBOMERGE-AUTHOR: nathan.mitchell
#ROBOMERGE-SOURCE: CL 18588220 in //UE5/Release-5.0/... via CL 18588227 via CL 18588243
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18588249 by nathan mitchell in ue5-main branch]
2022-01-12 14:53:07 -05:00
michael balzer
574e2479aa MeshModelingToolset: Fix Non-Unity build issues
#jira UE-138058, UE-138126
#preflight trivial
#rb trivial

#ROBOMERGE-AUTHOR: michael.balzer
#ROBOMERGE-SOURCE: CL 18511647 in //UE5/Release-5.0/... via CL 18511723
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18511762 by michael balzer in ue5-release-engine-test branch]
2022-01-04 14:50:17 -05:00
semion piskarev
32e87ed9d4 MeshModelingTools: Add ability to avoid hitting back faces in selection in PolyEdit, to make it easier to work with inside-out meshes. Also save settings for PolyEdit and TriEdit separately.
#rb Jimmy.Andrews
#rnx
#jira none
#preflight 61d37a131f62d3ad4d4a8616

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18508336 in //UE5/Release-5.0/... via CL 18508346
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18508367 by semion piskarev in ue5-release-engine-test branch]
2022-01-04 11:23:06 -05:00
ryan schmidt
36cf6a396d ModelingComponents: add AssetUtils/StaticMeshMaterialUtil.* with various utility functions for working with StaticMesh materials
#rb none
#rnx
#preflight 61bb8cffca02f71eb5afa57d

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18478579 in //UE5/Release-5.0/... via CL 18481519
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18481794 by ryan schmidt in ue5-release-engine-test branch]
2021-12-16 19:54:23 -05:00
jimmy andrews
3816f344cf Interactive selection tool for fracture mode -- allows a rectangle selection + a filter-by-volume selection
#rb matija.kecman
#preflight 61bb674edc58e54b333bb8a9

#ROBOMERGE-AUTHOR: jimmy.andrews
#ROBOMERGE-SOURCE: CL 18476457 in //UE5/Release-5.0/... via CL 18481355
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18481446 by jimmy andrews in ue5-release-engine-test branch]
2021-12-16 19:28:19 -05:00