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]
+ 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]
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]
Store bone transform in the transform hiearchy as well.
#rb halfdan.ingvarsson
#preflight 6408c1998832f48a4daf0eac
[CL 24564498 by rinat abdrashitov in ue5-main branch]
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]
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]
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]
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]
Change consist of only forward declaration and additional includes
#preflight 63789c1de30d438849c48188
#rb none
[CL 23218412 by henrik karlsson in ue5-main branch]