Commit Graph

53 Commits

Author SHA1 Message Date
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
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
semion piskarev
d55f59f0a5 MeshModelingTools: numerous Path Extrude fixes and improvements:
- Fixed snapping not disabling with Shift key.
- Fixed inability to end path if enabling snapping after starting the path.
- Fixed some undo items being undoable in certain circumstances.
- Fixed 0 height paths being treated differently than what PolyExt does (now they are unextruded ribbons instead of 0 thickness extrusions).
- Fixed interactive width selection not aligning with actual sides of path.
- Made behavior more intuitive when using fixed height/width/radius parameters and switching between fixed and interactive modes, including making it possible to set the fixed parameters after leaving that step of creation.
- Made radius setting behavior similar to width setting behavior.
- Disallowed 0 width paths.
- Made 0 radius same as not having rounded corners.
- Made the tool complete a current mesh if exited while one is ready.

#rb Rinat.Abdrashitov, Matija.Kecman
#rnx
#jira UE-109267
#preflight 61dc940be67256ec41eec9fa

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

[CL 18564959 by semion piskarev in ue5-release-engine-test branch]
2022-01-10 15:56:01 -05:00
semion piskarev
bfc27a1dc3 MeshModelingTools: Fix Boundary Revolve tool not working after CL 17630965 because PolygonSelectionMechanic was not adding its behaviors with the proper source. Also changed it to respect Shift modifier when clicking on a boundary the same way that the plane mechanic does.
#rb Matija.Kecman
#rnx
#jira UE-132759
#preflight 61d4991ad17842e547aa1a9c

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

[CL 18518614 by semion piskarev in ue5-release-engine-test branch]
2022-01-05 09:46:01 -05:00
semion piskarev
d52c6b110f MeshModelingTools: Change loop variable to reference to remove compiler warning on mac builds.
#rb trivial
#rnx
#jira
#preflight 61d4b34d6c000c869b0779ee

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

[CL 18512728 by semion piskarev in ue5-release-engine-test branch]
2022-01-04 16:13:33 -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
matija kecman
bf29ef465d MeshModelingToolset: Fix focusing selected actor not working properly in PolyEdit orTriEdit when selection was empty
#rb rinat.abdrashitov
#rnx
#jira UE-137448
#preflight 61b8c3ca2e65a1df04674af5

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

[CL 18465937 by matija kecman in ue5-release-engine-test branch]
2021-12-15 05:02:56 -05:00
ryan schmidt
27ba71e214 ModelingTools: Add support for reading and writing to a specific LOD via IMeshDescriptionProvider/Committer. Refactor various other aspects of MeshDescription access. Update MeshTransferTool to be able to transfer from and to specific LODs.
Add new MeshTargetInterfaceTypes.h file, move EStaticMeshEditingLOD there and rename to EMeshLODIdentifier. Add FGetMeshParameters and FCommitMeshParameters types.

IMeshDescriptionProvider::GetMeshDescription() now takes FGetMeshParameters to optionally specify LOD.
Added IMeshDescriptionProvider::GetMeshDescriptionCopy() function, to handle copy-case.
removed IMeshDescriptionProvider::CalculateAutoGeneratedAttributes(). This was only being used to force Tangents computation, which can now be done via GetMeshDescriptionCopy() and FGetMeshParameters.bWantMeshTangents option

IMeshDescriptionCommitter commit functions now take a FCommitMeshParameters to optionally specify target LOD.

StaticMeshComponentToolTarget::GetMeshDescriptionCopy() added, optionally computes auto-generated MeshDescription attributes on the copy

StaticMesh(Component)ToolTarget updated to support FCommitMeshParameters target-LOD.

SkeletalMesh, Volume, and DynamicMesh ToolTargets updated for new APIs but do not currently support any of the new LOD parameters. These should never be called w/ LOD parameters in the current codebase, ensures added to catch any errors (they would be non-fatal).

UE::ToolTarget::GetMeshDescription() and GetMeshDescriptionCopy() in now take FGetMeshParameters argument.
Removed bWantMeshTangents param to GetMeshDescriptionCopy(), now done via FGetMeshParameters. Updated call sites.

TransferMeshesTool now supports specifying read and write LOD (numbered or HiRes) for StaticMeshComponent source/target, via above functions.
TransferMeshesTool can now also target a new LOD in a StaticMeshComponent, index is 1 larger than current maximum source LOD.

#rb lonnie.li, rinat.abdrashitov
#rnx
#jira none
#preflight 61b8d56b2e65a1df046aa5e1

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

[CL 18461778 by ryan schmidt in ue5-release-engine-test branch]
2021-12-14 18:40:01 -05:00
matija kecman
21059d3604 UV Editor: Add some analytics to UV Editor tools
#rb lonnie.li, michael.balzer
#rnx
#jira none
#preflight 61b7ce47fc5708913396b563

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

[CL 18453406 by matija kecman in ue5-release-engine-test branch]
2021-12-14 06:39:08 -05:00
tyson brochu
819b7b59cf If a ToolTarget's MeshComponent has no MeshDescription, return an empty but valid one. Harden various tools to not crash on empty meshes.
#jira UE-135710
#rnx
#rb jimmy.andrews
#preflight 61b24e173d544d1a435f6792

#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 18422162 in //UE5/Release-5.0/... via CL 18423015
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18423313 by tyson brochu in ue5-release-engine-test branch]
2021-12-09 15:02:36 -05:00
ryan schmidt
db857d56b6 ModelingTools: convert various tools/mechanics/etc to use new SnappingManager functionality for scene hit-tests and snapping
#rb david.hill
#rnx
#jira none
#preflight 61b21920d308710b0c513796

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18419130 in //UE5/Release-5.0/... via CL 18422407
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18422664 by ryan schmidt in ue5-release-engine-test branch]
2021-12-09 14:46:09 -05:00
ryan schmidt
45cf4af720 ModelingComponents: register StaticMeshDescription attributes in UE::ToolTarget::CommitMeshDescriptionUpdateViaDynamicMesh for full-update path, and read back a copy of MeshDescription before updating for partial-update path
#rb none
#rnx
#jira UE-136900
#preflight 61b13a550e59fd0ab018179f

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18414192 in //UE5/Release-5.0/... via CL 18414194
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18414198 by ryan schmidt in ue5-release-engine-test branch]
2021-12-08 18:46:29 -05:00
matija kecman
d9625a7f87 UV Editor: Add hover preview to Edit mode
#rb semion.piskarev
#rnx
#jira none
#preflight 61af9fc90e59fd0ab0fa5409

#ROBOMERGE-AUTHOR: matija.kecman
#ROBOMERGE-SOURCE: CL 18404342 in //UE5/Release-5.0/... via CL 18404343
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18404348 by matija kecman in ue5-release-engine-test branch]
2021-12-08 05:54:10 -05:00
ryan schmidt
22c851a546 ModelingTools: add alpha mask visualization to brush stamp indicator in VertexSculptTool
#rb none
#rnx
#preflight 61ae4b412b3384289ad2048b

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18387240 in //UE5/Release-5.0/... via CL 18387277
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18387286 by ryan schmidt in ue5-release-engine-test branch]
2021-12-06 15:44:16 -05:00
ryan schmidt
17cefb1dd1 ModelingTools:
Reduce surface area of MeshDescriptionProvider/Committer, replace with UE::ToolTarget:: calls where possible.

Add new UE::ToolTarget::CommitMeshDescriptionUpdateViaDynamicMesh() function. This is being used for now to avoid potential regressions as UE::ToolTarget::CommitDynamicMeshUpdate will preferentially use DynamicMeshCommitter, and I am not certain it is functionally equivalent in all cases.
Add new UE::ToolTarget::CommitDynamicMeshNormalsUpdate(), similar to existing UV version
Add new Move-variant of UE::ToolTarget::CommitMeshDescriptionUpdate(), uses new Move-variant of IMeshDescriptionCommitter::CommitMeshDescription.
Make existing IMeshDescriptionCommitter::CommitMeshDescription callback interface protected, to prevent usage of this function at public API level (will be removed in future).

Tool updates should not change, just using cleaner APIs.
EditNormalsTool now uses CommitDynamicMeshNormalsUpdate(), which does go via DynamicMeshCommitter preferentially, where it previously went via MeshDescriptionCommitter. In light testing the results appear equivalent.
AttributeEditorTool now operates on MeshDescription copies in various update functions. These are not performance-critical.

#rb rinat.abdrashitov
#rnx
#preflight 61ae45998358693a22c28d1b

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18384350 in //UE5/Release-5.0/... via CL 18384361
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18384373 by ryan schmidt in ue5-release-engine-test branch]
2021-12-06 12:42:19 -05:00
jon nabozny
cdc65f654f Reland: Fixes motion blur lengths when using time dilation
#rb josie.yang
#lockdown michal.valient
#preflight 614a44526c96990001c47143

#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 17606608 via CL 17962735 via CL 18364937 via CL 18364960
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18365023 by jon nabozny in ue5-release-engine-test branch]
2021-12-02 23:53:56 -05:00
jon nabozny
9693ad4915 Undo //UE5/Private-Frosty/Engine/... changelist 17586431
#lockdown michal.valient
#preflight revert for build breakage

#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 17587410 via CL 17948832 via CL 18364580 via CL 18364616
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18364712 by jon nabozny in ue5-release-engine-test branch]
2021-12-02 23:34:52 -05:00
jon nabozny
c418c40de0 Fixes motion blur lengths when using time dilation
#rb josie.yang
#lockdown michal.valient
#preflight 614a1e3259380f0001888d92

#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 17586431 via CL 17948712 via CL 18364381 via CL 18364522
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18364604 by jon nabozny in ue5-release-engine-test branch]
2021-12-02 23:30:35 -05:00
semion piskarev
40a7e56ec1 UVEditor: add ability to split bowtie verts. Fix some edge splits occasionally creating a bowtie vert on adjacent non-selected edge. Also fix some undo/redo issues especially regarding sew edges preview. Made all undo/redo selection change events broadcast for now.
#rb Nathan.Mitchell, Jimmy.Andrews
#rnx
#jira UE-133108
#preflight 61a8e8b3e01f3610f5307b4e

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18355648 in //UE5/Release-5.0/... via CL 18355681
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18355709 by semion piskarev in ue5-release-engine-test branch]
2021-12-02 14:42:09 -05:00
ryan schmidt
0cb2c74ef1 fix pragma once issue
#rb none
#rnx

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 18348942 in //UE5/Release-5.0/... via CL 18348958
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18348963 by ryan schmidt in ue5-release-engine-test branch]
2021-12-01 21:47:02 -05:00