Commit Graph

388 Commits

Author SHA1 Message Date
jimmy andrews
b8887e57ed Add a new polygon-based simplification method to ConvexHull3, and a tolerance for the initial hull build, to support use cases where we do not need an exact hull and can prioritize using fewer plane + avoiding near-degenerate planes in the output. This simplification is especially effective for cases where a large number of near-coplanar faces would exist in the exact-hull output.
#rb rinat.abdrashitov

[CL 26683043 by jimmy andrews in ue5-main branch]
2023-07-28 15:02:49 -04:00
benoit gadreau
bc524589f4 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 26506572 by benoit gadreau in ue5-main branch]
2023-07-21 04:56:52 -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
frederic doll
db5d482dd2 SparseGrid2:
- create TSparseGrid2 from TSparseGrid3
- implement missing methods in FAxisAlignedBox2i
- add basic auto test

#rb jimmy.andrews

[CL 26357668 by frederic doll in ue5-main branch]
2023-06-30 18:03:33 -04:00
jimmy andrews
874bb70ad5 Add option to drive adding more negative space samples when the current samples don't cover the space identified by Voxel Search (and are farther apart than the target Sample Spacing), to make the negative space coverage algorithm better able to protect space in challenging cases where a smaller fixed number of samples would fail.
#rb rinat.abdrashitov

[CL 26314665 by jimmy andrews in ue5-main branch]
2023-06-29 11:28:58 -04:00
jimmy andrews
e1ff718256 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

[CL 26295671 by jimmy andrews in ue5-main branch]
2023-06-28 15:30:03 -04:00
jimmy andrews
ee45f975f2 add a 'per bone' negative space compute option to the merge hulls dataflow node, which can more reasonably target negative space for small leaf bones
#rb rinat.abdrashitov

[CL 26251571 by jimmy andrews in ue5-main branch]
2023-06-26 22:35:03 -04:00
rinat abdrashitov
b0e1560231 -GeometryScript: When creating a new SkeletaMesh asset, provide an option to use the bone attributes of the dynamic mesh to set the reference skeleton of the skeletal mesh.
-Added a convenience function for getting an array of bone names from a reference skeleton.
-Added MeshBones.h/cpp that contain utility functions to deal with dynamic mesh bone attributes

#rb halfdan.ingvarsson

[CL 26233377 by rinat abdrashitov in ue5-main branch]
2023-06-26 10:17:13 -04:00
jimmy andrews
f70dd3a744 Add a convex decomposition sphere covering mode that uses vox-solidify/difference/offset operations to better place the negative space sphere sampling
[CL 26154533 by jimmy andrews in ue5-main branch]
2023-06-21 13:34:37 -04:00
henrik karlsson
5db685f97d [Engine]
* Moved dllexport from type to methods/staticvar in all Engine runtime code. This improves compile times, memory and performance in dll builds

[CL 26082269 by henrik karlsson in ue5-main branch]
2023-06-17 18:13:06 -04:00
henrik karlsson
b8482b44dd [Engine]
* Changed type dllexport to method/staticvar dll export. Various changes for code that upgrade script get wrong

[CL 26082043 by henrik karlsson in ue5-main branch]
2023-06-17 16:57:38 -04:00
ryan schmidt
1a69e04b7e GeometryScript: Add DynamicMeshComponent NotifyMeshModified and NotifyMeshVertexAttributesModified functions (functions are called 'Updated' in BP, via DisplayName, because NotifyMeshUpdated already exists as C++ function). These allow a DynamicMeshComponent's rendering to be updated after the underlying DynamicMesh has been modified with deferred notifications (eg while setting many vertex positions, etc).
Add RecomputeNormalsForMeshSelection, allows subset of normals to be recomputed. Add bDeferChangeNotifications option to RecomputeNormals.

Add ComputeMeshLocalUVParam, computes expmap parameterization on bounded-geodesic-radius area of mesh

#rb none

[CL 26034446 by ryan schmidt in ue5-main branch]
2023-06-15 22:53:04 -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
jimmy andrews
7ca84cf8c5 Add a new hull merge node for reducing the hulls used on convex decompositions
+ minor cleanup/fixes of hull merging algorithms
(v2 with compile/link fixes)

[CL 25964124 by jimmy andrews in ue5-main branch]
2023-06-13 17:18:13 -04:00
jimmy andrews
98cc9bc6be [Backout] - CL25959112
[FYI] Jimmy.Andrews
Original CL Desc
-----------------------------------------------------------------
Add a new hull merge node for reducing the hulls used on convex decompositions
+ minor cleanup/fixes of hull merging algorithms

[CL 25960651 by jimmy andrews in ue5-main branch]
2023-06-13 15:37:18 -04:00
jimmy andrews
59daad6f82 Add a new hull merge node for reducing the hulls used on convex decompositions
+ minor cleanup/fixes of hull merging algorithms

[CL 25959212 by jimmy andrews in ue5-main branch]
2023-06-13 14:52:04 -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
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
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
ryan schmidt
4514a71fea ModelingTools: pvs fix and minor const-correctness fix
#rb none
#preflight 646e32f6807b157b8b3b8f8b
#rnx

[CL 25626915 by ryan schmidt in ue5-main branch]
2023-05-25 15:34:14 -04:00
jimmy andrews
51c778d2a1 make the convex decomposition sphere covering do a better job of covering shape concavities near the border of the shape by expanding the sampling region by the sphere radius + moving the samples out to better cover the sampling region
#rb rinat.abdrashitov
#preflight 646d469a64351d76f352fdd2

[CL 25597234 by jimmy andrews in ue5-main branch]
2023-05-23 21:22:12 -04:00
jimmy andrews
a88d570315 add convex decomposition options to leaf node convex hull dataflow node
+ add a 'max hulls' option to convex decomposition, which functions like 'target num hulls' but can still cap the number of hulls when an error tolerance is specified (target num hulls is ignored when error tolerance is set)

#rb rinat.abdrashitov
#preflight 646d1033f85111e06c3a8fb7

[CL 25593250 by jimmy andrews in ue5-main branch]
2023-05-23 18:33:43 -04:00
ryan schmidt
c0c1e82b10 DynamicMesh: add TDynamicMeshVectorOverlay::EnumerateVertexElements, does triangle iteration around vertex and calls a function for each tri-vtx-element
#rb david.hill
#preflight 646cde3a2c0a5da0dc8627fa
#rnx

[CL 25592176 by ryan schmidt in ue5-main branch]
2023-05-23 18:12:36 -04:00
ryan schmidt
0ff893f0f2 Modeling Tools: minor changes in prepration for future CL. Add UE::Geometry::Lerp for TVector4 types. Refactor code MeshGroupPaintTool code for polylasso post-process to static function UPolyLassoMarqueeMechanic::ApproximateSelfClipPolyline(). Make brush flow rate configurable via overridable UMeshSculptToolBase::GetStampTemporalFlowRate().
#rb none
#preflight 646cbf4064351d76f31f6841
#rnx

[CL 25592096 by ryan schmidt in ue5-main branch]
2023-05-23 18:10:55 -04:00
ryan schmidt
c3976cd7b1 GeometryCore: fix crash copy-paste-o in FDynamicMeshAttributeSet::EnableMatchingAttributes
#rb none
#preflight skip

[CL 25539031 by ryan schmidt in ue5-main branch]
2023-05-18 23:50:53 -04:00