Commit Graph

296 Commits

Author SHA1 Message Date
rinat abdrashitov
6d13803f37 -TransferBoneWeights function now uses bone attributes to re-index the skin weight bone indices when transferring between different skeletons.
-Refactored Chaos cloth transfer tool to use the new TransferBoneWeights functionality.

#rb halfdan.ingvarsson
#rb tyson.brochu
#jira none
#preflight 6408eb888c0039bbf765cd0a

[CL 24565884 by rinat abdrashitov in ue5-main branch]
2023-03-08 15:22:23 -05:00
rinat abdrashitov
a3fd902926 -DynamicMeshEditor.cpp: Handle bone data when appending two meshes and use it to reindex the the combined skinning weights.
-DynamicMeshAttributeSet.cpp:  Fixed a bug where we were resetting the bone attributes when matching.
-DynamicVertexSkinWeightsAttribute.h: Added a function that allows to reindex bone indices with respect to a new skeleton.
-SkeletalMeshLODModle.cpp: Handle bone attributes when FSkeletalMeshLODModel::GetMeshDescription is called.

#rb halfdan.ingvarsson
#preflight 640150b91d304a54717f810c

[CL 24523731 by rinat abdrashitov in ue5-main branch]
2023-03-06 11:22:59 -05:00
matija kecman
a5329ddfbb Fix computation of edge collapse lerp parameter to fix (for example) artefacts in the UV layer when remeshing the stairs primitive
#jira UE-141937
#preflight 64008a1bc63aaf1e13565ace
#rb ryan.schmidt,david.hill

[CL 24499685 by matija kecman in ue5-main branch]
2023-03-03 11:21:38 -05:00
semion piskarev
dabb78fb4c MeshModelingTools: Fix crashes in smoothing code on non-compacted meshes.
#rb Jimmy.Andrews
#jira none
#preflight 63ffca83ef1b24bf94c001a7

[CL 24480770 by semion piskarev in ue5-main branch]
2023-03-02 08:49:54 -05:00
tyson brochu
0a9de87960 Hole Fill Tool:
- change the smoothing weight scheme to IDT Cotangent
- re-check for mesh seams to constrain between iterations of remeshing

#rb jimmy.andrews
#preflight 63ffa7cc30633435f83e9200

[CL 24474295 by tyson brochu in ue5-main branch]
2023-03-01 19:19:34 -05:00
rinat abdrashitov
b98febe1fd Remove checkSlow(false) when encountering a numerical issue since it's valid for those cases to be reached and we return the Numerical Failure flag.
Otherwise, this also causes geometry processing unit tests to fail when testing for numerical failures where invalid matrices are supplied.


#rb trivial
#preflight 63fe7a5cdd78dd50f626fbd1
#rnx

[CL 24455832 by rinat abdrashitov in ue5-main branch]
2023-02-28 20:02:02 -05:00
ryan schmidt
c49fc562ad CombineMeshInstance: add support for combining simple collision and simple box-merging strategy to combine collision shapes.
GeometryCore: Make TAxisAlignedBox3::DistanceSquared const (should have been). Add TQuaternion * scalar and operator+ functions. Add TTransformSRT3::GetScale3D for API compatibility with engine FTransform
Add FSimpleShapeSet3d::Append() variant that takes a FTransformSequence3d
#rb rinat.abdrashitov
#preflight 63fe7971437ce3e7f3b51c8a

[CL 24454963 by ryan schmidt in ue5-main branch]
2023-02-28 19:00:45 -05:00
jimmy andrews
8c1fc919a2 Add PolyGroupID option to the Bake Textures and Bake Vertex Colors tools
#rb lonnie.li
#preflight 63fe754eef1b24bf9431ef91

[CL 24454581 by jimmy andrews in ue5-main branch]
2023-02-28 18:39:53 -05:00
jimmy andrews
a1369e28aa Add polygon offset functions that take arrays of general polygons and apply one or two offsets
also:
Update polygon union code to allow the input array to be (optionally) re-used as the result array
Fix the previous offset function to support negative offsets for polygons

#rb ryan.schmidt
#preflight 63f7f9b12b1a2765f9210b37

[CL 24397851 by jimmy andrews in ue5-main branch]
2023-02-24 04:01:40 -05:00
jimmy andrews
ff71fb07b1 Add support for taking the intersection/union/difference/xor of arrays of polygons with clipper
#rb david.hill
#rb ryan.schmidt
#preflight 63f7ad72dd78dd50f6000db5

[CL 24397791 by jimmy andrews in ue5-main branch]
2023-02-24 03:57:07 -05:00
jimmy andrews
ba421861c3 fix handling of an outer polygon nested inside a hole in the clipper2 wrapper code
#rb rinat.abdrashitov
#preflight 63f6e0df7064074bd8ded514

[CL 24386961 by jimmy andrews in ue5-main branch]
2023-02-23 14:54:51 -05:00
jimmy andrews
f63cdc13af Update FLocalPlanarSimplify to support simplification along straight creases in a mesh, where the sides of the crease may optionally belong to different PolyGroups
Add an edge simplification operation to the PolyEdit tool

#rb semion.piskarev
#preflight 63ee9a0f3c1eb56f055442ac

[CL 24276322 by jimmy andrews in ue5-main branch]
2023-02-16 21:55:32 -05:00
tyson brochu
51ea46ee6d BakeVtx: fix per-channel baking of curvature/ambient occlusion
#rb lonnie.li
#preflight 63ee76da81646f1f24f10dc2

[CL 24268890 by tyson brochu in ue5-main branch]
2023-02-16 16:39:22 -05:00
nathan mitchell
f0dee58acc ModelingTools: Updated the Simplify tool's inherited properties to conditionally disable the PreventNormalFlips and PreventTinyTriangles (depending on the algorithm used). This also enables support for the PreventTinyTriangles and PreventNormalFlips under certain conditions, the latter of which had been passed into the underlying operation but never used before.
#rb Jimmy.Andrews
#jira UE-170246
#preflight 63eaa2b7956709374a58ea7d

[CL 24200206 by nathan mitchell in ue5-main branch]
2023-02-13 21:22:23 -05:00
jimmy andrews
0188b696c0 Add a general-use version of the 'simplify along edges' logic from FMeshBoolean, and use it to simplify plane cuts and edge insertions
+ Update the plane cut logic to allow it to use the simplify function

#rb david.hill
#preflight 63e516ea1d3284fefe72c97a

[CL 24107250 by jimmy andrews in ue5-main branch]
2023-02-09 16:49:32 -05:00
jonathan bard
6e7a97825e Fixed common typo (verticies->vertices)
#rb trivial
#skipci
#rnx

[CL 24061364 by jonathan bard in ue5-main branch]
2023-02-07 17:42:45 -05:00
semion piskarev
03716e44ba ModelingTools: Fix typo in QuadGridPatch that causes a checkSlow to always be hit.
#rb Ryan.Schmidt
#preflight 63ce9c9ebb14367242fc52c2

[CL 23815890 by semion piskarev in ue5-main branch]
2023-01-23 12:48:52 -05:00
ryan schmidt
9290a31c7e ModelingComponents: add FDynamicMeshPolygroupDeformer, applies GroupTopologyDeformer to a MeshSelection. Use in DynamicMeshSelector when selection has Polygroup topology.
#preflight 63cc5028f2318350a2597338
#rb none

[CL 23805236 by ryan schmidt in ue5-main branch]
2023-01-22 13:04:22 -05:00
ryan schmidt
66cfbb7815 GeometryProcessing: fix infinite loop that can happen if mesh a connected component has no border
#preflight 63cab76b76335fe6aee242b7
#rb none

[CL 23795978 by ryan schmidt in ue5-main branch]
2023-01-20 15:27:56 -05:00
henrik karlsson
9183978e29 [Engine/Plugins]
* Removed includes (using IWYU) in private files

#preflight 63c79978ac35a0e9dabbe408
#rb none

[CL 23770038 by henrik karlsson in ue5-main branch]
2023-01-19 00:48:07 -05:00
ryan schmidt
70ac55822d ModelingMode: improve interop with new Selection System and existing Tools
Add support for Tools to provide an "output" selection. Add UGeometrySelectionManager::SetSelectionForComponent() which can set an explicit externally-provided selection. FBaseDynamicMeshSelector::UpdateSelectionFromSelection() now supports selection conversion when available and requested (is used to implement SetSelectionForComponent). New GeometrySelectionUtil functions InitializeSelectionFromTriangles() and ConvertSelection() are used to implement this (note: only Triangles->other conversion is currently supported). Add HaveAvailableGeometrySelection() and SetToolOutputGeometrySelectionForTarget() in StoredMeshSelectionUtil.h, this is the top-level function that Tools can use to set an Output selection.

ExtrudeMeshSelectionTool now emits output selection.

Update EditMeshPolygonsTool to use new Selection system and allow individual operations to be utilized as standalone Tools. Convert EditMeshPolygonsTool to be a USingleTargetWithSelectionTool, use FGeometrySelection to initialize selection. Add bTerminateOnPendingActionComplete flag, which is set when Tool is directly initialized to a specific operation, and forces tool to shut down when operation completes. This allows it to be used to more cleanly implement multiple action buttons in Modeling UI. When in this mode, selection panels are not shown. On Shutdown, now emits an "output" selection which GeometrySelectionManager can use to provide new selection to user. Update UPolygonSelectionMechanic Set/Get selection APIs to use FGeometrySelection instead of UPersistentMeshSelection.

port UVProjectionTool to derive from USingleTargetWithSelectionTool, use FGeometrySelection to initialize target ROI

deprecate UPersistentMeshSelection and related functions in StoredMeshSelectionUtil.h. Deprecate Tool Input Selection APIs in USingleSelectionMeshEditingTool and Builder.

Repurpose old ModelingMode-level PolyModel tab operations for new Selection Tools UI, now support Inset, Outset, Cut Faces, Insert Edge Loop, PushPull, and Bevel.

#rb none
#preflight 63c84fa2b065224750b9831f

[CL 23766643 by ryan schmidt in ue5-main branch]
2023-01-18 17:59:31 -05:00
ryan schmidt
5a61c6b75c GeometryProcessing: add MakeSelectAllSelection(), MakeSelectAllConnectedSelection(), MakeBoundaryConnectedSelection(), CombineSelectionInPlace() utility functions. Some of this is ported from geometry script selection code, which should be replaced with calls to these util functions (after testing). Minor necessarily additions to FGeometrySelection and FGeometrySelectionEditor.
#rb none
#preflight 63c02b711e5ee71dc373f692

[CL 23665656 by ryan schmidt in ue5-main branch]
2023-01-12 12:50:34 -05:00
ryan schmidt
5491f25f92 GeometryProcessing: add FMeshConnectedComponents::GrowToConnectedVertices() and GrowToConnectedEdges(). Add FGroupTopology::FindEdgeNbrEdges(), FindCornerNbrEdges(), FindCornerNbrCorners().
#rb david.hill
#preflight 63bf1919577437afe6e082c0

[CL 23664485 by ryan schmidt in ue5-main branch]
2023-01-12 11:45:20 -05:00
henrik karlsson
ea8ea49aa2 [UBT]
* Changed lots of modules to use IWYUSupport instead of bEnforceIWYU (which is being deprecated)

#preflight 63bc8486c45a2c81e0b14fe8
#rb none

[CL 23641460 by henrik karlsson in ue5-main branch]
2023-01-11 01:32:59 -05:00
rinat abdrashitov
02c4d0db99 Fixed missing copyright warning
#rb trivial
#jira none
#preflight none

[CL 23606579 by rinat abdrashitov in ue5-main branch]
2023-01-06 21:13:00 -05:00