Commit Graph

26 Commits

Author SHA1 Message Date
jimmy andrews
39f9077743 fix any UV bowties that would be introduced when performing box or cylinder UV projections
#rb semion.piskarev

[CL 35974131 by jimmy andrews in ue5-main branch]
2024-09-03 14:18:37 -04:00
semion piskarev
e109daad09 UVEditor: Add "make island" action and a debug "Unset UVs" action.
#rb Jimmy.Andrews

[CL 35741534 by semion piskarev in ue5-main branch]
2024-08-22 11:16:19 -04:00
nathan mitchell
1d8d099a5b GeometryProcessing: Added functionality to the UV Layout code to allow for preserving existing UV island's scale and orientation during layout operations.
Additionally cleaned up numerical logic within the UV Packer code and added comments for confusing areas of the code.

#jira UE-217881
#rb lonnie.li

[CL 35382850 by nathan mitchell in ue5-main branch]
2024-08-07 18:00:36 -04:00
semion piskarev
155fa313c9 MeshModelingTools: Add a UV Transfer tool to modeling mode, which transfers UVs from a mesh simplified using an "existing vertices" option to the original, higher resolution mesh.
#rb lonnie.li
#jira UE-216210

[CL 35339610 by semion piskarev in ue5-main branch]
2024-08-06 10:00:20 -04:00
ryan schmidt
d205e117bb GeometryProcessing: various utility functions to assist with rounded bevels implementation
- add 2D version of VectorTanHalfAngle to VectorUtil.h
- add FDynamicMeshUVEditor::SetToPerVertexUVs, initializes overlay to have a single UV for each vertex
- add FQuadGridPatch::InitializeFromQuadPatch(), initializes the quad grid from external rows of quads and associated vertices
- add FQuadGridPatch::GetVertexColumn(), returns the list of vertices in a specific grid column
- add FQuadGridPatch::FindColumnIndex(), finds the index of the grid column that contains a specific Vertex ID
#rb rinat.abdrashitov

[CL 30166232 by ryan schmidt in ue5-main branch]
2023-12-06 15:32:17 -05:00
nathan mitchell
a0dee240cb UVEditor: Enable support for UV island normalization in Layout operations.
#rb Jimmy.Andrews
#preflight 644197e6f126d87e459890db

[CL 25155917 by nathan mitchell in ue5-main branch]
2023-04-21 19:15:16 -04:00
nathan mitchell
ff0aaf7feb UVEditor: Implement functionality to allow the Seam tool to now remove seams, as well as add them.
* Provides a mode selection for the Seam tool, switching between seam cutting mode and seam joining mode.
* Seam joining mode has an optional behavioral flag to have the path finding preferentially follow existing seams, making it easier to trace seam edges.
* DynamicMeshOverlay now supports merging elements, providing a method to merge one element to another, if they share the same parent, collapsing any references from the first element into references to the second.
* DynamicMeshUVEditor now supports removing seams from edges, providing a method to remove (via the new DynamicMeshOverlay functionality) seams from an edge collection by iteratively merging elements together.

#rb semion.piskarev
#preflight 6387e2e07b4bd3f057375770

[CL 23343534 by nathan mitchell in ue5-main branch]
2022-11-30 18:25:46 -05:00
nathan mitchell
a95124d72e ModelingMode: Merge and unify the Layout codebases between the UV Editor and Modeling Mode.
#rb rinat.abdrashitov
#preflight 634ed9bfac7f102b31e5cb58

[CL 22704078 by nathan mitchell in ue5-main branch]
2022-10-21 19:03:38 -04:00
jimmy andrews
0ce18de623 Fix symmetry detection for scaled-up meshes, by making error tolerances also scale
#jira UE-159448
#rb david.hill
#preflight 63291c3eb40000c8f0456d1e

[CL 22094673 by jimmy andrews in ue5-main branch]
2022-09-20 11:50:38 -04:00
jimmy andrews
1fb9676459 Make mesh symmetry detection detect more symmetry cases, more robustly, so VSculpt will recognize symmetry after using Mirror Tool
#jira UE-159448
#rb david.hill
#preflight 63237c365a44869a7d0922f8

[CL 22040790 by jimmy andrews in ue5-main branch]
2022-09-15 18:44:06 -04:00
Ryan Schmidt
f9b9a5c264 GeometryProcessing: add FMeshPlanarSymmetry for detecting and applying planar symmetry to mesh vertices
#rb jimmy.andrews, david.hill
#preflight 62c5c2c02823f28cf2aaccea

[CL 20969099 by Ryan Schmidt in ue5-main branch]
2022-07-06 13:32:30 -04:00
nathan mitchell
cc0b68299f UVEditor: Enable support for polygroups and UDIMS in the AutoUV tool.
#rb semion.piskarev
#preflight 62685f23dd35c0d6cacdd455

[CL 20161755 by nathan mitchell in ue5-main branch]
2022-05-12 04:02:48 -04:00
rinat abdrashitov
744e9ee8c8 Added the Spectral conformal parameterization option for unwrapping UVs.
Refactored existing LSCM/DNCP UV unwrapping since a lot of code is shared with the Spectral method.

#rb david.hill
#rb nathan.mitchell
#jira None
#preflight 62433f4de434babd8ad4ca34

[CL 19547023 by rinat abdrashitov in ue5-main branch]
2022-03-29 15:03:12 -04:00
nathan mitchell
3c2a27f2b4 UVEditor: Add support for UDIM tile aware processing in the Unwrap tool. Unwrap now processes, when the option is enabled, each UDIM tile separately, handling unwrapping and layout per tile.
#rb semion.piskarev
#preflight 623266cb9406c2cfd6c1522b

[CL 19415251 by nathan mitchell in ue5-main branch]
2022-03-16 19:51:12 -04:00
nathan mitchell
bb43f34fb7 UVEditor: Implemented initial support for UDIM aware layout in the UVEditor, allowing islands to remain within a tile if they were already there. Additionally changed the UDIM display from asset to use current island positions rather than the UDIM polygroup.
#rb Jimmy.Andrews
#preflight 621526880f71e491cccb88a4

[CL 19393298 by nathan mitchell in ue5-main branch]
2022-03-15 16:07:34 -04:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
semion piskarev
abb3f3a513 UVEditor: Support unset UV's, add unit tests, move UVEditorToolUtil into a separate module so that it can be tested in unit tests. This also fixes very poor performance when updating lots of triangles by using "unsafe" insertions where relevant.
#rb Lonnie.Li
#rnx
#jira none
#preflight 618452e80172ec00013f7211

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 18066788 in //UE5/Release-5.0/... via CL 18066954
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18066977 by semion piskarev in ue5-release-engine-test branch]
2021-11-04 19:59:04 -04:00
semion piskarev
6660394165 UVEditor: Added split action to the select tool. Also fixed edge selection occasionally breaking due to changing eids.
#rb Nathan.Mitchell
#rnx
#jira none
#preflight 6171c4d195715b000183fd4d

#ROBOMERGE-AUTHOR: semion.piskarev
#ROBOMERGE-SOURCE: CL 17893995 in //UE5/Release-5.0/... via CL 17894039
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17894049 by semion piskarev in ue5-release-engine-test branch]
2021-10-21 22:44:44 -04:00
nathan mitchell
11553b5800 UVEditor: Conformal Island Unwrap action now added to the select tool, allowing per island conformal relaxations. Additionally, a bug was fixed with applying changes from the UV Editor when the channel number had been changed, and the sew tool was adjusted to prevent an error with the selection.
#rb semion.piskarev
#rnx

#ROBOMERGE-AUTHOR: nathan.mitchell
#ROBOMERGE-SOURCE: CL 17880024 in //UE5/Release-5.0/... via CL 17880039
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v883-17842818)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17880052 by nathan mitchell in ue5-release-engine-test branch]
2021-10-20 20:11:14 -04:00
nathan mitchell
403862a503 UVEditor: Channel Editing Tool
#rb semion.piskarev
#rnx

#ROBOMERGE-AUTHOR: nathan.mitchell
#ROBOMERGE-SOURCE: CL 17713742 in //UE5/Release-5.0/... via CL 17713756
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v879-17706426)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17714367 by nathan mitchell in ue5-release-engine-test branch]
2021-10-04 17:29:27 -04:00
ryan schmidt
88bc78c680 GeometryProcessing:
- add FDynamicMeshUVEditor::CopyUVLayer()
- Move Polygroup topology checks from SubdividePolyTool to FSubdividePoly::ValidateTopology()
#rb none
#rnx
#jira none
#preflight 61440d3fb5a4fa0001811535

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17547788 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17547792 by ryan schmidt in ue5-release-engine-test branch]
2021-09-17 00:33:56 -04:00
ryan schmidt
1c7d18c5f4 GeometryProcessing:
- add FPolygroupLayer struct which is basically an identifier for a Polygroup layer, ie either the default mesh layer or one of the extended attribute layers
- add FPolygroupsGenerator::FindPolygroupsFromHardNormalSeams()
- add option to FPolygroupsGenerator::FindPolygroupsFromFurthestPointSampling() to constrain generation relative to an input polygroup set, ie only subdivide existing polygroups
- FMeshRegionGraph::BuildFromComponents now takes optional are-triangles-connected predicate, to allow links in graph to be disabled
- FPatchBasedMeshUVGenerator can now optionally generate new UV islands relative to an input Polygoup set, via new GroupConstraint input

#rb david.hill
#rnx
#jira none
#preflight 6142106e568b3a0001dbc2d0

#ROBOMERGE-AUTHOR: ryan.schmidt
#ROBOMERGE-SOURCE: CL 17522255 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17522278 by ryan schmidt in ue5-release-engine-test branch]
2021-09-15 12:51:55 -04:00
ryan schmidt
6ea7d67546 GeometryProcessing: Add full AutoUV process to PatchBasedMeshUVGenerator, based on initial superpatch decomposition computed using FPolygroupsGenerator. Add a few utility functions for setting output state to FGeometryResult. Add FMeshConnectedComponents::InitializeFromTriangleComponents(), to allow initializing from an existing triangle set (sometimes necessary when downstream code requires a FMeshConnectedComponents as input).
#rb david.hill, jimmy.andrews
#rnx
#jira none
#preflight 611ede69008be9000100c1ad

#ROBOMERGE-SOURCE: CL 17242884 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17242890 by ryan schmidt in ue5-release-engine-test branch]
2021-08-19 21:29:14 -04:00
ryan schmidt
477d01d796 GeometryCore: add TNormalHistogram, simple spherical histogram based on TSphericalFibonacci point set
GeometryProcessing: add PatchBasedMeshUVGenerator, partial implementation of new AutoUV generator, currently generates UVs based on an initial patch decomposition computed externally, by incrementally merging those patches if possible.
ModelingTools: extend RecomputeUVsOp to optionally support island merging based on PatchBasedMeshUVGenerator. Add support for Normal smoothing in ExpMap, and UV Island rotation optimization. Expose new options/etc in RecomputeUVsTool, as well as add optional UV-space view.
#rb none
#rnx
#jira none
#preflight 6102000325e4a50001ac7119

#ROBOMERGE-SOURCE: CL 16992432 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16992437 by ryan schmidt in ue5-release-engine-test branch]
2021-07-29 01:32:28 -04:00
ryan schmidt
a792e5ad6d GeometryProcessing: Add FDynamicMeshUVEditor::ScaleUVAreaTo3DArea() and ::AutoOrientUVArea(), FMeshRegionGraph::MoveRegionTris()
#rb none
#rnx
#jira none

#ROBOMERGE-SOURCE: CL 16990275 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16990276 by ryan schmidt in ue5-release-engine-test branch]
2021-07-28 19:54:35 -04:00