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]
- 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]
* 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]
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]
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
- 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]
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]