Commit Graph

202 Commits

Author SHA1 Message Date
henrik karlsson
b5164ac775 Fixes to make modules compile with IWYU. We've added to IWYU toolchain so it compiles "orphaned" headers which does not have a owning cpp file. This identified lots of headers that couldn't be compiled by themselves (or if they were to included first)
Change consist of only forward declaration and additional includes

#preflight 63789c1de30d438849c48188
#rb none

[CL 23218412 by henrik karlsson in ue5-main branch]
2022-11-21 03:22:23 -05:00
sebastien lussier
43203ff4b0 Fixed invalid array access in FDynamicMeshUVEditor::SetTriangleUVsFromConformal()
#rb trivial

[CL 23199908 by sebastien lussier in ue5-main branch]
2022-11-18 13:57:48 -05:00
ryan schmidt
dc0b4ed0ac ModelingComponents: add FGroupVisualizationCache, this is a helper object that stores precomputed info about each polygroup in a mesh, used for visualization in various Tools
ModelingTools: add the ability to draw IDs of visible polygroups in UMeshGroupPaintTool, as well as draw the ID of the polygroup under the cursor. Add the ability to draw Tri/Edge/Vert/Group IDs in the Inspector Tool. Also expand the set of override render materials, and add a polygroup layer picker.
#rb none
#preflight 636454d9581dc906bca87c19

[CL 22990103 by ryan schmidt in ue5-main branch]
2022-11-04 13:06:17 -04:00
rinat abdrashitov
1da1ecb3f0 -Added a new flag (bBlendZeroInfluence) to the FBoneWeightSettings to allow control over how zero-influence bones are treated during the blend. The Blend method will now consider the flag when performing the interpolation.
-Added a Blend function overload that handles barycentric interpolation of 3 skin weights.
-Refactored SetBoneWeightsFromBary (in DynamicVertexSkinWeightsAttribute.h) and ConstructVertexSkinWeightsAttribute (in SelectiveTessellate.cpp) functions to use the newly added Blend function for barycentric interpolation.
-Since the default Blend behavior has changed, make sure that unit tests in BoneWeightTests.cpp are refactored. Added more tests for cases when bBlendZeroInfluence is set to true and when using Blend for barycentric interpolation.

#rb halfdan.ingvarsson
#jira None
#preflight 6361de120c2e7c8f91668a75

[CL 22921407 by rinat abdrashitov in ue5-main branch]
2022-11-02 13:53:31 -04:00
nathan mitchell
9a0afb900b GeometryProcessing: Fix error with local namespace name throwing duplicate symbol warnings during builds.
#rnx
#preflight 63534a39e6096564afa4c346

[CL 22707393 by nathan mitchell in ue5-main branch]
2022-10-21 21:57:03 -04: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
0ad2489994 make the world-z alignment logic in dynamic mesh's grouptopology class also apply when the normal is aligned to -Z
#rb david.hill
#preflight 63464d15663dafe41605b40a

[CL 22486381 by Jimmy Andrews in ue5-main branch]
2022-10-12 17:41:15 -04:00
semion piskarev
8cb66a28c1 ModelingTools: Fix ExtractSubloops in MeshRegionBoundaryLoops being unable to separate out some separatable subloops.
#rb Ryan.Schmidt
#jira UE-160880
#preflight 6335f3dc2f447ea8dc258872

[CL 22264160 by semion piskarev in ue5-main branch]
2022-09-30 01:38:49 -04:00
ryan schmidt
b6f4d36cb6 GeometryProcessing: harden FMeshJoinLoops to handle some cases that users can create in geometry scriptingf
#rb rinat.abdrashitov
#preflight 633593dde410691606b7be57

[CL 22262793 by ryan schmidt in ue5-main branch]
2022-09-29 23:42:54 -04:00
nathan mitchell
8f2f94554c UVEditor: Performance tuning to improve runtime speed of rebuilding the UV overlays and meshes when edits or channel switches are performed. This significantly reduces the allocation and search churn when switching UV channels on high poly count meshes.
This review duplicates and replaces the original review https://p4-swarm.epicgames.net/reviews/21689505 on //UE5/Main, primarily to bring it directly into 5.1 instead of robomerging from Main so close to the hardlock date. The issues discussed in the original review should now be addressed here.

#rb Jimmy.Andrews
#preflight 633330007b582f58abcc30b4
#jira UE-157828

[CL 22239923 by nathan mitchell in ue5-main branch]
2022-09-28 22:01:32 -04:00
semion piskarev
047c6c5358 MeshModelingTools: Fix group topology creating duplicate group edges for loops.
#rb Jimmy.Andrews
#jira none
#preflight 6334707be4106916067b16d7

[CL 22239217 by semion piskarev in ue5-main branch]
2022-09-28 21:44:04 -04:00
david hill
7b05397568 GeometryTools: MeshConstraintsUtil. convert ensure to simple conditional.
#jira UE-164611
#preflight 632c7231d51603c5484018a3
#rb Jimmy.Andrews

[CL 22145990 by david hill in ue5-main branch]
2022-09-22 17:41:50 -04:00
jimmy andrews
1e1f3cb672 Fix hole tool and boundary revolve tool seeing polygroup boundary edges instead of mesh boundary edges
Fix boundary revolve tool skipping last vertex on open boundaries

#jira UE-163374
#rb tyson.brochu
#preflight 632a5fdffc7f1efbdf70dd4a

[CL 22107236 by jimmy andrews in ue5-main branch]
2022-09-20 22:10:05 -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
tyson brochu
9efcc70606 ModelingComponents/Selection:
- create a new MeshTopologySelector base class. The existing GroupTopologySelector class now inherits from it, as does a new BoundarySelector class
- likewise, create a new MeshTopologySelectionMehchanic base class and have (existing) PolygonSelectionMechanic and (new) BoundarySelectionMechanic inherit from it
- the new Boundary classes use FMeshBoundary loops to define selectable loops rather than FGroupTopology

HoleFillTool:
- change to using BoundarySelectionMechanic instead of GroupTopologySelector

Misc:
- allow FMeshBoundaryLoops to fail untangling a loop with bowties but still continue processing other loops


#jira UE-144821
#rb jimmy.andrews
#preflight 63222176e93a80888cb7d3df

[CL 22013854 by tyson brochu in ue5-main branch]
2022-09-14 15:25:19 -04:00
ryan schmidt
b64039ce19 DynamicMesh: handle some failure cases in MeshBevel. These two fixes resolve many bevel failure cases, particularly those introduced by repeat bevels.
In some edge configurations two 'terminator' vertices (at the end of open bevel edge paths) are directly connected by a non-bevel edge that we will "open", and this creates a quad-shaped hole instead of a triangle-shaped hole (which was already handled). Detecting this case will arise is simpler before we change the topology, so it is done in BuildVertexSets(), stored in FBevelVertex::ConnectedBevelVertex, and used during mesh generation to call new AppendTerminatorVertexPairQuad function.

In BuildTerminatorVertex(), the search for a terminator split-edge may fail if the filtered triangle list ends up non-contiguous, preventing the vertex from being beveled (ie it is "stuck"). Code was added to both handle that case, and also try to force the list to stay contiguous.

#rb jimmy.andrews
#preflight 6319fbe3304480f8f8565048
#jira UE-160073

[CL 21908190 by ryan schmidt in ue5-main branch]
2022-09-08 20:09:26 -04:00
semion piskarev
de9d706c9b MeshModelingTools: Fix WalkMeshPlanar occasionally picking bad paths that resulted in holes and other errors in boolean operations.
#rb Jimmy.Andrews
#jira UE-151749
#preflight 6317579c980179553e3b35bc

[CL 21817939 by semion piskarev in ue5-main branch]
2022-09-06 11:14:10 -04:00
semion piskarev
7d6ce15716 MeshModelingTools: Fix group topology not adding an edge if the boundary has a single corner.
#rb Jimmy.Andrews
#jira none
#preflight 63126fc4da1671f997d67660

[CL 21816688 by semion piskarev in ue5-main branch]
2022-09-06 10:20:04 -04:00
Jimmy Andrews
3f0fdaddb4 When applying MeshTransforms' transform and transforminverse, generally pass bReverseOrientationIfNeeded=true
(+ for code that was passing false then manually applying the same logic, remove the extra reverse orientation logic)

#rb david.hill
#preflight 630d245fe352708d44f9e007

[CL 21706500 by Jimmy Andrews in ue5-main branch]
2022-08-30 14:40:56 -04:00
Ryan Schmidt
ce7fda8364 DynamicMesh: add function MakeUniqueGroupLayerName that will make a unique group name given a base name
ModelingTools: add support for writing to selected group layer, as well as new group layer, in ConvertToPolygonsTool (GrpGen in UI). Also add support for setting groups from existing layer, which (combined) allows copying groups between layers, duplicating existing layer, and so on.
#rb none
#preflight 630e3856e11248377555f234

[CL 21704364 by Ryan Schmidt in ue5-main branch]
2022-08-30 13:00:48 -04:00
semion piskarev
c17c1bd788 MeshModelingTools: Give ability to add extra corners in PolyEd for manipulation of some common open-boundary cases (like a disconnected rectangle, for instance). Also show selectable corners by default (but smaller).
#rb Matija.Kecman
#jira none
#preflight 6307ab3859064f9d1e43c1fb

[CL 21568934 by semion piskarev in ue5-main branch]
2022-08-25 14:06:37 -04:00
rinat abdrashitov
90cd97efcc Renaming AdaptiveTessellate.h/cpp to SelectiveTessellate.h/cpp
#rb trivial
#jira none
#rnx
#preflight 63069306a45b007ea2b6cedf

[CL 21564641 by rinat abdrashitov in ue5-main branch]
2022-08-25 11:02:41 -04:00
rinat abdrashitov
70cf962f41 Renaming AdaptiveTessellate to SelectiveTessellate to better reflect its actual functionality.
#rb jimmy.andrews
#jira none
#rnx
#preflight 6306859ac85b7fef22c52811

[CL 21551697 by rinat abdrashitov in ue5-main branch]
2022-08-24 16:46:15 -04:00
rinat abdrashitov
b0f59dad0a Fixed a bug causing an error when tessellating non-compact meshes.
#rb david.hill
#jira None
#rnx
#preflight 63064dce5366f61a42c39428

[CL 21547609 by rinat abdrashitov in ue5-main branch]
2022-08-24 14:28:05 -04:00