61 Commits

Author SHA1 Message Date
benoit gadreau
fd45e79bd5 Skin Bind: fixed geodesic binding crash when the sampled bone's bbox voxels are out of the occupancy grid
this is easy to repro using a single mesh with two bones (one in the center of the mesh and the other one away from the mesh bbox)

#jira UE-191147
#rb halfdan.ingvarsson

#rnx

[CL 26641901 by benoit gadreau in 5.3 branch]
2023-07-27 11:28:34 -04:00
benoit gadreau
53a403de0e Skin Binding: fixed pos to grid/cell center indexation
+ removed occupancy grid computation when useless (this is only used for debug purposes and slows down the binding calculation)

#jira UE-187013
#jira UE-180559
#rb halfdan.ingvarsson

[CL 26506537 by benoit gadreau in 5.3 branch]
2023-07-21 04:55:34 -04:00
Jimmy Andrews
628974f19c Fix crash when spline mesh tool has a spline with too few points, and generally make polygon triangulation not crash when passed an input with too few points
#rb rinat.abdrashitov
#jira none

[CL 26295531 by Jimmy Andrews in 5.3 branch]
2023-06-28 15:25:32 -04:00
nathan mitchell
ad0d4a6d04 ModelingOperators: Prevent ensure from firing when a selection is passed to the operation that doesn't consist of at least one full triangle.
#rb Jimmy.Andrews
#jira UE-185238

[CL 26215653 by nathan mitchell in 5.3 branch]
2023-06-23 15:07:29 -04:00
henrik karlsson
f027bfa856 [Core]
* Fixed compile errors when compiling .h files in isolation

#rb none

[CL 25865668 by henrik karlsson in ue5-main branch]
2023-06-08 02:30:27 -04:00
jimmy andrews
b7be1aea10 Fix triangulate curves op using the wrong index when computing average polygon normal
#rb trivial
#preflight skip

[CL 25645635 by jimmy andrews in ue5-main branch]
2023-05-26 12:24:57 -04:00
jimmy andrews
c53ce32a83 add plane projection and boolean/offset options to the mesh splines tool
#rb tyson.brochu
#preflight 646e78412c0a5da0dc40c358

[CL 25633353 by jimmy andrews in ue5-main branch]
2023-05-25 18:47:13 -04:00
matija kecman
87ee9970e8 Fix GetElapsedComputeTime so that the preview material kicks in after the proper delay
#jira UE-183810
#preflight 644a77c66b589f8b36ee29a9
#rb jimmy.andrews

[CL 25299633 by matija kecman in ue5-main branch]
2023-05-02 07:51:43 -04:00
semion piskarev
59fc70fa0c MeshModelingTools: Add Revolve Spline tool (resubmit after backout after fixing include issues)
#rb Jimmy.Andrews
#jira UE-182354
#preflight 64485c8e6b589f8b36dfd0a9

[CL 25194223 by semion piskarev in ue5-main branch]
2023-04-26 00:46:56 -04:00
hilda cruz
57825c69d5 [Backout] - CL25182400 for CIS issue
#rnx
[FYI] semion.piskarev
Original CL Desc
-----------------------------------------------------------------
MeshModelingTools: Add Revolve Spline tool.

#rb Jimmy.Andrews
#jira UE-182354
#preflight 6447ed6b877716c8782f96a3

[CL 25192025 by hilda cruz in ue5-main branch]
2023-04-25 19:20:48 -04:00
semion piskarev
7480451793 MeshModelingTools: Add Revolve Spline tool.
#rb Jimmy.Andrews
#jira UE-182354
#preflight 6447ed6b877716c8782f96a3

[CL 25184527 by semion piskarev in ue5-main branch]
2023-04-25 13:52:37 -04:00
jimmy andrews
728376569f add initial triangulate splines tool
#jira UE-182355
#preflight 6446f41e2804595a04519002
#rb ryan.schmidt, david.hill

[CL 25175562 by jimmy andrews in ue5-main branch]
2023-04-24 23:31:18 -04: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
matija kecman
0dcd983404 Add Geometry Selection support to the Normals tool
This code was reviewed here https://p4-swarm.epicgames.net/reviews/25007278 but that CL was into //UE5/Main. We want the change to be into //Fortnite/Main, hence this CL

#jira UE-181649
#preflight 6442a3894944ef78926d17a3
#rb semion.piskarev, jimmy.andrews, ryan.schmidt

[CL 25150696 by matija kecman in ue5-main branch]
2023-04-21 14:49:34 -04:00
rinat abdrashitov
e289ca61d0 Initialize bone attributes from the transform hierarchy when performing Skin Binding Operation.
Store bone transform in the transform hiearchy as well.


#rb halfdan.ingvarsson
#preflight 6408c1998832f48a4daf0eac

[CL 24564498 by rinat abdrashitov in ue5-main branch]
2023-03-08 14:27:21 -05:00
jimmy andrews
0eb3c4be0a Expose simplification along cut/mirror plane as an option in the mirror and plane cut tools
#preflight 63e55764bb1d8ca8cf13f166
#rb trivial

[CL 24110681 by jimmy andrews in ue5-main branch]
2023-02-09 19:37:30 -05:00
ryan schmidt
227ac3d087 ModelingTools: Add OffsetMeshSelectionTool and RetriangulateGeometrySelectionCommand
#preflight 63cb1d78574ab9cae448312c
#rb none

[CL 23803436 by ryan schmidt in ue5-main branch]
2023-01-21 13:02:53 -05:00
Jimmy Andrews
cf210c12d2 Add background compute of voronoi diagrams
Add background compute of the noise-deformed cutting meshes
+ add previews using background computes

Move the noise preview controls (previously just in the plane fracture tool) over to common fracture settings

#rb cedric.caillaud
#preflight 639a574d8c64c74ac8245d6f

[CL 23540040 by Jimmy Andrews in ue5-main branch]
2022-12-16 13:51:36 -05:00
ryan schmidt
0e4ddc8e1a ModelingTools: add new modeling-mode Tool/Operator for extruding Mesh Selections
Add UE::ToolTarget::SupportsIncrementalMeshChanges() and ::ApplyIncrementalMeshEditChange(), these allow a Tool to directly edit a DynamicMeshComponent in the level (and emit corresponding MeshChange) so that a Tool can emit multiple undoable edits on a DynamicMesh
Add new USingleTargetWithSelectionTool base tool class, this is a USingleSelectionTool that can receive a FGeometrySelection. USingleTargetWithSelectionToolBuilder configures this type of Tool as necessary.
Add new LinearExtrusionOp dynamic mesh operator, provides linear-extrusion API to FOffsetMeshRegion using new Operator design (mesh shared via FSharedConstDynamicMesh3, CalculateResultInPlace() function to simplify direct usage in geometry script/etc)
Add new ExtrudeMeshSelectionTool, subclass of USingleTargetWithSelectionTool, exposes new LinearExtrusionOp, uses above ToolTarget functions to directly edit DynamicMeshComponent where possible
Enable new Tool in Modeling Mode

Add a few new functions to UMeshOpPreviewWithBackgroundCompute to simplify configuring InProgress and Secondary materials
Small additions to USingleSelectionTool

#preflight 639a3e250a671525500d8a7e
#rb none

[CL 23520421 by ryan schmidt in ue5-main branch]
2022-12-14 17:43:16 -05:00
ryan schmidt
ec6a90a532 GeometryScript: add MeshCreateBoneWeights function. Fix bug in CreateNewSkeletalMeshAssetFromMesh function where Skeleton was never being passed on to creation function.
ModelingOperators:
Change FSkinBindingOp to use GetOrCreateSkinWeightsAttribute intsead of just directly accessing the SkinWeightAttribute (as it could be nullptr and this was not handled)
Fix various issues in CreateSkeletalMeshAsset(). Register MeshDescription attributes before trying to convert from DynamicMesh. Make sure there is always at least one Material being passed (otherwise ensures are hit in Material UVData check). Actually return created SkeletalMesh (!)


#rb none
#preflight 639382310d013d47ef35de03
[FYI] halfdan.ingvarsson

[CL 23499832 by ryan schmidt in ue5-main branch]
2022-12-13 18:16:43 -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
michael balzer
d1f1e7c0b6 MeshModelingToolset: Fix inconsistencies in "PolyGroup" strings in UI and tooltips
#jira UE-170574
#preflight 63913e505624e6da5eb53b89

[CL 23440331 by michael balzer in ue5-main branch]
2022-12-07 20:45:27 -05:00
halfdan ingvarsson
04d78f9b09 Move the skin binding op to a shared location in ModelingOps. Placed the implementation of the occupancy grid into its own helper header, as FOccupancyGrid3.
#preflight 6381cedffa053c489a910673
#rb ryan.schmidt
#rnx

[CL 23301139 by halfdan ingvarsson in ue5-main branch]
2022-11-28 20:24:14 -05:00
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
nathan mitchell
be8e0074e5 UVEditor: Merge and unify the RecomputeUVs codebases with the UVEditor and Modeling Mode.
#rb Jimmy.Andrews
#preflight 635c0d7cae6840072d339bd4

[CL 22831760 by nathan mitchell in ue5-main branch]
2022-10-28 13:26:45 -04:00