Commit Graph

69 Commits

Author SHA1 Message Date
rinat abdrashitov
ac8014e909 Added ability to specify force inpaint mask via weight map name in addition to just plain array.
#rb jimmy.andrews
#rnx

[CL 26583207 by rinat abdrashitov in ue5-main branch]
2023-07-25 14:34:41 -04:00
jimmy andrews
02a0a370eb add variant of mesh projection hull that keeps 3d hull on one side of the projection
#rb rinat.abdrashitov

[CL 26469457 by jimmy andrews in ue5-main branch]
2023-07-19 16:20:22 -04:00
rinat abdrashitov
4ef78ca57e -Added an operator for smoothing overlays of any dimension containing any scalar data
-Added a function for computing per-edge cotangent weights
-Added a function for computing edge lengths
-Added a geometry script function for bluring colors

#rb david.hill
#jira none

[CL 26029009 by rinat abdrashitov in ue5-main branch]
2023-06-15 18:19:32 -04:00
rinat abdrashitov
7f43547bc2 Added an operation to compute per-vertex averaged value of all overlay elements.
#rb david.hill
#jira none

[CL 26022763 by rinat abdrashitov in ue5-main branch]
2023-06-15 15:18:03 -04:00
rinat abdrashitov
420dc7a32c -Add optional smoothing of weights after transfer.
-Add support for multulayerd meshes.
-Add an option to compute the laplacian on intrisic mesh.
-Add a mask to force computation of inpainted weights.
-Add the laplacian energy term.
-Improved peformance by getting the sparse matrix from the solve and then iterating over all (most zero) values.


#rb halfdan.ingvarsson
#rnx
#jira none

[CL 26019677 by rinat abdrashitov in ue5-main branch]
2023-06-15 13:48:31 -04:00
rinat abdrashitov
143c49bed6 -Added a funciton to MeshLocalParam to return an array of points with set UVs.
-Added a function to smooth weights for an array of vertices and all vertices within a geodesic distance away from them.


#rb  jimmy.andrews
#jira none
#rnx

[CL 25956360 by rinat abdrashitov in ue5-main branch]
2023-06-13 13:19:10 -04:00
rinat abdrashitov
347165bea8 -Added SmoothBoneWeights geometry operator that will contain a collection of algorithms for smoothing skin/bone weights.
-Refactored the SkinWeightsPaintTool to use the new operator.

#rb david.hill
#rb kiaran.ritchie
#jira none

[CL 25879825 by rinat abdrashitov in ue5-main branch]
2023-06-08 15:45:35 -04:00
jimmy andrews
4d1a9e879c Move some commonly-used mesh functionality from the DynamicMesh module over to GeometryCore, including DynamicMeshEditor, mesh booleans, and some selection handling
#rb ryan.schmidt, matija.kecman

[CL 25874830 by jimmy andrews in ue5-main branch]
2023-06-08 12:40:29 -04:00
rinat abdrashitov
4cd6715e87 Added a new overload for the TransferWeightsToPoint method that can take scalar bone data arrays.
#rb halfdan.ingvarsson
#rb david.hill
#jira none
#preflight 64642c9f11205d35737a3f4a
#rnx

[CL 25502139 by rinat abdrashitov in ue5-main branch]
2023-05-16 21:43:35 -04:00
rinat abdrashitov
7291b58cca Added a new transfer weight method to the FTransferBoneWeights operator.
#rb halfdan.ingvarsson
#jira none
#rnx
#preflight 645d32072965f6ea8ea7b487

[CL 25432672 by rinat abdrashitov in ue5-main branch]
2023-05-11 14:46:46 -04:00
Steve Robb
2c53018638 Fixed mismatched copy constructor/assignment operator in FMeshSurfaceDirection.
#rb none
#jira none
#preflight none

[CL 25151837 by Steve Robb in ue5-main branch]
2023-04-21 15:32:56 -04:00
Steve Robb
421ed84cdf Fixed mismatched copy constructor/assignment operator in FMeshFaceSelection and FTangentTri2.
#rb none
#jira none
#preflight none

[CL 25084773 by Steve Robb in ue5-main branch]
2023-04-18 08:56:11 -04:00
david hill
56153993ad Geometry Scripting : Geodesic Functions, add ability to trace a "straight" line on a mesh surface.
#preflight 642dbd7d4d26bcd1eb1bf94b
#rb Jimmy.Andrews

[CL 24956789 by david hill in ue5-main branch]
2023-04-06 17:02:35 -04:00
ryan schmidt
3880554a59 ModelingMode: preliminary support for selection transform visualization for Volumes and Static Meshes, and other minor improvements.
Add IGeometrySelectionTransformer::PreviewRender() API, for rendering info during selection transforms. Currently being called by  UGeometrySelectionManager::DebugRender() for active transforms.
FBasicDynamicMeshSelectionTransformer implements PreviewRender, draws selected mesh edges (tris as edges) and vertices, as well as affected edge ROI.
FDynamicMeshPolygroupTransformer overrides this behavior and draws polygroup edges/verts and edge ROI

FStaticMeshSelector and FVolumeSelector now create FDynamicMeshPolygroupTransformer for polygroup selections

FBasicDynamicMeshSelectionTransformer::bEnableSelectionTransformDrawing flag controls whether this edge drawing is enabled. Disabled on DynamicMeshComponent, enabled on StaticMesh and Volume.

Add Normals recomputation during tri and polygroup transforms in FBasicDynamicMeshSelectionTransformer and FDynamicMeshPolygroupTransformer

Add FGroupTopologyDeformer::EnumerateROIEdges() util function to support above

#rb none
#preflight 641cd27bc44ce895fc62f724

[CL 24780655 by ryan schmidt in ue5-main branch]
2023-03-24 12:08:43 -04:00
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
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
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
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
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
rinat abdrashitov
25a9819c06 Added a new operator to transfer bone weights from one Dynamic Mesh to another.
#rb halfdan.ingvarsson
#jira none
#preflight 63b87566221aab21e08ba265

[CL 23606452 by rinat abdrashitov in ue5-main branch]
2023-01-06 20:49:50 -05:00
henrik karlsson
5206158342 [Fortnite]
* Fixed non unity/pch compile errors

#preflight 63b7347ee26e31879ba107d6
#rb none

[CL 23595106 by henrik karlsson in ue5-main branch]
2023-01-05 19:52:06 -05:00
ryan schmidt
6caf2c483e GeometryProcessing: improve OffsetMeshRegion operation
Add support for inferring MaterialID, various methods for controlling creation of new polygroups in FOffsetMeshRegion
Add new PolyModelingFaceUtil.h/cpp with new function ComputeFaceSelectionFrame()
Add new PolyModelingMaterialUtil.h/cpp with new functions ComputeMaterialIDRange() and ComputeMaterialIDsForVertexPath()
Add Row/Column count accessor methods to FQuadGridPatch, and new function GetQuadOpeningAngle() that can return opening angle between two quad columns
Improve ComputeUVIslandForQuadPatch, now considers adjacent strips on either side to determine average target UV scale
#preflight 398f6298c5081ee9a563ceb
#rb none

[CL 23516493 by ryan schmidt in ue5-main branch]
2022-12-14 14:51:58 -05:00
ryan schmidt
153ef493fb GeometryProcessing: OffsetMeshRegion improvements
Refactor core of FDynamicMeshEditor::DisconnectTriangles into an overload that takes precomputed triangle TSet and BoundaryLoops array, as some call sites already have computed this info
Refactor new-polygroup computation out of OffsetMeshRegion into UE::Geometry::ComputeNewGroupIDsAlongEdgeLoop util function in PolyEditingEdgeUtil.h/cpp
Add new function UE::Geometry::ComputeAverageUVScaleRatioAlongVertexPath in PolyEditingUVUtil.h/cpp

Introduce new type FQuadGridPatch, this is a book-keeping data structure for keeping track of "grid of quads" subregion of a triangle mesh, that provides easy access to vertex and quad/trainagle rows/columns
Add util functions ComputeNormalsForQuadPatch() and ComputeUVIslandForQuadPatch() in QuadGridPatchUtil.h

Add new version of OffsetMeshRegion geometric operation, inside FOffsetMeshRegion class. EVersion parameter determines which version of operation to run. Code for the "Legacy" version has not been modified, so back-compat is maintained. New implementation supports variable number of subdivisions along the Offset (via .NumSubdivisions), and computes normal/UV-islands "per group" in extrusion region, instead of per-quad. New version also splits bowties in extrude region before any additional processing, which simplifies some of the book-keeping/etc.

FExtrudeOp currently hardcoded to use use the FOffsetMeshRegion implementation

#rb none
#preflight 639762350a67152550ee9a18

[CL 23481550 by ryan schmidt in ue5-main branch]
2022-12-12 15:09:02 -05:00
brandon schaefer
f77afc5a1d Fix lifetime issues, all of these are undefined behaviour
#jira UE-172308
#rb Jimmy.Andrews
[FYI] Steve.Robb
#preflight 63922e890d013d47efae9480

[CL 23460229 by brandon schaefer in ue5-main branch]
2022-12-08 21:22:12 -05:00