389 Commits

Author SHA1 Message Date
jimmy andrews
cc894123d6 fix some edges/vertices not moving when via mesh elements selection handles due to incorrect bounds check in deformer
#rb david.hill

[CL 32484838 by jimmy andrews in 5.4 branch]
2024-03-25 17:06:07 -04:00
jimmy andrews
32fdb471b8 fix unreachable implicit "++iterator" in cases where a for-loop was used to just grab the first element of a set or map
#rb lonnie.li
#lockdown michael.balzer

[CL 31877332 by jimmy andrews in 5.4 branch]
2024-02-28 13:34:31 -05:00
nathan mitchell
6353a138e5 GeometryProcessing: Improve the UV generation scheme PatchBuilder via a change to the polygroup generation stage, providing area aware sampling of the mesh surface and reducing the overcompensation effects that small, disconnected regions in the mesh were having on the overall segmentation.
Also provides a new CVar, modeling.DisableAutoUVAreaDensitySampling, which when set, returns the behavior to the original algorithm, in case there are legacy reasons to maintain that behavior.

#rb Jimmy.Andrews
#jira UE-144730

[CL 31581296 by nathan mitchell in 5.4 branch]
2024-02-16 16:41:15 -05:00
tyson brochu
72f42497ae Remesher: add an optional edge length scale function that can be used for adaptive-density remeshing
#rb jimmy.andrews
#jira UE-207063

[CL 31537383 by tyson brochu in 5.4 branch]
2024-02-15 16:53:42 -05:00
jimmy andrews
d6f2603bef fix issue where in rare cases bevel can fail to set correct matching new edges/vertices
#jira UE-202875
#rb rinat.abdrashitov

[CL 31308760 by jimmy andrews in 5.4 branch]
2024-02-08 17:48:12 -05:00
david hill
027dcc782f Geometry Processing: Make simple intrinsic triangulation mesh robust to misoriented triangles.
#jira UE-203213
#rb Jimmy.Andrews

[CL 31257145 by david hill in 5.4 branch]
2024-02-07 10:08:14 -05:00
jimmy andrews
367ec7c905 use a prime value greater than max unsigned int for the modulo iteration in remesher, mesh simplification, and FModuloIteration to ensure that it is always coprime with the number of elements being iterated over
#rb Brian.Karis

#changelist validated
#virtualized

[CL 31230169 by jimmy andrews in 5.4 branch]
2024-02-06 16:23:49 -05:00
jimmy andrews
d30a3c2e52 fix unreachable code warning in meshlinearization.h (change from an iteration+break to directly testing whether vertex has edges)
#rb rinat.abdrashitov

#changelist validated
#virtualized

[CL 31229231 by jimmy andrews in 5.4 branch]
2024-02-06 15:54:42 -05:00
jimmy andrews
b88fe4279e fix smooth bevel of loops for cases where the loop's edges are reversed from the expected order
#rb David.Hill
#jira UE-205063

[CL 31142709 by jimmy andrews in 5.4 branch]
2024-02-02 16:58:07 -05:00
jimmy andrews
1664ef919b Fix crash on smooth bevel of some edges
#jira UE-205048
#rb tyson.brochu

[CL 31098073 by jimmy andrews in 5.4 branch]
2024-02-01 14:55:30 -05:00
rinat abdrashitov
1d33bcc942 Add an option to the ChaosCloth TransferSkinWeights node that allows to choose the max number of bone influences per vertex.
Propagate this change to the TransferBoneWeights and SmoothBoneWeights geometry operators by allowing to manually specify the max number of influences per bone for the output per-vertex weights.

#rb halfdan.ingvarsson, kriss.gossart
#jira UE-184186
#rnx

[CL 31024718 by rinat abdrashitov in 5.4 branch]
2024-01-30 17:43:54 -05:00
jimmy andrews
a0dc14041d fix bug where clipper ellipse could request more than max_int steps for an ellipse and crash
+ make the one place that calls that ellipse method use its own logic to specify the number of steps per radian, so it will request many fewer steps per ellipse
#rb David.Hill

[CL 30981195 by jimmy andrews in 5.4 branch]
2024-01-29 19:08:41 -05:00
steve robb
f029468598 Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
[CL 30729174 by steve robb in ue5-main branch]
2024-01-19 16:41:35 -05:00
marc audy
19e84555b3 Silence PVS warnings
[CL 30653812 by marc audy in ue5-main branch]
2024-01-17 01:34:02 -05:00
ryan schmidt
2c11bfc349 Mesh Bevel: remove ensures that are getting hit in some cases in Lyra. Failure is not catastrophic, so we do not really need to ensure here.
[CL 30399602 by ryan schmidt in ue5-main branch]
2023-12-19 13:48:50 -05:00
jimmy andrews
687489972d Make SimpleShapeSet3's sphere transform method match the editor's approach for transforming simple collision spheres -- scaling the radius by the minimum abs-value axis scale -- to get more consistent results when baking component transforms.
#rb lonnie.li

[CL 30359736 by jimmy andrews in ue5-main branch]
2023-12-15 16:08:22 -05:00
ryan schmidt
08a4212d9b fix various issues with mesh bevel. Boundary-condition normals are now computed before any meshing. DisplaceVertices() now tries to keep terminator vertex positions on existing mesh edges (this should be improved to stay on group edges, in most cases a group edge can be selected topologically, but for now just snapping to mesh edges to handle the simple lowpoly-boxy cases). Simplify/improve computation of section planes in ApplyProfileShape_Round() - in all cases except corners, the section plane is well-defined by the two inset edge points and the original vertex position. This allowed removal of PlanarizeArcNormals function. Also now handling flipped orientation of quad patch relative to edge vertex sequence.
Added more error handling inFQuadGridPatch::InitializeFromQuadPatch. Fixed property invalidating in PolyEdit bevel activity.

[CL 30356938 by ryan schmidt in ue5-main branch]
2023-12-15 14:57:40 -05:00
ryan schmidt
58c4571ebf fix Mac-specific build issue
[CL 30281057 by ryan schmidt in ue5-main branch]
2023-12-12 18:09:03 -05:00
ryan schmidt
a86e132008 Add support for multi-segment bevels with optional round profile in MeshBevel. The new code path is completely separated from the previous code. Works OK but handling of valence-3 bevel corners (filled with a rounded triangle) could be improved.
Expose in Geometry Script and PolyEdit functions.

[CL 30280525 by ryan schmidt in ue5-main branch]
2023-12-12 17:55:33 -05:00
jimmy andrews
5ad5ac93dd add collision shape merging to the 'mesh to collision' tool
#jira UE-182346
#rb rinat.abdrashitov

[CL 30171356 by jimmy andrews in ue5-main branch]
2023-12-06 18:23:45 -05:00
ryan schmidt
d205e117bb GeometryProcessing: various utility functions to assist with rounded bevels implementation
- add 2D version of VectorTanHalfAngle to VectorUtil.h
- add FDynamicMeshUVEditor::SetToPerVertexUVs, initializes overlay to have a single UV for each vertex
- add FQuadGridPatch::InitializeFromQuadPatch(), initializes the quad grid from external rows of quads and associated vertices
- add FQuadGridPatch::GetVertexColumn(), returns the list of vertices in a specific grid column
- add FQuadGridPatch::FindColumnIndex(), finds the index of the grid column that contains a specific Vertex ID
#rb rinat.abdrashitov

[CL 30166232 by ryan schmidt in ue5-main branch]
2023-12-06 15:32:17 -05:00
jimmy andrews
72f8004de6 CIS fix for static analyzer warning in DetectExteriorVisibility.cpp (1/3 should be 1.0/3.0)
#rb jimmy.andrews

[CL 30063776 by jimmy andrews in ue5-main branch]
2023-12-01 20:26:42 -05:00
jimmy andrews
76c9580c1e Add support for transparent meshes/faces in detect exterior visibility algorithm + associated geometry script function.
Also improve behavior (+ add control of behavior) for meshes with degenerate triangles, so meshes with degenerate triangles will not always be treated as visible.

#rb david.hill

[CL 30051521 by jimmy andrews in ue5-main branch]
2023-12-01 15:37:09 -05:00
marc audy
01e7381e04 Fix C4702 warnings
#rnx

[CL 29975801 by marc audy in ue5-main branch]
2023-11-28 19:03:48 -05:00
ryan schmidt
f3d166d6ab Geometry: fix copy-pasta in computation of Voronoi area for cotangent weights
#rb tyson.brochu

[CL 29891017 by ryan schmidt in ue5-main branch]
2023-11-22 12:17:31 -05:00