Commit Graph

191 Commits

Author SHA1 Message Date
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
rinat abdrashitov
8e6e28690b -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
#jira none

[CL 26233292 by rinat abdrashitov in 5.3 branch]
2023-06-26 10:10:55 -04:00
rinat abdrashitov
30ec28e2d6 Added an operation to compute per-vertex averaged value of all overlay elements.
#rb david.hill

[CL 26053056 by rinat abdrashitov in 5.3 branch]
2023-06-16 11:17:33 -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
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
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
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
michael balzer
92faefe737 GeometryCore: Fix potential buffer overrun in FSmallListSet serialization
#jira UE-172874
#preflight 64650ff311205d3573d0fa57
#rb

[CL 25518662 by michael balzer in ue5-main branch]
2023-05-17 19:09:39 -04:00
Jimmy Andrews
281e28afae add precise math for exact predicates on clang, where supported
#preflight 646465044404e3cdd2c0fb87
#jira none

[CL 25509390 by Jimmy Andrews in ue5-main branch]
2023-05-17 12:25:46 -04:00
marc audy
31c6de2226 [Backout] - CL25502609
#fyi Jimmy.Andrews
Original CL Desc
-----------------------------------------------------------------
set exact predicate float control for clang as well as msvc

#preflight 64643a472d446eac96856f8c
#rb rinat.abdrashitov
#jira none

[CL 25502827 by marc audy in ue5-main branch]
2023-05-17 00:05:24 -04:00
Jimmy Andrews
aedd4acd5f set exact predicate float control for clang as well as msvc
#preflight 64643a472d446eac96856f8c
#rb rinat.abdrashitov
#jira none

[CL 25502609 by Jimmy Andrews in ue5-main branch]
2023-05-16 22:59:50 -04:00
jimmy andrews
ebda1b4a81 add FSphereCover as an optional volume representation to protect negative space in convex decomposition's merge algorithm
+ expose this to dataflow
+ make cluster-convex-from-children algorithm use depth-first node ordering, to get more consistent results

#rb cedric.caillaud
#preflight 645e73ccaa3c584c0bb0b17a

[CL 25458948 by jimmy andrews in ue5-main branch]
2023-05-12 16:15:24 -04:00
jimmy andrews
651caca424 Fix up error handling for Geometry Script polygon triangulation function
+ Add a generalized winding triangulation mode for Delaunay2 as a useful fallback for inputs where some edges failed to insert + make the blueprint general polygon triangulation use it as a fallback

#rb rinat.abdrashitov
#preflight 64462661641e2c3cb469409b

[CL 25175533 by jimmy andrews in ue5-main branch]
2023-04-24 23:29:54 -04:00
ryan schmidt
fd2127d075 GeometryCore: add ability to store and fetch 'debug' FDynamicMesh3 via UE::Geometry::Debug::StashDebugMesh() and FetchDebugMesh(). CVar geometry.DynamicMesh.EnableDebugMeshes controls this support, defaults to disabled. Console command geometry.DynamicMesh.ClearDebugMeshes added to allow clearing entire debug mesh set.
GeometryScript: expose above capability to Geometry Scripting
#rb none
#preflight 643fe92c090323f9a3f2a10d

[CL 25107977 by ryan schmidt in ue5-main branch]
2023-04-19 11:47:17 -04:00
michael balzer
0f950b69d1 GeometryCore: Fix potential buffer overrun in FSmallListSet
#jira UE-172848
#preflight 643dd646db681113a4c89986
#rb jimmy.andrews

[CL 25081758 by michael balzer in ue5-main branch]
2023-04-18 00:12:45 -04:00
david hill
b3a71a15e2 Mesh Modeling Tools: Improve Weld Mesh Edges tool to optionally merge attributes.
Geometry Core: Adding Split Attribute Welder.

#jira UE-182345
#rb ryan.schmidt
#preflight 643d6fc8211b661dc4f47c6a

[CL 25072473 by david hill in ue5-main branch]
2023-04-17 15:22:49 -04:00
nick edwards
442653b187 Uses of ::Sort/::StableSort replaced with Algo versions.
#preflight 6422f8d3710ec8400fc7471c
#jira none
#rb steve.robb

[CL 24818983 by nick edwards in ue5-main branch]
2023-03-28 10:56:46 -04:00
jimmy andrews
4d92d0a2cc fix invalid mesh state caused by not merging some neighboring edges in FDynamicMesh3's EdgeMerge, when mesh has bowties
+ add a test to cover this case

#jira UE-179649
#rb david.hill, ryan.schmidt
#preflight 640f34d20e1f02786bdf510c

[CL 24621295 by jimmy andrews in ue5-main branch]
2023-03-13 16:46:20 -04:00
jimmy andrews
94621fd27d Expose Delaunay Triangulation to Geometry Script
#rb ryan.schmidt, rinat.abdrashitov, matija.kecman
#preflight 64064a28c13b7130d2fd04da

[CL 24531512 by jimmy andrews in ue5-main branch]
2023-03-06 17:00:31 -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